| Week |
Days |
Date |
Lecture Topic / Slides |
Lecture Notes |
Worksheets |
Reading (CPL) |
Reading (PS) |
Assignment |
| 1 |
Tue
Thu |
Mar 31
Apr 02 |
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 Apr 10)
D2L Folder
|
| 2 |
Tue Thu |
Apr 07 Apr 09 |
Scala Classes [pdf]
Algebraic Data Types [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 |
Tue
Thu |
Apr 14
Apr 16 |
Contracts [pdf]
Pattern Matching [pdf]
Functions on Lists [pdf]
Methods and Functions [pdf]
|
Code Snippets
|
Functional Programming
|
Ch 4
|
Ch 5,7
|
Assignment 3 (due Apr 24)
D2L Folder
|
| 4 |
Tue Thu |
Apr 21 Apr 23 |
Tail Recursion [pdf]
Tail Recursion (Again)
Folds [pdf]
|
Tail Recursion
|
Tail Recursion
|
Ch 3.4.7, 5.6
|
Ch 9, 14, 15
|
Assignment 4 (due Apr 30)
D2L Folder
|
| 5 |
Tue Thu |
Apr 28 Apr 30 |
Examples: Map, Filter, and Fold [pdf]
Statements and Expressions [pdf]
|
Expressions
Static and Dynamic Types
|
Language Interpreter
|
Ch 6
|
Ch 8.10
|
Midterm Study Guide (due Apr 30)
|
| 6 |
Tue Thu |
May 05 May 07 |
Midterm Exam (May 05)
Option Types [pdf]
Option Types (Again)
Formal Semantics [pdf]
L-Values [pdf]
Argument Passing [pdf]
|
Option Types
|
Option Types
Argument Passing
|
Ch 13
|
-
|
Assignment 5 (due May 15)
D2L Folder
|
| 7 |
Tue Thu |
May 12 May 14 |
Strict and Nonstrict Evaluation [pdf]
Scope and Lifetime [pdf]
|
|
Scope and Pointers
|
Ch 7
|
Ch 8
|
Assignment 6 (due May 22)
D2L Folder
|
| 8 |
Tue
Thu |
May 19
May 21 |
Closures [pdf]
Closures (Again)
Static/Dynamic Types [pdf]
Undefined Behavior [pdf]
Safety [pdf]
|
Undefined Behavior
|
Closures
|
Ch 10, 12
|
Ch 10, 11, 20
|
Assignment 7 (due May 29)
D2L Folder
|
| 9 |
Tue Thu |
May 26 May 28 |
Nested Classes [pdf]
Nested Classes (Again)
Dynamic Dispatch and Inheritance [pdf]
Delegation-based OOP [pdf]
Parametric Polymorphism [pdf]
Subtyping [pdf]
Surprising Design Decisions [pdf]
|
Code Snippets
Code Snippets
|
OOP
Subtyping
JavaScript
|
Ch 6.4
|
Ch 17,18
|
Assignment 8 (due May 28)
D2L Folder
|
| 10 |
Tue Thu |
Jun 02 Jun 04 |
Exam Review [pdf]
|
|
JavaScript |
- |
- |
! Final Study Guide (due May 28)
|
| 11 |
|
|
Final Exam, in-person students: June 11 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.