CS 2110: Object-Oriented Programming and Data Structures


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