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 1 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 Notebook | |
R | 2/27 | Lettuce: Scopes and Environments (Continued) | Quiz 2 in class Assignment 4 due Assignment 5 released | |
7 | T | 3/4 | Function Calls and Closures in Lettuce Notebook | |
R | 3/6 | Function Calls and Closures in Lettuce (Continued) | Assignment 5 due Assignment 6 released | |
8 | T | 3/11 | Recursion in Lettuce: Y-Combinators and Circular Scopes Notebook | |
R | 3/13 | References, Mutable Vars and Side Effects Notebook | Quiz 3 in class 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 | Implicit References Notebook | |
R | 3/27 | Calling Conventions: Call by Value vs. Reference Notebook | Assignment 7 due Assignment 8 released | |
11 | T | 4/1 | Garbage Collection: Basic Concepts Notebook | |
R | 4/3 | Continuation Passing Style (CPS): Converting to Tail Recursion | Quiz 4 in class Assignment 8 due Assignment 9 released | |
12 | T | 4/8 | Programming with Continuations | |
R | 4/10 | Types and Type Checking | Assignment 9 due Assignment 10 released | |
13 | T | 4/15 | Type Inference: Basic Idea | |
R | 4/17 | Type Inference: Unification and Constraint Solving | Assignment 10 due Assignment 11 released | |
14 | T | 4/22 | Introduction to Object Oriented Concepts (in Scala) | |
R | 4/24 | Traits, Type Parameters, Generics and Type Constraints | Assignment 11 due Assignment 12 released | |
15 | T | 4/29 | Subtyping and Variance Annotations | |
R | 5/1 | Lazy Evaluation, Streams, Iterators and Comprehensions | Assignment 12 due | |
16 | T | 5/6 | Special Topics | |
R | 5/8 | Review | ||
17 | Wed | 5/14 | Final Exam in CSB 130 (6:20-8:20 pm) |