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 |