Schedule

Week Days Date Lecture Topic / Slides Lecture Notes Worksheets Reading (CPL) Reading (PS) Assignment
1 Tue Jan 06 Overview [pdf]
Scala Introduction [pdf]
Scala Pragmatics [pdf]
Scala 3 Book
Scala
Java and C
Scala
Ch 1 Ch 1,2,4 Assignment 1
(due Jan 12)
Midterm Study Guide
(due Feb 09)
2 Tue Jan 13 Contracts [pdf]
Pattern Matching [pdf]
Scala Classes [pdf]
Algebraic Data Types [pdf]
Statements and Expressions [pdf]
Algebraic Data Types
Expressions
Algebraic Data Types Ch 9.1,9.2 Ch 3,13,19,24 Assignment 2
(due Jan 19)
Midterm Study Guide
(due Feb 09)
3 Tue Jan 20 Strict and Nonstrict Evaluation [pdf]
Functions on Lists [pdf]
Methods and Functions [pdf]
Folds [pdf]
Functional Programming
Functional Programming
Ch 4 Ch 5,7 Assignment 3
(due Jan 05)
Midterm Study Guide
(due Feb 09)
4 Tue Jan 27 Formal Semantics [pdf]
Examples: Map, Filter, and Fold [pdf]
More Functional Folds [pdf]
- Language Interpreter
Ch 3.4.7, 5.6 Ch 9, 14, 15 Assignment 4
(due Feb 02)
Midterm Study Guide
(due Feb 09)
5 Tue Feb 03 Tail Recursion [pdf]
Static/Dynamic Types [pdf]
Tail Recursion
Static and Dynamic Types
Tail Recursion
Ch 6 Ch 8.10 Midterm Study Guide
(due Feb 09)
6 Tue Feb 10 Midterm Exam
Undefined Behavior [pdf]
Safety [pdf]
Option Types [pdf]
L-Values [pdf]
Argument Passing [pdf]
Undefined Behavior
Option Types
Option Types
Argument Passing
Ch 13 - Assignment 5
(due Feb 16)
7 Tue Feb 17 Scope and Lifetime [pdf]
Closures [pdf]
Scope and Pointers
Closures
Ch 7 Ch 8 Assignment 6
(due Feb 23)
8 Tue Feb 24 Nested Classes [pdf]
Dynamic Dispatch and Inheritance [pdf]
Delegation-based OOP [pdf]
OOP
Ch 10, 12 Ch 10, 11, 20 Assignment 7
(due Mar 02)
9 Tue Mar 03 Parametric Polymorphism [pdf]
Subtyping [pdf]
Subtyping
Ch 6.4 Ch 17,18 Assignment 8
(due Mar 09)
10 Tue Mar 10 Surprising Design Decisions [pdf]
Exam Review [pdf]
JavaScript
- - -
11 Tue Mar 17 Final Exam


This course requires worksheets to be completed each week. The purpose is to provide support structure for your study and to provide better coverage of routine introductory exercises prior to completing more challenging homework assignments. You are welcome to ask questions about the worksheets on Discord.

Weekly checklist: