Learners plan, implement, test and document a complete program built from reusable functions.