This schedule is subject to change. Any change will be
announced in class and on the course web page.
Week |
Topic, Readings |
CloudCoder Exercises |
Week 1 (May 19–23) |
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 26–30) |
Lecture 4: File I/O, Exceptions, 2.5–2.6 Lecture 5: Exceptions, 2.5 Lecture 6: GUIs |
|
Week 3 (June 2–6) |
Lecture 7: Inheritance, 4.1–4.2 Lecture 8: ArrayList, Inheritance (continued), 4.3–4.4 Lecture 9: Type casts, instanceof, Object class, Interfaces |
|
Week 4 (June 9–13) |
Lecture 10: Generic methods and classes, 4.5-4.7 Lecture 11: Generic methods, functors, 4.8 |
|
Week 5 (June 16–20) |
Lecture 12: Analysis of Algorithms, 5.1-5.3 Lecture 12a: Code Comments Lecture 13: Big-O, 5.4-5.8 |
|
Week 6 (June 23–27) |
Lecture 14: Collections, Iterators, 6.1-6.3 Lecture 15: Generic Algorithms, 6.4 Exam 1 |
|
Week 7 (June 30–July 4) |
|
|
Week 8 (July 7–11) |
Lecture 16: Lists, 6.5 Lecture 17: Parallel Programming with Threads |
|
Week 9 (July 14–18) |
Lecture 18: Stacks and Queues, 6.6 Lecture 19: Sets and Maps, 6.7-6.8 |
|
Week 10 (July 21–25) |
Lecture 20: Recursion, 7.1, 7.3 Lecture 21: Proof by Induction, 7.2 |
|
Week 11 (July 28–Aug 1) |
Lecture 22: Memoization and Dynamic Programming, 7.6 Lecture 23: Insertion and Shell Sorts, 8.1-8.3 |
|
Week 12 (Aug 4–8) |
Lecture 24: Merge and Quick Sort, 8.5-8.6 Lecture 25: Singly and Doubly-Linked Lists, 17.1-17.3 |
|
Week 13 (Aug 11–15) |
Exam 2 Final Exam |
|