ossu-computer-science/coursepages/class-based
2026-03-27 11:00:43 -07:00
..
README.md Reformat for readability and replace broken links 2026-03-27 11:00:43 -07:00

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:

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

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 original videos for Lecture 28 and Lecture 30 on the course website are broken. Below are the links to their YouTube archives:
  • 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.