Schedule

Week Date Lecture Topic Reading Resources
1 Jan 07 Scala Introduction
Tail Recursion
PS 1-5,7
(PS = Programming in Scala)
Worksheet: Scala
scala-hw.zip
2 Jan 14 Functions over Lists
Folds
Closures
Closure Implementation
PS8-9
PS13-14
Worksheet: Functional Programming
3 Jan 21 Scala Classes
Methods and Functions
Option Types
Algebraic Data Types
PS18 Worksheet: Algebraic Data Types
4 Jan 28 Undefined Behavior
Safety
Parametric Polymorphism
Subtyping
- Worksheet: Subtyping
Worksheet: Argument Passing
5 Feb 04 Dynamic/Static Types
Scanning
ASTs
CI 1-3.4
CI 4-5
(CI = Crafting Interpreters)
Worksheet: Lox and Prerequisites
See the resources tab for software to install
See D2L for homework and quiz
chap04_scanning.zip
chap06_parsing.zip
6 Feb 11 Midterm Exam 5:45PM-7:15PM - -
7 Feb 18 Parsing Expressions
Evaluating Expressions
Statements and State
Statements versus Expressions
Strict versus Nonstrict
L-Values
Scope
CI 3.5-3.6
CI 6-8
Worksheet: Lvals
See D2L for homework and quiz
chap07_evaluating.zip
chap08_statements.zip
8 Feb 25 Control Flow
Functions and Closures
Resolution
Dynamic/Static Scope
Argument Passing
CI 3.7-3.8
CI 9-11
chap09_control.zip
chap10_functions.zip
chap11_resolving.zip
9 Mar 04 Dynamic Dispatch and Inheritance
More Inheritance
Nested Classes
Classes
Inheritance
CI 3.9-3.10
CI 12-13
chap12_classes.zip
chap13_inheritance.zip
10 Mar 11 Advanced Topics / Review - -
11 Mar 18 Final Exam 5:45PM-8:00PM - -

Slides use reveal.js: