Schedule

Note: this schedule is tentative and may change based on student feedback as the semester progresses.
Day Content Reading (Optional) Due
Thu, Sept 4
Mon, Sept 8
Functional programming, data in Racket
Racket Guide, 1-1.2, Ch. 2 as needed
Thu, Sept 11
Scope, call stack, testing
CS111 refresher on call stack RackUnit
Mon, Sept 15
Tail recursion
Thu, Sept 18
Higher-order functions
Due: Assignment 1
Mon, Sept 22
Programs as data (interpreters)
Thu, Sept 25
Lexical vs. dynamic scope
Due: Assignment 2
Mon, Sept 29
Introducing OCaml
Thu, Oct 2
Tuples, records, variant types
Due: Assignment 3
Mon, Oct 6
More pattern matching, currying
Thu, Oct 9
Quiz 1
Mon, Oct 13 Indigenous Peoples’ Day
Thu, Oct 16
Exceptions, type checking
Due: Assignment 4
Mon, Oct 20
Type inference
Thu, Oct 23
Mutation
Due: Assignment 5
Mon, Oct 27
Mutation cont.
Thu, Oct 30
Lazy evaluation, thunks, streams
Due: Assignment 6
Mon, Nov 3
Modularity
Thu, Nov 6
Quiz 2
Mon, Nov 10
Parallelism/concurrency
Thu, Nov 13
Parallelism/concurrency cont.
Due: Assignment 7
Mon, Nov 17
Objects
Thu, Nov 20
Objects cont.
Due: Assignment 8
Mon, Nov 24
Memory safety, memory management
Thu, Nov 27 Thanksgiving
Mon, Dec 1
Memory management cont.
Thu, Dec 4
Quiz 3
Mon, Dec 8
Final class!
Fri, Dec 12
Due: Assignment 9
Mon, Dec 15
Finals start
Thu, Dec 18
Finals end