In Grade 11 you built small programs through the whole software development life cycle. In Grade 12 the programs get bigger, and so does the job: you will manage a software project as part of a team, the way it is done in industry and in university capstone courses.
The unit follows one guided team project from start to finish: LendIt, an equipment-lending program for the (fictional) Maple Grove Community Centre, which lends snowshoes, skates, cross-country skis and board games to its members. A four-person team (Priya the project manager, Jordan the lead developer, Amara the tester and Luc the documentation lead) shows every step, and role cards and project event cards let you run the project yourself, alone or with friends or family playing the other roles.
You will plan a project (scope document, requirements and user stories, work breakdown, deliverables, estimates, risks and a schedule), manage it with Gantt charts, PERT and critical path analysis, calendars and task boards, write design documents, keep your source code safe and shared with Git (commits, branches, merges and conflicts, shared repositories), write a formal test plan with unit, integration, regression and acceptance tests using Python's unittest, keep the project on track with status reports, burndown charts and change control, manage your own time, write user documentation and training materials, deploy and close the project, and finally review the project and reflect on your own and your team's work.
Every lesson ends with a project step for your own team project, so by the end of the unit you will have a complete project portfolio. Every code sample uses Python 3 and runs exactly as shown; Git examples use the free git program (or a browser-based alternative described in the lessons). The sibling units Modular and Object-Oriented Design (designing classes and modules), Algorithm Design and Analysis (searching, sorting, recursion and their testing), Data Types, Files and Expressions and Topics in Computer Science: Sustainability, Ethics, Emerging Technologies and Careers supply the code your project will use.
Curriculum: The Ontario Curriculum, Grades 10 to 12: Computer Studies (2008, revised), Computer Science, Grade 12, University Preparation (ICS4U), strand B. Software Development: overall expectation B1 (managing the software development process through all of its stages: planning, development, production and closing; specific expectations B1.1 to B1.7) and B2 (applying project management techniques in a student-managed team project; B2.1 to B2.3). The unit also teaches two code-maintenance expectations from strand A: A4.2 (a formal testing plan with unit, integration and regression testing) and A4.4 (external user documentation such as help files, training materials and user manuals).