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
- Instructions for Lab 01 – Deadline: September 09, 2024 – Monday, 11:30pm
- Instructions for PA1 – Deadline: September 11, 2024 – Wednesday, 11:30pm
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:
- Java, Java, Java 6.3.2 Counting with For Loops
- Java, Java, Java 9.2 One-Dimensional Arrays
- geeksforgeeks HashMap in Java
Optional:
Slides
During lab sessions (Sept 11 to Sept 16), TAs will go over these slides:
Assignments
- Instructions for Lab 02 – Deadline: September 16, 2024 – Monday, 11:30pm
- Instructions for PA2 – Deadline: September 18, 2024 – Wednesday, 11:30pm
Week 04
Sep 16 - Sep 20
Topic: Algorithm patterns: exhaustive search and recursive backtracking
Readings
Optional:
Slides
Assignments
- Instructions for Lab 03 – Deadline: September 23, 2024 – Monday, 11:30pm
- Instructions for PA3 – Deadline: September 27, 2024 – Friday, 11:30pm
Week 05
Sep 23 - Sep 27
Topic: Midterm on Wednesday
- Instructions for Lab 04 – Deadline: September 30, 2024 – Monday, 11:30pm
Week 06
Sep 30 - Oct 04
Topic: Classes, interfaces, trees and tree traversals, SAT problem
Readings
Required:
Slides
Assignments
- Instructions for PA4 – Deadline: October 04, 2024 – Friday, 11:30pm
- Instructions for Lab 05 – Deadline: October 07, 2024 – Monday, 11:30pm
Week 07
Oct 07 - Oct 11
Topic: Inheritance, class hierarchies, debugging, using data to encode
Readings
Slides
Assignments
- Short Assignment 6 : No lab session this week, this short assignment is to be completed during class time – October 09, 2024 – Wednesday, 10:50am
- UML class diagram for PA5 : October 11, 2024 – Friday, 11:30pm
- Full implementation for PA5: October 16, 2024 – Wednesday, 11:30pm
Week 08
Oct 14 - Oct 18
Topic: Object base class, Generics
FYI
Slides
Assignments
- Short Assignment 07 – Deadline: October 21, 2024 – Monday, 11:30pm
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
- Programming Assignment 06: October 30, 2024 – Wednesday, 11:30pm
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
- Short Assignment 09 – Deadline: November 12, 2024 – Tuesday, 11:30pm
- Programming Assignment 07: November 13, 2024 – Wednesday, 11:30pm
Week 13
Nov 18 - Nov 22
Topic: Decomposition: top down and bottom up
Slides
Assignments
- Short Assignment 10 – Deadline: November 18, 2024 – Monday, 11:30pm
- Programming Assignment 08: November 22 2024 – Wednesday, 11:30pm
Week 14
Nov 25 - Nov 27
Topic: Code Smells
Readings
Slides
Assignments
- Programming Assignment 09: December 04, 2024 – Wednesday, 11:30pm
Week 15
Dec 02 - Dec 06
Topic: Java vs. Python
Slides
Assignments
- Programming Assignment 10: December 11, 2024 – Wednesday, 11:30pm