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
[preview slides, preview code, handout] |
A4 |
Mon | July 22 | Lecture 20: Shortest paths (cont), Priority Queues and Heaps | A5 Partnerships |
Tues | July 23 |
Lecture 21: Hash maps
Discussion 8: Heaps |
Discussion 8 |
Weds | July 24 |
Test 4
[study guide, additional practice problems] Lecture 22: Graphical User Interfaces |
|
Thurs | July 25 |
Lecture 23: GUIs (cont)
Discussion 9: Hash Maps |
Discussion 9 |
Fri | July 26 | Lecture 24: Event-driven programming | |
Mon | July 29 | Lecture 25: Concurrency | |
Tues | July 30 |
Lecture 26: Synchronization
Discussion 10: Shared buffers |
Discussion 10 |
Weds | July 31 |
Test 5
Lecture 27: Synchronization (cont) |
|
Thurs | Aug 1 |
Lecture 28: Software engineering
Discussion 11: GUIs |
Discussion 11 |
Fri | Aug 2 | Lecture 29: The Java ecosystem | A5 |