Schedule
See the lectures page for a fine-grained list of chapter sections and online readings that contain core material for this course, as well as reminders of post-lecture tasks. Remember: it is best to skim the required reading before its associated lecture.
Day | Date | Lecture | Discussion | Work due |
---|---|---|---|---|
Mon | Aug 26 | |||
Tue | Aug 27 | Lecture 1: Overview, static typing [slides, code] |
Discussion 1: Introductions and debugging [slides, handout solution] |
|
Wed | Aug 28 | |||
Thu | Aug 29 | Lecture 2: Objects [slides, code] |
||
Fri | Aug 30 | Discussion activity 1 | ||
Mon | Sep 2 | Labor Day | ||
Tue | Sep 3 | Lecture 3: Abstraction, encapsulation [preview slides, preview code] |
Discussion 2: Object diagrams and arrays [slides, handout solution] |
Q1 (10am) |
Wed | Sep 4 | A1 | ||
Thu | Sep 5 | Lecture 4: Specifications, testing [slides, code] |
||
Fri | Sep 6 | Discussion activity 2 | ||
Mon | Sep 9 | Q2 | ||
Tue | Sep 10 | Lecture 5: Interfaces, subtyping [slides, code] |
Discussion 3: Designing and testing classes [slides, handout solution] |
|
Wed | Sep 11 | |||
Thu | Sep 12 | Lecture 6: Inheritance, dynamic dispatch, equality [slides, code] |
Syllabus quiz | |
Fri | Sep 13 | Discussion activity 3 | ||
Mon | Sep 16 | Q3 | ||
Tue | Sep 17 | Lecture 7: Exceptions, I/O [slides, code] |
Discussion 4: Prelim 1 review [question slides, answer slides] |
|
Wed | Sep 18 | |||
Thu | Sep 19 | Lecture 8: Bags, Generics [slides, code] |
Prelim 1 | |
Fri | Sep 20 | Discussion activity 4 | ||
Mon | Sep 23 | A2, Q4 | ||
Tue | Sep 24 | Lecture 9: Linked structures [slides, code] |
Discussion 5: Java collections [slides, handout solution] |
|
Wed | Sep 25 | |||
Thu | Sep 26 | Lecture 10: Ordered collections [slides, code] |
||
Fri | Sep 27 | Discussion activity 5 | ||
Mon | Sep 30 | Q5 | ||
Tue | Oct 1 | Lecture 11: Efficiency [slides, code] |
Discussion 6: Iterators [slides, handout solution, code] |
|
Wed | Oct 2 | |||
Thu | Oct 3 | Lecture 12: Recursion [slides, code] |
||
Fri | Oct 4 | A3, Discussion activity 6 | ||
Mon | Oct 7 | Q6 | ||
Tue | Oct 8 | Lecture 13: Trees I [slides, code] |
Discussion 7: Binary search trees [handout solution] |
|
Wed | Oct 9 | |||
Thu | Oct 10 | Lecture 14: Trees II [slides, code preview, binary search] |
||
Fri | Oct 11 | Discussion activity 7 | ||
Oct 12–15 | Fall break | |||
Wed | Oct 16 | |||
Thu | Oct 17 |
Lecture 15: Loop invariants [slides preview, code] |
||
Fri | Oct 18 | |||
Mon | Oct 21 | Q7 | ||
Tue | Oct 22 | Lecture 16: Sorting [slides, code] |
Discussion 8: Loop invariants [slides, handout solution, code] |
|
Wed | Oct 23 | |||
Thu | Oct 24 | Lecture 17: Hash tables [slides] |
||
Fri | Oct 25 | A4, Discussion activity 8 | ||
Mon | Oct 28 | Q8 | ||
Tue | Oct 29 | Lecture 18: Graphical user interfaces [slides, code] |
Discussion 9: Hash tables [handout solution, code] |
|
Wed | Oct 30 | |||
Thu | Oct 31 | Lecture 19: Event-driven programming [slides, code] |
||
Fri | Nov 1 | Discussion activity 9 | ||
Mon | Nov 4 | Q9 | ||
Tue | Nov 5 | Lecture 20: Concurrency [preview slides, code] |
Discussion 10: Shared buffers [slides, handout solution, code] |
|
Wed | Nov 6 | |||
Thu | Nov 7 | Lecture 21: Synchronization [slides, code] |
||
Fri | Nov 8 | Discussion activity 10 | ||
Mon | Nov 11 | Q10 | ||
Tue | Nov 12 | Lecture 22: Graphs [preview slides, code] |
Discussion 11: Synchronization [slides, handout solution, code] |
A5 |
Wed | Nov 13 | |||
Thu | Nov 14 | Lecture 23: Graph traversals [preview slides, code] |
||
Fri | Nov 15 | Discussion activity 11 | ||
Mon | Nov 18 | Q11 | ||
Tue | Nov 19 | Lecture 24: Shortest paths [preview slides, code] |
Discussion 12: Prelim 2 review [question and answer slides] |
|
Wed | Nov 20 | |||
Thu | Nov 21 | Lecture 25: Graph exercise [slides, activity, solution] |
||
Fri | Nov 22 | Discussion activity 12 | ||
Mon | Nov 25 | Q12 | ||
Tue | Nov 26 | Lecture 26: Software Engineering [slides, code] |
Prelim 2 | |
Nov 27–Dec 1 | Thanksgiving break | |||
Mon | Dec 2 | |||
Tue | Dec 3 | Lecture 27: Heaps [preview slides, code] |
Discussion 13: Heaps [slides, handout solution] |
|
Wed | Dec 4 | |||
Thu | Dec 5 | Lecture 28: The Java ecosystem |
||
Fri | Dec 6 | Discussion activity 13 | ||
Mon | Dec 9 | A6, Q13 | ||
Sat | Dec 14 | Final exam (2:00pm) |