Schedule
Day | Date | Lecture | Work due (6pm) |
---|---|---|---|
Mon | June 24 | Lecture 1: Overview, Structured programming, Java syntax, Types [slides, code] |
|
Tues | June 25 | Lecture 2: Types and Objects [slides, code] Discussion 1: Introductions and Debugging [code] |
Discussion activity 1 |
Weds | June 26 | Lecture 3: Abstraction, Encapsulation, Specifications [slides, code] | Syllabus Quiz (Canvas) |
Thurs | June 27 | Lecture 4: Specifications (cont), Testing [slides, code] Discussion 2: Object diagrams, Arrays [code] | Discussion activity 2 |
Fri | June 28 | Lecture 5: Interfaces, Subtyping, Inheritance, Dynamic dispatch, Equality
[slides, code] |
A1 |
Mon | July 1 |
Lecture 6: Exceptions, I/O
[slides, activity code, demo and activity solution code] |
A2 Partnerships |
Tue | July 2 |
Lecture 7: Bags, Generics
[slides, code] Discussion 3: Designing and testing classes [code] |
Discussion activity 3 |
Wed | July 3 | Test 1
[study guide] Lecture 8: Linked structures [slides, code] |
|
Thu | July 4 | Holiday | |
Fri | July 5 | Lecture 9: Ordered collections
[slides, code, preview code] |
A2 |
Mon | July 8 |
Lecture 10: Efficiency
[slides, experiment] |
A3 partnerships |
Tues | July 9 |
Lecture 11: Recursion
[slides, code, preview code] Discussion 4: Java Collections [code] |
Discussion 4 |
Weds | July 10 |
Test 2
[study guide, additional practice problems] Lecture 12: Trees I [slides, code] |
|
Thurs | July 11 |
Lecture 13: Trees II, Set ADT, Comparables
[slides, code, preview code] Discussion 5: Binary Search Trees |
Discussion 5 |
Fri | July 12 |
Lecture 14: Wrap up Recursion & Trees
[slides, code, preview code] |
A4 |
Mon | July 15 |
Lecture 15: Loop Invariants and Searching
[slides, code] |
A4 Partnerships |
Tues | July 16 |
Lecture 16: Sorting
[slides, code, code (zipped)] Discussion 6: Loop Invariants [code] |
Discussion 6 |
Weds | July 17 |
Test 3
[study guide, additional practice problems] Lecture 17: Intro to Graphs [slides, code] |
|
Thurs | July 18 |
Lecture 18: Classic Graph Data Structures, Breadth-first Search
[slides, code, preview code, handout] |
|
Fri | July 19 |
Lecture 19: Depth-first Search, Shortest paths
[slides, code, preview code, handout] |
A4 |
Mon | July 22 |
Lecture 20: Shortest paths
[slides, code, preview code, handout] |
A5 Partnerships |
Tues | July 23 |
Lecture 21: Priority Queues and Heaps
[slides, preview code] Discussion 8: Heaps |
Discussion 8 |
Weds | July 24 |
Test 4
[study guide, additional practice problems] Assignment 5 workshop |
|
Thurs | July 25 |
Lecture 22: Hash Maps
[slides, preview code, handout] Discussion 9: Hash Maps [code (same as preview code for lecture)] |
Discussion 9 |
Fri | July 26 |
Lecture 23: Graphical User Interfaces
[slides, code] |
|
Mon | July 29 |
Lecture 24: Event-driven programming
[slides, code, preview code] |
|
Tues | July 30 |
Lecture 25: Concurrency
[slides, code, preview code] |
|
Weds | July 31 |
Test 5
[study guide, additional practice problems] Lecture 26: Synchronization [slides, preview code] |
|
Thurs | Aug 1 |
Lecture 27: Synchronization (cont), Software engineering
[slides, handout, preview code] |
|
Fri | Aug 2 |
Lecture 28: The Java ecosystem
[slides] |
A5 |
Tues | Aug 6 | Final exam
[study guide] |