Prerequsite: Computer Science and Programming in Java or equivalent experience with the Java programming language
Notes: Laptop required
Taught by: Chadwick School
This course is a yearlong course that will give advanced students the strong foundation needed to build complex applications using object-oriented principles and the skills needed to gain a top-level internship at a tech firm. This course covers the design and implementation of data structures, including arrays, stacks, queues, linked lists, binary trees, heaps, balanced trees (e.g. AVL-trees), and graphs. The course will also serve as an introduction to software design patterns. Each pattern represents a best practice solution to a software problem in a specific context. The course covers the rationale and benefits of object-oriented software design patterns. Numerous problems will be studied to investigate the implementation of good design patterns. Students will receive assistance in crafting an effective resume and go through sample interview questions.