Note: The due dates for all assignments are on Gradescope.

Date Notes
Tue, Jan 22 Lecture: Introduction and Unit Testing. Homework: Programming 1 and Written 1
Wed, Jan 23 No lab
Thu, Jan 24 Lecture: Introduction to Higher-Order Functions
Tue, Jan 29 Lecture: Reasoning with Types, First-Class Functions
Wed, Jan 30 Lab:
Thu, Jan 31 Lecture: Advanced Higher-Order Functions
Tue, Feb 5 Lecture: Higher-Order Functions with Data Structures. Homework: Programming 2 and Written 2
Wed, Feb 6 Lab:
Thu, Feb 7  
Tue, Feb 12 No class (snow day)
Wed, Feb 13 Lab:
Thu, Feb 14 Lecture: A Mental Model of JavaScript (Part 1)
Tue, Feb 19 No class (Monday schedule)
Wed, Feb 20 Lab:
Thu, Feb 21 Lecture: Review Session 1, Review Problems, Mid-Term Notes
Tue, Feb 26 Lecture: Practice Mid-term 1
Wed, Feb 27 Lab:
Thu, Feb 28 Mid-term 1 (in-class)
Tue, Mar 5 Lecture: Property-Based Testing Homework: Programming 3 and Written 3
Wed, Mar 6 Lab:
Thu, Mar 7 Lecture: A Mental Model of JavaScript (Part 2).
Tue, Mar 12 No class (Spring Break)
Wed, Mar 13 No lab (Spring Break)
Thu, Mar 14 No class (Spring Break)
Tue, Mar 19 Lecture: Object-Oriented Programming in JavaScript
Wed, Mar 20 Lab:
Thu, Mar 21 Lecture: Design Patterns: Builders and Observables
Tue, Mar 26 Lecture: Design Patterns: Streams 1 and [Design Patterns: Stream 2]. Homework: Programming 4 and Written 4
Wed, Mar 27 Lab:
Thu, Mar 28 Lecture: Design Patterns: Error Handling Arjun’s lecture cancelled
Tue, Apr 2 Lecture: Objects vs. Functions
Wed, Apr 3 Lab:
Thu, Apr 4 Lecture: Garbage Collection
Tue, Apr 9 Lecture: [Practice Mid-term 2]. Mid-Term Notes
Wed, Apr 10 Lab:
Thu, Apr 11 Mid-term 2 (in-class) Mid-Term Notes
Tue, Apr 16 Lecture: Programming Programming Languages (Part 1). Homework: Programming 5
Wed, Apr 17 No lab (Monday schedule)
Thu, Apr 18 Lecture: Programming Programming Languages (Part 2)
Tue, Apr 23 Lecture: Planning.
Wed, Apr 24 Lab:
Thu, Apr 25 Lecture: Testing Stochastic Algorithms. Homework: Programming 6
Tue, Apr 30 Lecture: Everything You Do Not Know About JavaScript
Wed, May 1 No lab