| Week |
Days |
Date |
Lecture Topic / Slides |
Lecture Notes |
Worksheets |
Reading (CPL) |
Reading (PS) |
Assignment |
| 1 |
Mon
Wed
|
Mar 30
Apr 01
|
Overview [pdf]
Scala Pragmatics [pdf]
Scala Introduction [pdf]
|
Scala 3 Book
Scala
|
Java and C
Scala
|
-
|
Ch 1,2,4
|
Assignment 1 (due Apr 10)
D2L Folder
|
| 2 |
Mon
Wed
|
Apr 06
Apr 08
|
Scala Classes [pdf]
Algebraic Data Types [pdf]
Pattern Matching [pdf]
Contracts [pdf]
Formal Semantics [pdf]
|
Algebraic Data Types
Code Snippets
|
Algebraic Data Types
|
Ch 9.1,9.2
|
Ch 3,13,19,24
|
Assignment 2 (due Apr 17)
D2L Folder
|
| 3 |
Mon Wed
|
Apr 13 Apr 15
|
Statements and Expressions [pdf]
Strict and Nonstrict Evaluation [pdf]
Functions on Lists [pdf]
|
Expressions
Functional Programming
Code Snippets
|
Language Interpreter
Functional Programming
|
Ch 4
|
Ch 5,7
|
Assignment 3 (due Apr 24)
D2L Folder
|
| 4 |
Mon
Wed
|
Apr 20
Apr 22
|
Methods and Functions [pdf]
Folds [pdf]
Tail Recursion [pdf]
Static/Dynamic Types [pdf]
|
Tail Recursion
Static and Dynamic Types
Code Snippets
|
Tail Recursion
|
Ch 3.4.7, 5.6
|
Ch 9, 14, 15
|
Assignment 4 (due May 08)
D2L Folder
|
| 5 |
Mon Wed
|
Apr 27 Apr 29
|
Midterm Exam (Apr 27)
Undefined Behavior [pdf]
Safety [pdf]
Option Types [pdf]
|
Undefined Behavior
Option Types
|
Option Types
|
Ch 6
|
Ch 8.10
|
- |
| 6 |
Mon
Wed
|
May 04
May 06
|
L-Values [pdf]
Argument Passing [pdf]
Scope and Lifetime [pdf]
|
|
Argument Passing
Scope and Pointers
|
Ch 13
|
-
|
Assignment 5 (due May 15)
D2L Folder
|
| 7 |
Mon Wed
|
May 11 May 13
|
Closures [pdf]
Nested Classes [pdf]
Dynamic Dispatch and Inheritance [pdf]
|
|
Closures
|
Ch 7
|
Ch 8
|
Assignment 6 (due May 22)
D2L Folder
|
| 8 |
Mon Wed
|
May 18 May 20
|
Delegation-based OOP [pdf]
Parametric Polymorphism [pdf]
|
|
OOP
|
Ch 10, 12
|
Ch 10, 11, 20
|
Assignment 7 (due May 29)
D2L Folder
|
| 9 |
Mon Wed |
May 25 May 27 |
No class due to Memorial Day
Subtyping [pdf]
|
|
Subtyping
|
Ch 6.4
|
Ch 17,18
|
Assignment 8 (due Jun 05)
D2L Folder
|
| 10 |
Mon Wed |
Jun 01 Jun 03 |
Surprising Design Decisions [pdf]
Exam Review [pdf]
|
|
JavaScript
|
- |
- |
- |
| 11 |
|
|
Final Exam, in-person students: June 8 11:30am-1:45pm, see Final Exam Schedule; online students: please register through D2L
|
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 the D2L forum.