Modules

Exam Dates

All exams are on paper.

  • Midterm 1 is on Wednesday, September 25 (during class time)
  • Midterm 2 is on Wednesday, November 6 (during class time)
  • Final exam is on Thursday, December 19, 10:30am to 12:30pm (schedule of final exams)

Resources

Week 01 and 02

Aug 26 - Sept 06

Topic: Course learning objectives and Java as a second programming language

Readings

You can find instructions on how to set up your coding environment on the getting started page.

Required:

Optional:

Slides

During lab sessions (Sept 04 to Sept 09), TAs will go over these slides:

Assignments

Week 03

Sep 09 - Sep 13

Topic: Java collections: arrays, lists, sets, and hashmaps and Algorithm patterns: Sliding Window

We will be running our binary file from the command line, with arguments. Please ensure you follow the instructions on the compiling page.

Readings

Required:

Optional:

Slides

During lab sessions (Sept 11 to Sept 16), TAs will go over these slides:

Assignments

Week 04

Sep 16 - Sep 20

Topic: Algorithm patterns: exhaustive search and recursive backtracking

Readings

Optional:

Slides

Assignments

Week 05

Sep 23 - Sep 27

Topic: Midterm on Wednesday

Week 06

Sep 30 - Oct 04

Topic: Classes, interfaces, trees and tree traversals, SAT problem

Readings

Required:

Slides

Assignments

Week 07

Oct 07 - Oct 11

Topic: Inheritance, class hierarchies, debugging, using data to encode

Readings

Slides

Assignments

Week 08

Oct 14 - Oct 18

Topic: Object base class, Generics

FYI

Slides

Assignments

Week 09

Oct 21 - Oct 25

Topic: Enumerated types, composing data structures

Slides

Assignments

  • Short Assignment 08 – Deadline: October 28, 2024 – Monday, 11:30pm
    • video one
    • video two
    • JUnit test
    • Package information for Short Assignment 08: package com.gradescope.medialibrary;
    • Submit all .java files (DO NOT INCLUDE JUNIT TEST FILE)

Week 10

Oct 28 - Nov 01

Topic: GUI Output

Readings

We will be using JavaFX for our GUI in this course. I recommend you use JavaFX on VS Code, create a non-modular project with Maven.

Slides

Assignments

Week 11

Nov 04 - Nov 06

Topic: Midterm on Wednesday

Week 12

Nov 08 - Nov 15

Topic: GUI Input, Event-driven programming, and MVC

Readings

Slides

Assignments

Week 13

Nov 18 - Nov 22

Topic: Decomposition: top down and bottom up

Slides

Assignments

Week 14

Nov 25 - Nov 27

Topic: Code Smells

Readings

Slides

Assignments

Week 15

Dec 02 - Dec 06

Topic: Java vs. Python

Slides

Assignments