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 | 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 | |
R | 1/30 | Constructing Programs: A Brief Primer | ||
3 | T | 2/4 | Recursion | |
R | 2/6 | Inductive Definitions and Inductively Defined Structures | Assignment 1 due | |
4 | T | 2/11 | Operations on Inductively Defined Structures | |
R | 2/13 | A Brief Introduction to Parsing | Assignment 2 due | |
5 | T | 2/18 | Functors in Scala: Map, Filter and Fold | |
R | 2/20 | Big Step Operational Semantics : Introduction | Assignment 3 due | |
6 | T | 2/25 | Lettuce: A toy language with let-bindings | |
R | 2/27 | Lettuce: Scopes and Environments | Assignment 4 due | |
7 | T | 3/4 | Function Calls and Closures in Lettuce | |
R | 3/6 | Recursion in Lettuce: Y-Combinators and Circular Scopes | Assignment 5 due | |
8 | T | 3/11 | References, Mutable Vars and Side Effects | |
R | 3/13 | Implicit References | Assignment 6 due | |
9 | T | 3/18 | No class: Spring recess | |
R | 3/20 | No class: Spring recess | ||
10 | T | 3/25 | Calling Conventions: Call by Value vs. Reference | |
R | 3/27 | Garbage Collection: Basic Concepts | Assignment 7 due | |
11 | T | 4/1 | Continuation Passing Style (CPS): Converting to Tail Recursion | |
R | 4/3 | Trampolines | Assignment 8 due | |
12 | T | 4/8 | Types and Type Checking | |
R | 4/10 | Type Inference: Basic Idea | Assignment 9 due | |
13 | T | 4/15 | Type Inference: Unification and Constraint Solving | |
R | 4/17 | Introduction to Object Oriented Concepts (in Scala) | Assignment 10 due | |
14 | T | 4/22 | Traits, Type Parameters, Generics and Type Constraints | |
R | 4/24 | Subtyping and Variance Annotations | Assignment 11 due | |
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) |