(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