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 (CPS): Converting to Tail RecursionQuiz 4 in class
Assignment 8 due
Assignment 9 released
12T4/8Programming with Continuations 
 R4/10Types and Type CheckingAssignment 9 due
Assignment 10 released
13T4/15Type Inference: Basic Idea 
 R4/17Type Inference: Unification and Constraint SolvingAssignment 10 due
Assignment 11 released
14T4/22Introduction to Object Oriented Concepts (in Scala) 
 R4/24Traits, Type Parameters, Generics and Type ConstraintsAssignment 11 due
Assignment 12 released
15T4/29Subtyping and Variance Annotations 
 R5/1Lazy Evaluation, Streams, Iterators and ComprehensionsAssignment 12 due
16T5/6Special Topics 
 R5/8Review 
17Wed5/14Final Exam in CSB 130 (6:20-8:20 pm)