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