(See also the Spring 2019 lecture notes)
All demos can be found here
| Topic | Date | Lecture notes | Additional material |
|---|---|---|---|
| OOP | 6/24 | Introduction, types | |
| 6/25 | Objects, fields, and methods | Java fundamentals | |
| 6/26 | Methods; Developing a class | ||
| 6/27 | Constructors, default values, null; interfaces | Testing | |
| Subtyping | 6/28 | Class and interface hierarchy, overriding; Quiz | |
| 7/1 | Subtyping in practice | ||
| 7/2 | Overriding and overloading | Exceptions | |
| 7/3 | Generics and subtyping | ||
| Recursion | 7/8 | Recursion | |
| 7/9 | Recursion | Comparators | |
| Trees | 7/10 | Trees | |
| 7/11 | Tree traversals | Iterators | |
| Complexity | 7/12 | Quiz; big-O | |
| 7/15 | Heaps & complexity | ||
| 7/16 | Loop invariants | P3 help | |
| 7/17 | Iterative sorts | ||
| 7/18 | Recursive sorts | Loops | |
| 7/19 | Sorting wrapup | ||
| Graphs | 7/22 | Graphs | |
| 7/23 | Depth-first and breadth-first search | Refactoring | |
| 7/24 | Dijkstra's algorithm | ||
| 7/25 | Minimum spanning trees | Office hours | |
| 7/26 | Topological sort and coloring | ||
| Other topics | 7/29 | Hash tables | |
| 7/30 | Concurrency | Office hours | |
| 7/31 | Monitors | ||
| 8/1 | GUI Layout | Office hours | |
| 8/2 | GUI Interaction | ||
| Exam | 8/6 | Exam (Study guide) |
Rest of schedule coming soon