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 Appendix C: Creating Classes from Other Classes interface, compile-time reference rule, inheritance, extends, subclass, superclass, bottom-up rule, override, super, this Interfaces and subtyping, Inheritance and the specialization interface
6 Java Interlude 2: Exceptions exceptions
7 Chapter 1; Java Interlude 1: Generics; Chapter 2 bag, data structure, abstract data type, generics Parametric Polymorphism (generics)
8 Chapter 3 N/A N/A
9 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")
10 Chapter 4 algorithmic complexity Asymptotic complexity
11 Chapter 9; Chapter 14 recursion Recursion
12-14 Chapters 24–26, Java Interlude 5 trees (1, 2, 3, 5) Trees
15 Chapter 19 Program correctness, loop invariants, linear search loop development, binary search loop development Loop invariants
16 Chapters 15–16 sorting (1, 2) Sorting
17 Chapters 29–30 graphs, topics 1–3: definitions, terminology, representations Graphs
18 Chapters 29–30 Depth-first search and breadth-first search Graph traversals
19 Chapters 29–30 The shortest-path algorithm Dijkstra's single-source shortest path algorithm
20 Chapter 27 Heaps, HeapSort Priority Queues and Heaps
22 Chapters 20–23 hash table Hash tables
23 Graphical User Interfaces: Display and Layout Creating a GUI With Swing
24 Graphical User Interfaces: Events Lambda Expressions
25 Concurrency Concurrency Lesson: Concurrency
26 Synchronization