Weekly Schedule

The schedule along with the list of topics to be covered are tentative and subject to change.

Week DateTopicAssignment
1T1/21Welcome and course overview
Slides Notebook
Post a note on Teams to introduce yourself.
Review the Syllabus.
 R1/23No class: Instructor on travelSetup software and development environment for the course (see here)
2T1/28Basic Introduction to the Scala Language
Notebook
 
 R1/30Recursion
Notebook
Assignment 1 released
3T2/4Inductive Definitions and Inductively Defined Structures
Notebook
 
 R2/6Operations on Inductively Defined Structures
Notebook
Assignment 1 due
Assignment 2 released
4T2/11More Scala: Map, Filter and Fold
Notebook
 
 R2/13Operations on Arithmetic Expressions
Notebook
Quiz 1 in class
Assignment 2 due
Assignment 3 released
5T2/18Big Step Operational Semantics : Introduction
Notebook
 
 R2/20Lettuce: A toy language with let-bindings
Notebook
Assignment 3 due
Assignment 4 released
6T2/25Lettuce: Scopes and Environments
Notebook
 
 R2/27Lettuce: Scopes and Environments (Continued)Quiz 2 in class
Assignment 4 due
Assignment 5 released
7T3/4Function Calls and Closures in Lettuce
Notebook
 
 R3/6Function Calls and Closures in Lettuce (Continued)Assignment 5 due
Assignment 6 released
8T3/11Recursion in Lettuce: Y-Combinators and Circular Scopes
Notebook
 
 R3/13References, Mutable Vars and Side Effects
Notebook
Quiz 3 in class
Assignment 6 due
Assignment 7 released
9T3/18No class: Spring recess 
 R3/20No class: Spring recess 
10T3/25Implicit References
Notebook
 
 R3/27Calling Conventions: Call by Value vs. Reference
Notebook
Assignment 7 due
Assignment 8 released
11T4/1Garbage Collection: Basic Concepts
Notebook
 
 R4/3Continuation Passing Style
Notebook
Quiz 4 in class
Assignment 8 due
Assignment 9 released
12T4/8Continuation Passing Style (Continued) 
 R4/10Trampolines
Notebook
Assignment 9 due
Assignment 10 released
13T4/15Types and Type Checking
Notebook
 
 R4/17Type Inference: Basic Idea
Notebook
Quiz 5 in class
Assignment 10 due
Assignment 11 released
14T4/22Type Inference: Basic Idea (Continued) 
 R4/24Type Inference: Unification and Constraint Solving
Notebook
Assignment 11 due
Assignment 12 released
15T4/29Introduction to Object Oriented Concepts (in Scala)
Notebook
 
 R5/1Subtyping and Variance Annotations
Notebook
Quiz 6 in class
Assignment 12 due
16T5/6Lazy Evaluation and Streams
Notebook
 
 R5/8Review 
17Wed5/14Final Exam in CSB 130 (6:20-8:20 pm)