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 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 
 R2/27Function Calls and Closures in LettuceAssignment 4 due
Assignment 5 released
7T3/4Recursion in Lettuce: Y-Combinators and Circular Scopes 
 R3/6References, Mutable Vars and Side EffectsAssignment 5 due
Assignment 6 released
8T3/11Implicit References 
 R3/13Calling Conventions: Call by Value vs. ReferenceAssignment 6 due
Assignment 7 released
9T3/18No class: Spring recess 
 R3/20No class: Spring recess 
10T3/25Garbage Collection: Basic Concepts 
 R3/27Continuation Passing Style (CPS): Converting to Tail RecursionAssignment 7 due
Assignment 8 released
11T4/1Programming with Continuations 
 R4/3TrampolinesAssignment 8 due
Assignment 9 released
12T4/8Types and Type Checking 
 R4/10Type Inference: Basic IdeaAssignment 9 due
Assignment 10 released
13T4/15Type Inference: Unification and Constraint Solving 
 R4/17Introduction to Object Oriented Concepts (in Scala)Assignment 10 due
Assignment 11 released
14T4/22Traits, Type Parameters, Generics and Type Constraints 
 R4/24Subtyping and Variance AnnotationsAssignment 11 due
Assignment 12 released
15T4/29Lazy Evaluation, Streams, Iterators and Comprehensions 
 R5/1Introduction to Formal MethodsAssignment 12 due
16T5/6Review 
 R5/8Review 
17Wed5/14Final Exam in CSB 130 (6:20-8:20 pm)