Tentative Schedule

Week Day Topics Reading Recordings
1 1 Introduction and OO Review 1.1-1.5, Skim A1-A7 Lecture 1
2 UML, Arrays, and Memory A8-9, B1 Lecture 2
3 Exception Handling I 1.6-1.7, A11-12 Lecture 3
2 1 Exception Handling II Lecture 4
2 Files and Directories Lecture 5
3 Binary Files and Object I/O Lecture 6
4 JavaFX Basics JavaFX Lecture 7
3 1 Event Handling and Inner Classes slides Lecture 8
2 JavaFX and Event Handling Event Handling Lecture 9
3 FXML Markup Language Reading slides Lecture 10
4 Functional Programming I
4 1 Functional Programming II slides
2 Algorithm Efficiency and Big-O
3 Exercise: Preparing for Midterm Exam I
4 Generics
5 1 Array Lists I 2.1
2 Array Lists II 2.2-2.4
3 Review
4 Midterm Exam I
6 1 Linked Lists I 2.5
2 Linked Lists II 2.6
3 Iterators 2.7-2.10
4 Testing
7 1 Catch-Up 3
2 Stacks and Queues 4.1-4.7
3 Circular Queues
4 More Iterators
8 1 Binary Search 5.3
2 Recursion I 5.1-5.2
3 Recursion II 5.3-5.6
4 Binary Trees and Binary Search Trees 6.1, 6.3
9 1 Binary Search Trees 6.5
2 Trees and Tree Traversals 6.2, 6.4
3 Exercised: Preparing for Midterm Exam II
4 Catch Up
10 1 Catch Up
2 Review
3 Practice Exam
4 Midterm Exam II
11 1 Sets and Maps 7.1-7.2
2 Hash Tables 7.3-7.4
3 Hashing and Collision Handling 7.5-7.6
4 More Collision Handling
12 1 Selection and Insertion Sort 8.1-8.3
2 Shell and Merge Sort 8.4-8.6
3 TimSort and QuickSort 8.7-8.9
4 Class Exercise
13 1 Asymptotic Time Complexity revisited
2 Asymptotic Space Complexity
3 No class (Happy Thanksgiving)
14 1 Tree Rotations 9.1
2 AVL Trees 9.2
3 More Trees
4 Deep and Shallow Copies
15 1 How to Pick a Data Structure
2 Exercise: Choosing a Data Structure
3 Exercise: Final Exam Study Prep
4 Review
16 Common Final Exam