Schedule

Week Days Date Lecture Topic / Slides Lecture Notes Worksheets Reading (CPL) Reading (PS) Assignment
1 Tue

Thu
Mar 31

Apr 02
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 Tue


Thu


Apr 07

Apr 09


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

Apr 14
Apr 16

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 Apr 24)
D2L Folder
4 Tue

Thu
Apr 21

Apr 23
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 May 08)
D2L Folder
5 Tue

Thu
Apr 28

Apr 30
Tail Recursion [pdf]
Static/Dynamic Types [pdf]
Midterm Exam (Apr 30)
Tail Recursion
Static and Dynamic Types
Code Snippets
Tail Recursion
Ch 6 Ch 8.10 -
6 Tue


Thu

May 05


May 07

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 May 15)
D2L Folder
7 Tue
Thu
May 12
May 14
Scope and Lifetime [pdf]
Closures [pdf]
Scope and Pointers
Closures
Code Snippets
Ch 7 Ch 8 Assignment 6 (due May 22)
D2L Folder
8 Tue

Thu
May 19

May 21
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 May 29)
D2L Folder
9 Tue
Thu
May 26
May 28
Parametric Polymorphism [pdf]
Subtyping [pdf]
Code Snippets
Subtyping
Ch 6.4 Ch 17,18 Assignment 8 (due Jun 05)
D2L Folder
10 Tue
Thu
Jun 02
Jun 04
Surprising Design Decisions [pdf]
Exam Review [pdf]
JavaScript
- - -
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.

Weekly checklist: