This schedule is subject to change. Any change will be announced in class and on the course web page.
Extremely important: We expect you to do the reading before you come to class! Most class meetings will begin with a quiz on the day's topic, so you need to do the reading in advance to be fully prepared.
| Date |
Topic, Readings |
| Sep 2 |
Lecture 1: Introduction, Primitive Java, 1.1–1.6 |
| Sep 4 |
Lecture 2: Objects/References, Constructors, JUnit, 2.1–2.3, 3.1–3.9 |
| Sep 9 |
Lecture 3: Arrays, 2.4 |
| Sep 11 |
Lecture 4: File I/O, Exceptions, 2.5–2.6 |
| Sep 16 |
Lecture 5: Exceptions, 2.5 |
| Sep 18 |
Lecture 6: GUIs |
| Sep 23 |
Lecture 7: Inheritance, 4.1–4.2 |
| Sep 25 |
Lecture 8: ArrayList, Inheritance (continued), 4.3–4.4 |
| Sep 28 |
Lecture 9: Type casts, instanceof, Object class, Interfaces |
| Oct 2 |
Exam 1 |
| Oct 7 |
Lecture 10: Generic methods and classes, 4.5-4.7 |
| Oct 9 |
Lecture 11: Generic methods, functors, 4.8 |
| Oct 14 |
Lecture 12: Analysis of Algorithms, 5.1-5.3 |
| Oct 16 |
Lecture 13: Big-O, 5.4-5.8 |
| Oct 21 |
Lecture 14: Collections, Iterators, 6.1-6.3 |
| Oct 23 |
Exam 2 |
| Oct 28 |
Lecture 15: Generic Algorithms, 6.4 |
| Oct 30 |
Lecture 16: Lists, 6.5 |
| Nov 4 |
Lecture 17: Parallel Programming with Threads |
| Nov 6 |
Lecture 18: Stacks and Queues, 6.6 |
| Nov 11 |
Lecture 19: Sets and Maps, 6.7-6.8 |
| Nov 13 |
Lecture 20: Recursion, 7.1, 7.3 |
| Nov 18 |
Lecture 21: Proof by Induction, 7.2 |
| Nov 20 |
Lecture 22: Memoization and Dynamic Programming, 7.6 |
| Nov 25 |
Thanksgiving vacation, no class |
| Nov 27 |
Thanksgiving vacation, no class |
| Dec 2 |
Lecture 23: Insertion and Shell Sorts, 8.1-8.3 |
| Dec 4 |
Exam 3 |
| Dec 9 |
Lecture 24: Merge and Quick Sort, 8.5-8.6 |
| Dec 11 |
Lecture 25: Singly and Doubly-Linked Lists, 17.1-17.3 |