This schedule is subject to change. Any change will be announced in class and on the course web page.

Please do the reading before you come to class.

Date Topics, Readings
Aug 30 Lecture 1: Introduction, Primitive Java, 1.1–1.6
Sep 1 Lecture 2: Objects/References, Constructors, 2.1–2.3, 3.1–3.9
Sep 6 Lecture 3: JUnit, Arrays, 2.4
Sep 8 Lecture 4: File I/O, Exceptions, 2.5–2.6
Sep 13 Lecture 5: Exceptions, 2.5
Sep 15 Lecture 6: GUIs
Sep 20 Lecture 7: Inheritance, 4.1–4.2
Sep 22 Lecture 8: ArrayList, Inheritance (continued), 4.3–4.4
Sep 27 Exam 1
Sep 29 Lecture 9: Type casts, instanceof, Object class, Interfaces
Oct 4 Lecture 10: Generic methods and classes, 4.5-4.7
Oct 6 Lecture 11: Generic methods, functors, 4.8
Oct 11 Lecture 12: Analysis of Algorithms, 5.1-5.3
Oct 13 Lecture 13: Big-O, 5.4-5.8
Oct 18 Lecture 14: Collections, Iterators, 6.1-6.3
Oct 20 Lecture 15: Generic Algorithms, 6.4
Oct 25 Lecture 16: Lists, 6.5
Oct 27 Exam 2
Nov 1 Lecture 17: Parallel Programming with Threads
Nov 3 Lecture 18: Stacks and Queues, 6.6
Nov 8 Lecture 19: Sets and Maps, 6.7-6.8
Nov 10 Lecture 20: Recursion, 7.1, 7.3
Nov 15 Lecture 21: Proof by Induction, 7.2
Nov 17 Lecture 22: Memoization and Dynamic Programming, 7.6
Nov 22 Thanksgiving vacation, no class
Nov 24 Thanksgiving vacation, no class
Nov 29 Lecture 23: Merge and Quick Sort, 8.5-8.6
Dec 1 Exam 3
Dec 6 Lecture 24: Relational Databases and SQL
Dec 8 Lecture 25: Database Applications and JDBC