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 |