| Week |
Days |
Date |
Lecture Topic / Slides |
Lecture Notes |
Worksheets |
Reading (CPL) |
Reading (PS) |
Assignment |
| 1 |
Mon
Wed
|
Jan 05
Jan 07
|
Overview [pdf]
Scala Pragmatics [pdf]
Scala Introduction [pdf]
|
Scala 3 Book
Scala
|
Java and C
Scala
|
-
|
Ch 1,2,4
|
Assignment 1 (due Jan 16)
D2L Folder
|
| 2 |
Mon
Wed
|
Jan 12
Jan 14
|
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 Jan 23)
D2L Folder
|
| 3 |
Mon Wed
|
Jan 19 Jan 21
|
No Class: Martin Luther King Day
Statements and Expressions [pdf]
Strict and Nonstrict Evaluation [pdf]
|
Expressions
|
Language Interpreter
|
Ch 4
|
Ch 5,7
|
Assignment 3 (due Jan 30)
D2L Folder
|
| 4 |
Mon
Wed
|
Jan 26
Jan 28
|
Functions on Lists [pdf]
Methods and Functions [pdf]
Folds [pdf]
|
Functional Programming
Code Snippets
|
Functional Programming
|
Ch 3.4.7, 5.6
|
Ch 9, 14, 15
|
Assignment 4 (due Feb 13)
D2L Folder
|
| 5 |
Mon
Wed |
Feb 02
Feb 04 |
Tail Recursion [pdf]
Static/Dynamic Types [pdf]
Midterm Exam (Feb 04)
|
Tail Recursion
Static and Dynamic Types
Code Snippets
|
Tail Recursion
|
Ch 6
|
Ch 8.10
|
- |
| 6 |
Mon
Wed
|
Feb 09
Feb 11
|
Undefined Behavior [pdf]
Safety [pdf]
Option Types [pdf]
L-Values [pdf]
Argument Passing [pdf]
|
Undefined Behavior
Option Types
Code Snippets
|
Option Types
Argument Passing
|
Ch 13
|
-
|
Assignment 5 (due Feb 20)
D2L Folder
|
| 7 |
Mon Wed
|
Feb 16 Feb 18
|
Scope and Lifetime [pdf]
Closures [pdf]
|
|
Scope and Pointers
Closures
Code Snippets
|
Ch 7
|
Ch 8
|
Assignment 6 (due Feb 27)
D2L Folder
|
| 8 |
Mon
Wed
|
Feb 23
Feb 25
|
Nested Classes [pdf]
Dynamic Dispatch and Inheritance [pdf]
Delegation-based OOP [pdf]
|
Code Snippets
|
OOP
|
Ch 10, 12
|
Ch 10, 11, 20
|
Assignment 7 (due Mar 06)
D2L Folder
|
| 9 |
Mon Wed |
Mar 02 Mar 04 |
Parametric Polymorphism [pdf]
Subtyping [pdf]
|
Code Snippets
|
Subtyping
|
Ch 6.4
|
Ch 17,18
|
Assignment 8 (due Mar 13)
D2L Folder
|
| 10 |
Mon Wed |
Mar 09 Mar 11 |
Surprising Design Decisions [pdf]
Exam Review [pdf]
|
|
JavaScript
|
- |
- |
- |
| 11 |
|
|
Final Exam, in-person students: Mar 16 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.