Weekly Schedule
The schedule along with the list of topics to be covered are tentative and subject to change.
Week | Date | Topic | Assignment | |
---|---|---|---|---|
1 | T | 1/21 | Welcome and course overview Slides Notebook | Post a note on Teams to introduce yourself. Review the Syllabus. |
R | 1/23 | No class: Instructor on travel | Setup software and development environment for the course (see here) | |
2 | T | 1/28 | Basic Introduction to the Scala Language Notebook | |
R | 1/30 | Recursion Notebook | Assignment 1 released | |
3 | T | 2/4 | Inductive Definitions and Inductively Defined Structures Notebook | |
R | 2/6 | Operations on Inductively Defined Structures Notebook | Assignment 1 due Assignment 2 released | |
4 | T | 2/11 | More Scala: Map, Filter and Fold Notebook | |
R | 2/13 | Operations on Arithmetic Expressions Notebook | Quiz in class Assignment 2 due Assignment 3 released | |
5 | T | 2/18 | Big Step Operational Semantics : Introduction Notebook | |
R | 2/20 | Lettuce: A toy language with let-bindings Notebook | Assignment 3 due Assignment 4 released | |
6 | T | 2/25 | Lettuce: Scopes and Environments | |
R | 2/27 | Function Calls and Closures in Lettuce | Assignment 4 due Assignment 5 released | |
7 | T | 3/4 | Recursion in Lettuce: Y-Combinators and Circular Scopes | |
R | 3/6 | References, Mutable Vars and Side Effects | Assignment 5 due Assignment 6 released | |
8 | T | 3/11 | Implicit References | |
R | 3/13 | Calling Conventions: Call by Value vs. Reference | Assignment 6 due Assignment 7 released | |
9 | T | 3/18 | No class: Spring recess | |
R | 3/20 | No class: Spring recess | ||
10 | T | 3/25 | Garbage Collection: Basic Concepts | |
R | 3/27 | Continuation Passing Style (CPS): Converting to Tail Recursion | Assignment 7 due Assignment 8 released | |
11 | T | 4/1 | Programming with Continuations | |
R | 4/3 | Trampolines | Assignment 8 due Assignment 9 released | |
12 | T | 4/8 | Types and Type Checking | |
R | 4/10 | Type Inference: Basic Idea | Assignment 9 due Assignment 10 released | |
13 | T | 4/15 | Type Inference: Unification and Constraint Solving | |
R | 4/17 | Introduction to Object Oriented Concepts (in Scala) | Assignment 10 due Assignment 11 released | |
14 | T | 4/22 | Traits, Type Parameters, Generics and Type Constraints | |
R | 4/24 | Subtyping and Variance Annotations | Assignment 11 due Assignment 12 released | |
15 | T | 4/29 | Lazy Evaluation, Streams, Iterators and Comprehensions | |
R | 5/1 | Introduction to Formal Methods | Assignment 12 due | |
16 | T | 5/6 | Review | |
R | 5/8 | Review | ||
17 | Wed | 5/14 | Final Exam in CSB 130 (6:20-8:20 pm) |