| Week |
Days |
Date |
Lecture Topic / Slides |
Lecture Notes |
Worksheets |
Reading (CPL) |
Reading (PS) |
Assignment |
| 1 |
Wed
Mon
|
Sep 04
Sep 09
|
Overview [pdf]
Contracts [pdf]
Scala Introduction [pdf]
Scala Pragmatics [pdf]
|
Scala 3 Book
Expressions
Scala
|
Scala
|
Chs 1,3 |
Chs 1-4 |
Assignment 1 (due Sep 15) |
| 2 |
Wed
Mon
|
Sep 11
Sep 16
|
Statements and Expressions [pdf]
Strict and Nonstrict Evaluation [pdf]
Undefined Behavior [pdf]
Safety [pdf]
Static/Dynamic Types [pdf]
|
Static and Dynamic Types
|
Java and C
|
Chs 5,6 |
Chs 5,7 |
Assignment 2 (due Sep 22) |
| 3 |
Wed Mon
|
Sep 18 Sep 23
|
Pattern Matching [pdf]
Functions on Lists [pdf]
Folds [pdf]
Examples: Map, Filter, and Fold [pdf]
|
Functional Programming
|
Functional Programming
|
- |
Chs 8,9,15,16,23 |
Assignment 3 (due Sep 29) |
| 4 |
Wed
Mon |
Sep 25
Sep 30 |
Option Types [pdf]
Methods and Functions [pdf]
Tail Recursion [pdf]
Scala Classes [pdf]
|
|
-
|
- |
Chs 17,18 |
Assignment 4 (due Oct 13) |
| 5 |
Wed Mon |
Oct 02 Oct 07 |
Algebraic Data Types [pdf]
Midterm Exam (Oct 07)
|
|
Algebraic Data Types
|
Chs 7 |
Chs 6, 10, 15 |
- |
| 6 |
Wed Mon
|
Oct 09 Oct 14
|
Scope and Lifetime [pdf]
L-Values [pdf]
Argument Passing [pdf]
|
|
Argument Passing
|
Chs 8 |
Chs 21,24,26 |
Assignment 5 (due Oct 20) |
| 7 |
Wed Mon |
Oct 16 Oct 21 |
Closures [pdf]
Nested Classes [pdf]
|
|
Runtime Storage
Closures
|
Chs 9 |
Chs 12,20,29 |
Assignment 6 (due Oct 27) |
| 8 |
Wed Mon
|
Oct 23 Oct 28
|
Dynamic Dispatch and Inheritance [pdf]
Parametric Polymorphism [pdf]
Subtyping [pdf]
|
|
OOP
Subtyping
|
Chs 10-13 |
Chs 11,19 |
Assignment 7 (due Nov 03) |
| 9 |
Wed Mon |
Oct 30 Nov 04 |
JavaScript [pdf]
JavaScript OOP [pdf]
|
|
JavaScript
|
- |
- |
Assignment 8 (due Nov 10) |
| 10 |
Wed Mon |
Nov 06 Nov 11 |
Exam Review [pdf]
|
|
- |
- |
- |
- |
| 11 |
Wed Mon |
Nov 13 Nov 18 |
Final Exam
|
|
- |
- |
- |
- |