| Week 1 (May 18–22) |
Lecture 1: Introduction, Primitive Java, 1.1–1.6 Lecture 2: Objects/References, Constructors, JUnit, 2.1–2.3, 3.1–3.9 Lecture 3: Arrays, 2.4 |
|
| Week 2 (May 25–29) |
Lecture 4: File I/O, Exceptions, 2.5–2.6 Lecture 5: Exceptions, 2.5 Lecture 6: GUIs |
|
| Week 3 (June 1–5) |
Lecture 7: Inheritance, 4.1–4.2 Lecture 8: ArrayList, Inheritance (continued), 4.3–4.4 Lecture 9: Type casts, instanceof, Object class, Interfaces Exam 1 (Thursday, June 4th) |
|
| Week 4 (June 8–12) |
Lecture 10: Generic methods and classes, 4.5-4.7 Lecture 11: Generic methods, functors, 4.8 |
|
| Week 5 (June 15–19) |
Lecture 12: Analysis of Algorithms, 5.1-5.3 Lecture 12a: Code Comments Lecture 13: Big-O, 5.4-5.8 |
|
| Week 6 (June 22–26) |
Lecture 14: Collections, Iterators, 6.1-6.3 Lecture 15: Generic Algorithms, 6.4, Lecture 16: Lists, 6.5 |
|
| Week 7 (June 29–July 3) |
No class |
|
| Week 8 (July 6–10) |
Lecture 17: Parallel Programming with Threads Exam 2 (Thursday, July 9th) |
|
| Week 9 (July 13–17) |
Lecture 18: Stacks and Queues, 6.6 Lecture 19: Sets and Maps, 6.7-6.8 |
|
| Week 10 (July 20–24) |
Lecture 20: Recursion, 7.1, 7.3 Lecture 21: Proof by Induction, 7.2 |
|
| Week 11 (July 27–July 31) |
Lecture 22: Memoization and Dynamic Programming, 7.6 Lecture 23: Insertion and Shell Sorts, 8.1-8.3 |
|
| Week 12 (Aug 3–7) |
Lecture 24: Merge and Quick Sort, 8.5-8.6 Exam 3 (Thursday, Aug 6th) |
|
| Week 13 (Aug 10–14) |
Lecture 25: Singly and Doubly-Linked Lists, 17.1-17.3 Final Exam (Thursday, August 13th) |
|