Recommended reading
| Lecture | Textbook | JavaHyperText | Myers | Other |
|---|---|---|---|---|
| 1 | Supplement 1: Java Basics | N/A | N/A | Syllabus, Setup, Transition to Java |
| 2 | Appendix B: Java Classes | types 0–2, classes 1A–1C | Objects and Values | Object Diagram Rules |
| 3 | Prelude: Designing Classes | access modifier, constructor, new-expression… | Encapsulation and Information Hiding | |
| 4 | Appendix A: Documentation and Programming Style | class invariant, javadoc comment, specification, precondition, postcondition | Designing and documenting interfaces, Modular Design and Testing | |
| 5 | interface, compile-time reference rule | Interfaces and subtyping | ||
| 6 | Appendix C: Creating Classes from Other Classes | inheritance, extends, subclass, superclass, bottom-up rule, override, super, this | Inheritance and the specialization interface | |
| 7 | Java Interlude 2: Exceptions | exceptions | ||
| 8 | Chapter 1; Java Interlude 1: Generics; Chapter 2 | bag, data structure, abstract data type, generics | Parametric Polymorphism (generics) | |
| 9 | Chapter 3 | N/A | N/A | |
| 10 | Chapters 10 through 12 Chapter 5 (only "Specifications of the ADT Stack"); Chapter 6 (only "A Linked Implementation"); Chapter 7 (only "The ADT Queue"); Chapter 8 (only "A Linked Implementation of a Queue"); |
list, linked list, doubly-linked list stack, queue |
Linked lists (scroll down to "Linked lists") | |
| 11 | Chapter 4 | algorithmic complexity | Asymptotic complexity | |
| 12 | Chapter 9; Chapter 14 | recursion | Recursion | |
| 13 | Chapters 24–26, Java Interlude 5 | trees (1, 2, 3, 5) | Trees | |
| 14 | Chapter 19 | Program correctness, loop invariants, linear search loop development, binary search loop development | Loop invariants | |
| 15 | Chapters 15–16 | sorting (1, 2) | Sorting | |
| 16 | Chapters 20–23 | hash table | Hash tables | |
| 17 | Graphical User Interfaces: Display and Layout | Creating a GUI With Swing | ||
| 18 | Graphical User Interfaces: Events | Lambda Expressions | ||
| 19 | Concurrency | Concurrency | Lesson: Concurrency | |
| 20 | Synchronization | |||
| 21 | Chapters 29–30 | graphs, topics 1–3: definitions, terminology, representations | Graphs | |
| 22 | Chapters 29–30 | Depth-first search and breadth-first search | Graph traversals | |
| 23 | Chapters 29–30 | The shortest-path algorithm | Dijkstra's single-source shortest path algorithm | |
| 24 | Chapter 27 | Heaps, HeapSort | Priority Queues and Heaps |