Class-Based Program Design
This course extends your work from Systematic Program Design, transitioning from the functional programming paradigm with Racket to the class-based paradigm with Java, and preparing you for Object-Oriented Design.
This course was offered by Northeastern University in the spring semester of 2022 and the course materials are available on their website.
Course Link:
Schedule
The original schedule is available here, but the UI makes it difficult to navigate to the original dates to see the proper ordering of the course. To help organize your studies, we’ve created the following ordering:
Lecture 1, 2, 3,
Lab 1, Assignment 1,
Lecture 4, 5, 6,
Lab 2, Assignment 2,
Lecture 7, 8, 9,
Lab 3, Assignment 3,
Lecture 10, 11, 12,
Lab 4, Assignment 4,
Lecture 13, 14,
Lab 5, Assignment 5,
Lecture 15, 16,
Lab 6, Assignment 6,
Lecture 17, 18, 19,
Lab 7, Assignment 7,
Lecture 20, 21, 22,
Lab 8, Assignment 8,
Lecture 23, 24, 25,
Lab 9, Assignment 9 Part 1,
Lecture 26, 27, 30,
Lab 10, Assignment 9 Part 2,
Lecture 28, 29,
Lab 11,
Lecture 31, 32,
Lab 12, Assignment 10 Part 1,
Lecture 34, 35,
Assignment 10 Part 2
Note:
- Lecture 30 appears out of order. This is in line with the original class schedule.
- Some of the lectures may appear to be missing. If you review the website, you will find that this matches what is available on the course website and all materials are linked above.
- The assignments above are slightly out of order compared to the true class schedule. This was done to better align the material in lectures and labs with the material covered in the assignments. In the actual course, they gave the students a few days between learning the material in lecture and the due date for that assignment. If you find any misordering where an assignment needs material from a lecture listed after that assignment, please submit a PR to fix the ordering.
- The schedule above should not be treated as a replacement for the course website. There is essential documentation on the course website that is not reflected in the schedule above.
- Ensure that you use Java 11 for this course. Using the incorrect version will cause issues with the required libraries provided in this course.