Schedule
With the exception of midterms and exams, this schedule is subject to change as the semester progresses.
Week 1
Lab 1: Simple Data Definitions with ClassSimple Data definitions and methods in Class
Lab 2: More Data DefinitionsDesigning methods in Java: classes, containment, unions, self-reference
Week 2
Lab 3: Classy SnakesDesigning methods for self-referential data
Lab 4: Same Story, More SyntaxPractice with abstract classes and constructors
Week 3
Lab 5: More Data Definitions in JavaFunctional world games
Lab 6: A Simple OO UniverseWorking with function objects
Week 4
Lab 7: JSON EqualityGenerics and Visitors
Lab 8: 99 Red Falling BallsWorking with mutable and cyclic data
Week 5
Lab 9: Fold!Loyd's 15 puzzle: working with ArrayLists, loops and imperative worlds
Lab 10: Exam PracticePractice implementing iterators
Week 6
Lab 11: No labHeapsort, stress tests
3/8: Midterm 1
Week 7
14
3/15: Lecture 20
Week 8
3/18: No Class: Spring break
3/20: No Class: Spring break
3/22: No Class: Spring break
Week 9
3/25: Lecture 21
15
16
Week 10
17
18
Week 11
19
20
Week 12
21
22
4/19: Midterm 2
Week 13
23
Week 14
5/1: Lecture 36: Zippers
Week 15
5/8: Lecture 39: Drills
Week 16
5/13: Lecture 41: Wrap-up