This is a tentative schedule of course topics and class periods, and it is subject to change.
Refer to Canvas for up-to-date details.

Wk Date Plan
1 08/24 Mon Overview: Language Features, "Paradigms"
08/26 Wed
08/28 Fri
2 08/31 Mon Syntax, Semantics, Parsing, & Interpretation
09/02 Wed
09/04 Fri Functional Programming; OCaml
3 09/07 Mon Labor Day
09/09 Wed Functional Programming; OCaml (cont.)
  • Recursion
  • First-class functions
  • Lexical scope / closures
  • Callback functions
  • Lambdas / anonymous functions
  • Currying / partial application
09/11 Fri
4 09/14 Mon
09/16 Wed Exam 0
09/18 Fri Functional Programming; OCaml (cont.)
5 09/21 Mon
09/23 Wed
09/25 Fri
6 09/28 Mon Exam 1
09/30 Wed Types & Typing
  • Static vs Dynamic
  • Type inference
  • Union types
  • Algebraic datatypes
  • Pattern matching
10/02 Fri
7 10/05 Mon
10/07 Wed
10/09 Fri
8 10/12 Mon
10/14 Wed
10/16 Fri Fall Break Day
9 10/19 Mon Memory Management & Safety
  • Manual
  • Reference counting
  • Tracing garbage collection
  • Rust's ownership model
10/21 Wed
10/23 Fri
10 10/26 Mon
10/28 Wed
10/30 Fri
11 11/02 Mon Object Oriented Programming (OOP)
  • Inheritance
  • Interfaces, traits, mixins
  • Generics, polymorphism
11/04 Wed
11/06 Fri
12 11/09 Mon Exam 2
11/11 Wed Object Oriented Programming (cont.)
11/13 Fri
13 11/16 Mon
11/18 Wed Application Styles
  • Asynchronous
  • Reactive
  • Backtracking
  • Lazy
11/20 Fri
14 11/23 Mon
11/25 Wed Thanksgiving Break
11/27 Fri
15 11/30 Mon Evaluating & Choosing Languages
12/02 Wed
12/04 Fri
16 12/10 Wed 3:30-5:30pm — Final exam period