Terms: 2 (Fall and Winter)
Prerequisite: Programming II, Computer Science Advanced or Permission of the Mathematics Department
Students explore more sophisticated programming techniques, including: sets, maps, stacks, queues, linked lists, hash tables, trees, heaps, graphs, interfaces and abstract classes. Working collaboratively, students will implement the software design cycle as they design algorithms, code, document and present their creative projects. The course is structured so students will complete both teacher-designed and student-designed projects. During the winter term, students will complete a more comprehensive project individually or as part of a programming team.