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 26)
Midterm Study Guide
(due Feb 09)
4 Tue Jan 27 Examples: Map, Filter, and Fold [pdf]
More Functional Folds [pdf]
Formal Semantics [pdf]
- Language Interpreter
Ch 3.4.7, 5 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]
Undefined Behavior [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
Option Types [pdf]
L-Values [pdf]
Argument Passing [pdf]
Option Types
Option Types
Argument Passing
Ch 13 - Assignment 5
(due Feb 16)
7 Tue Feb 17 Undefined Behavior (Review) [pdf]
Safety [pdf]
Scope and Lifetime [pdf]
Closures [pdf]
Undefined Behavior
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: