The Class-Based Program Design course serves as a bridge between functional programming and object-oriented paradigms. It transitions students from the concepts learned in Systematic Program Design using Racket to the class-based paradigm using Java, providing the necessary foundation for subsequent Object-Oriented Design studies coursepages/class-based/README.md1-4
This course is based on the Spring 2022 offering from Northeastern University (CS2510) coursepages/class-based/README.md5-9
To ensure compatibility with the course-provided libraries and automated testing suites, students must use Java 11. Using alternative versions of the JDK will result in integration issues with the required libraries coursepages/class-based/README.md40
The following diagram illustrates the relationship between the course components and the transition from functional to object-oriented logic.
Transition from Functional to Class-Based Design
Sources: coursepages/class-based/README.md1-5 coursepages/class-based/README.md40
The original Northeastern University UI can be difficult to navigate chronologically. The OSSU curriculum provides a reorganized schedule that better aligns lecture content and laboratory exercises with the specific requirements of the assignments coursepages/class-based/README.md13-15 coursepages/class-based/README.md38-39
| Lectures | Lab | Assignment |
|---|---|---|
| 1, 2, 3 | Lab 1 | Assignment 1 |
| 4, 5, 6 | Lab 2 | Assignment 2 |
| 7, 8, 9 | Lab 3 | Assignment 3 |
| 10, 11, 12 | Lab 4 | Assignment 4 |
| 13, 14 | Lab 5 | Assignment 5 |
| 15, 16 | Lab 6 | Assignment 6 |
| 17, 18, 19 | Lab 7 | Assignment 7 |
| 20, 21, 22 | Lab 8 | Assignment 8 |
| 23, 24, 25 | Lab 9 | Assignment 9 Part 1 |
| 26, 27, 30 | Lab 10 | Assignment 9 Part 2 |
| 28, 29 | Lab 11 | - |
| 31, 32 | Lab 12 | Assignment 10 Part 1 |
| 34, 35 | - | Assignment 10 Part 2 |
Sources: coursepages/class-based/README.md17-29
Students should be aware of several discrepancies in the original course materials:
The diagram below shows the recommended flow for consuming course content to ensure all prerequisites for assignments are met.
Course Resource Data Flow
Sources: coursepages/class-based/README.md17-29 coursepages/class-based/README.md35-37