Schedule

Schedule is subject to change. Lecture materials may change after the live class meeting.

Week Days Date Lecture Topic / Slides Lecture Notes Worksheets Reading (CPL) Reading (PS) Assignment
1 Wed Sep 10 Overview [pdf]
Scala Introduction [pdf]
Scala Classes [pdf]
Scala Pragmatics [pdf]
Contracts [pdf]
Scala 3 Book
Scala
Scala
Ch 1 Ch 1,2,4 Assignment 1
(due Sep 18)
2 Wed Sep 17 Overview (repeated) [pdf]
Scala Introduction (repeated from last week) [pdf]
Statements and Expressions [pdf]
Strict and Nonstrict Evaluation [pdf]
Pattern Matching [pdf]
Formal Semantics [pdf]
Expressions
Java and C Ch 4 Ch 3,5,13 Assignment 2
(due Sep 25)
3 Wed Sep 24 Functions on Lists [pdf]
Methods and Functions [pdf]
Folds [pdf]
Functional Programming
Functional Programming
Ch 3 Ch 7,14 Assignment 3
(due Oct 02)
4 Wed Oct 01 Examples: Map, Filter, and Fold [pdf]
More Functional Folds [pdf]
Static/Dynamic Types [pdf]
Option Types [pdf]
Tail Recursion [pdf]
Static and Dynamic Types
Option Types
Tail Recursion
- Ch 6 Ch 9,24 Assignment 4
(due Oct 09)
Optional: Midterm Study Guide
extra credit, due Oct 13
5 Wed Oct 08 Safety [pdf]
Undefined Behavior [pdf]
L-Values [pdf]
Argument Passing [pdf]
Algebraic Data Types [pdf]
Undefined Behavior
Algebraic Data Types
L-values
- Ch 6,7 Ch 19 Optional: Midterm Study Guide
extra credit, due Oct 13
6 Wed Oct 15 Midterm Exam (5:45pm)
Algebraic Data Types (continued) [pdf]
- Argument Passing
Algebraic Data Types
- - Assignment 5
(due Oct 23)
7 Wed Oct 22 Scope and Lifetime [pdf]
Closures [pdf]
Nested Classes [pdf]
Runtime Storage
Closures
Ch 7 Ch 8 Assignment 6
(due Oct 30)
Optional: Final Exam Study Guide
extra credit, due Nov 17
8 Wed Oct 29 Dynamic Dispatch and Inheritance [pdf]
Delegation-based OOP [pdf]
OOP
Ch 10,13 Ch 10,11,20 Assignment 7
(due Nov 06)
9 Wed Nov 05 Parametric Polymorphism [pdf]
Subtyping [pdf]
Surprising Design Decisions [pdf]
Subtyping
JavaScript
- Ch 17,18 Assignment 8
(due Nov 13)
Optional: Final Exam Study Guide
extra credit, due Nov 17
10 Wed Nov 12 Exam Review [pdf]
- - - Optional: Final Exam Study Guide
extra credit, due Nov 17
11 Wed Nov 19 Final Exam (5:45pm) - - - -


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: