Schedule

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

Mon
Sep 09

Sep 14
Overview [pdf]
Scala Pragmatics [pdf]
Scala Introduction [pdf]
Scala 3 Book
Scala
Exercises
Java and C
Scala
- Ch 1,2,4 Assignment 1 (due Sep 18)
D2L Section 401/410
D2L Section 402/411
2 Wed

Mon


Sep 16

Sep 21


Scala Classes [pdf]
Algebraic Data Types [pdf]
Pattern Matching [pdf]
Contracts [pdf]
Formal Semantics [pdf]
Algebraic Data Types
Exercises
Code Snippets
Algebraic Data Types Ch 9.1,9.2 Ch 3,13,19,24 Assignment 2 (due Sep 25)
D2L Section 401/410
D2L Section 402/411
3 Wed
Mon

Sep 23
Sep 28

Statements and Expressions [pdf]
Strict and Nonstrict Evaluation [pdf]
Functions on Lists [pdf]
Expressions
Functional Programming
Language Interpreter
Functional Programming
Ch 4 Ch 5,7 Assignment 3 (due Oct 02)
D2L Section 401/410
D2L Section 402/411
4 Wed

Mon

Sep 30

Oct 05

Methods and Functions [pdf]
Folds [pdf]
Tail Recursion [pdf]
Static/Dynamic Types [pdf]
Tail Recursion
Static and Dynamic Types
Tail Recursion
Ch 3.4.7, 5.6 Ch 9, 14, 15 Assignment 4 (due Oct 16)
D2L Section 401/410
D2L Section 402/411
5 Wed


Mon
Oct 07


Oct 12
Undefined Behavior [pdf]
Safety [pdf]
Option Types [pdf]
Midterm Exam (Oct 12)
Undefined Behavior
Option Types
Option Types
Ch 6 Ch 8.10 -
6 Wed

Mon
Oct 14

Oct 19
L-Values [pdf]
Argument Passing [pdf]
Scope and Lifetime [pdf]
Argument Passing
Scope and Pointers
Ch 13 - Assignment 5 (due Oct 23)
D2L Section 401/410
D2L Section 402/411
7 Wed
Mon

Oct 21
Oct 26

Closures [pdf]
Nested Classes [pdf]
Dynamic Dispatch and Inheritance [pdf]
Closures
Ch 7 Ch 8 Assignment 6 (due Oct 30)
D2L Section 401/410
D2L Section 402/411
8 Wed
Mon
Oct 28
Nov 02
Delegation-based OOP [pdf]
Parametric Polymorphism [pdf]
OOP
Ch 10, 12 Ch 10, 11, 20 Assignment 7 (due Nov 06)
D2L Section 401/410
D2L Section 402/411
9 Wed
Mon
Nov 04
Nov 09
Subtyping [pdf]
Token-efficient Languages [pdf]
Subtyping
Ch 6.4 Ch 17,18 Assignment 8 (due Nov 13)
D2L Section 401/410
D2L Section 402/411
10 Wed
Mon
Nov 11
Nov 16
Surprising Design Decisions [pdf]
Exam Review [pdf]
- - -
11 Final Exam, see Final Exam Schedule
Online students: please register through D2L
In-person students (Section 401/410): MON November 23 11:30am-1:45pm
In-person students (Section 402/411): WED November 18 11:30am-1:45pm


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: