Schedule

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 - - - -


Weekly checklist: