Schedule

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.

Weekly checklist: