- The course was taught in Java, focusing on both DS&A knowledge and enginneering skills to build and maintain moderately large programs.
- The coding coursework includes 4 projects and 8 labs:
- Each project has a specific theme:
- Project 0 (2048): Introduction to Java
- Project 1 (Deques & Guitar Hero): Basic Design, Testing, and Code Review
- Project 2 (GitLet): Design, Large Scale Implementation
- Project 3 (Build Your Own World): Large Scale Design
- Labs cover debugging, testing and git skills, as well as the implementation of some data structures:
- lab 1: Introduction to Java
- lab 2: Debugging with IDEA's debugger
- lab 3: Timing and Randomized Testing
- lab 4: Debugging and Git exercises
- lab 5: Unionfind (Disjoint Sets)
- lab 6: Canine Capers (Java I/O and serialization)
- lab 7: BST Map
- lab 8: Hash Map
- lab 9: Left Leaning Red Black Tree