This page lists the schedule for the course. Please note that the schedule may change: any changes will be announced in class and listed here (on the course website).
Important: Do the readings in advance. The clicker quizzes will test material from the readings.
Date |
Topics/Readings |
Aug 27 |
Lecture 1: Introduction, Primitive Java, 1.1–1.6 |
Aug 29 |
Lecture 2: Objects/References, Constructors, JUnit, 2.1–2.3, 3.1–3.9 |
Sep 3 |
Lecture 3: Arrays, 2.4 |
Sep 5 |
Lecture 4: File I/O, Exceptions, 2.5–2.6 |
Sep 10 |
Lecture 5: Exceptions, 2.5 |
Sep 12 |
Lecture 6: GUIs |
Sep 17 |
Lecture 7: Inheritance, 4.1–4.2 |
Sep 19 |
Lecture 8: ArrayList, Inheritance (continued), 4.3–4.4 |
Sep 24 |
Lecture 9: Type casts, instanceof, Object class, Interfaces |
Sep 26 |
Lecture 10: Generic methods and classes, 4.5-4.7 |
Oct 1 |
Lecture 11: Generic methods, functors, 4.8 |
Oct 3 |
Exam 1 |
Oct 8 |
Lecture 12: Analysis of Algorithms, 5.1-5.3 Lecture 12a: Code Comments |
Oct 10 |
Lecture 13: Analysis of Algorithms, Big-O, 5.4-5.8 |
Oct 15 |
Lecture 14: Collections, Iterators, 6.1-6.3 |
Oct 17 |
Lecture 15: Generic Algorithms, 6.4 |
Oct 22 |
Lecture 16: Lists, 6.5 |
Oct 24 |
Lecture 17: Parallel Programming with Threads |
Oct 29 |
Lecture 18: Stacks and Queues, 6.6 |
Oct 31 |
Lecture 19: Sets and Maps, 6.7-6.8 |
Nov 5 |
Lecture 20: Recursion, 7.1, 7.3 |
Nov 7 |
Lecture 21: Proof by Induction, 7.2 |
Nov 12 |
Lecture 22: Memoization and Dynamic Programming, 7.6 |
Nov 14 |
Work day (on your own): Advanced recursion lab |
Nov 19 |
Exam 2 |
Nov 21 |
Lecture 23: Insertion and Shell Sorts, 8.1-8.3 |
Dec 3 |
Lecture 24: Merge and Quick Sort, 8.5-8.6 |
Dec 5 |
Exam 2 Programming Do-Over |