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 |
---|---|---|---|---|
Tue | Jan 21 | Lecture 1: Overview, structured programming [slides, code] |
Discussion 1: Introductions and debugging [slides, handout solution] |
|
Wed | Jan 22 | |||
Thu | Jan 23 | Lecture 2: Objects [slides, code] |
||
Fri | Jan 24 | Discussion activity 1 | ||
Mon | Jan 27 | Q1 | ||
Tue | Jan 28 | Lecture 3: Abstraction, encapsulation [slides, code] |
Discussion 2: Object diagrams and arrays [slides, handout solution] |
|
Wed | Jan 29 | |||
Thu | Jan 30 | Lecture 4: Specifications, testing [slides, code] |
A1 | |
Fri | Jan 31 | Discussion activity 2 | ||
Mon | Feb 3 | Q2 | ||
Tue | Feb 4 | Lecture 5: Interfaces, subtyping [slides, code] |
Discussion 3: Designing and testing classes [slides, handout solution] |
|
Wed | Feb 5 | |||
Thu | Feb 6 | Lecture 6: Inheritance, dynamic dispatch [slides, code] |
Syllabus quiz | |
Fri | Feb 7 | Discussion activity 3 | ||
Mon | Feb 10 | Q3 | ||
Tue | Feb 11 | Lecture 7: The class Object, exceptions [slides, code] |
Discussion 4: Reading and writing files [slides, handout solution] |
|
Wed | Feb 12 | |||
Thu | Feb 13 | Lecture 8: Bags, Generics [slides, code] |
||
Fri | Feb 14 | Discussion activity 4 | ||
Feb 15–18 | February break | |||
Wed | Feb 19 | (no discussion) | ||
Thu | Feb 20 | Lecture 9: Linked structures [slides, code] |
A2 | |
Fri | Feb 21 | |||
Mon | Feb 24 | Q4 | ||
Tue | Feb 25 | Lecture 10: Ordered collections [slides, code] |
Discussion 5: Iterators [slides, handout solution] |
|
Wed | Feb 26 | |||
Thu | Feb 27 | Lecture 11: Efficiency [slides, code] |
||
Fri | Feb 28 | Discussion activity 5 | ||
Mon | Mar 3 | Q5 | ||
Tue | Mar 4 | Lecture 12: Recursion [slides, code] |
Discussion 6: Prelim 1 review [slides, solutions] |
|
Wed | Mar 5 | |||
Thu | Mar 6 | Lecture 13: Trees I [slides, code] |
A3 | |
Fri | Mar 7 | Discussion activity 6 | ||
Mon | Mar 10 | Q6 | ||
Tue | Mar 11 | Lecture 14: Trees II [slides] |
Discussion 7: Binary search trees [handout solution] |
Prelim 1 |
Wed | Mar 12 | |||
Thu | Mar 13 | Lecture 15: Loop invariants [slides, code] |
||
Fri | Mar 14 | Discussion activity 7 | ||
Mon | Mar 17 | Q7 | ||
Tue | Mar 18 | Lecture 16: Sorting [slides, code] |
Discussion 8: Loop invariants [handout solution] |
|
Wed | Mar 19 | |||
Thu | Mar 20 | Lecture 17: Hash tables [slides, code] |
||
Fri | Mar 21 | Discussion activity 8 | ||
Sun | Mar 23 | A4 | ||
Mon | Mar 24 | Q8 | ||
Tue | Mar 25 | Lecture 18: Graphs [slides, code] |
Discussion 9: Hash tables |
|
Wed | Mar 26 | |||
Thu | Mar 27 | Lecture 19: Graph traversals |
||
Fri | Mar 28 | Discussion activity 9 | ||
Mar 29–Apr 6 | Spring break | |||
Mon | Apr 7 | |||
Tue | Apr 8 | Lecture 20: Shortest paths |
Discussion 10: Graph traversals |
|
Wed | Apr 9 | |||
Thu | Apr 10 | Lecture 21: Heaps |
||
Fri | Apr 11 | Discussion activity 10 | ||
Mon | Apr 14 | Q9 | ||
Tue | Apr 15 | Lecture 22: Graphical user interfaces |
Discussion 11: Prelim 2 review |
|
Wed | Apr 16 | |||
Thu | Apr 17 | Lecture 23: Event-driven programming |
A5 | |
Fri | Apr 18 | Discussion activity 11 | ||
Mon | Apr 21 | Q10 | ||
Tue | Apr 22 | Lecture 24: Concurrency |
Discussion 12: Shared buffers |
Prelim 2 |
Wed | Apr 23 | |||
Thu | Apr 24 | Lecture 25: Synchronization |
||
Fri | Apr 25 | Discussion activity 12 | ||
Mon | Apr 28 | Q11 | ||
Tue | Apr 29 | Lecture 26: TBD |
Discussion 13: TBD |
|
Wed | Apr 30 | |||
Thu | May 1 | Lecture 27: Software engineering |
||
Fri | May 2 | Discussion activity 13 | ||
Mon | May 5 | Q12 | ||
Tue | May 6 | Lecture 28: The Java ecosystem |
A6 | |
Mon | May 12 | Final exam (9:00am) |