Schedule

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

Mon
Sep 10

Sep 15
Overview [pdf]
Scala Pragmatics [pdf]
Scala Introduction [pdf]
Scala 3 Book
Scala
Week 1 Snippets
Java and C
Scala
- Ch 1,2,4 Assignment 1 (due Sep 19)
Section 401/410
Section 402/411
2 Wed

Mon

Sep 17

Sep 22

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

Sep 24
Sep 29

Formal Semantics [pdf]
Statements and Expressions [pdf]
Strict and Nonstrict Evaluation [pdf]
Expressions
Language Interpreter
Ch 4 Ch 5,7 Assignment 3 (due Oct 03)
Section 401/410
Section 402/411
4 Wed

Mon
Oct 01

Oct 06
Functions on Lists [pdf]
Methods and Functions [pdf]
Folds [pdf]
Functional Programming
Functional Programming
Ch 3.4.7, 5.6 Ch 9, 14, 15 Assignment 4 (due Oct 17)
Section 401/410
Section 402/411
5 Wed

Mon
Oct 08

Oct 13
Tail Recursion [pdf]
Static/Dynamic Types [pdf]
Midterm Exam (Oct 13)
Tail Recursion
Static and Dynamic Types
Tail Recursion
Ch 6 Ch 8.10 -
6 Wed


Mon

Oct 15


Oct 20

Undefined Behavior [pdf]
Safety [pdf]
Option Types [pdf]
L-Values [pdf]
Argument Passing [pdf]
Undefined Behavior
Option Types
Option Types
Argument Passing
Ch 13 - Assignment 5 (due Oct 24)
Section 401/410
Section 402/411
7 Wed
Mon
Oct 22
Oct 27
Scope and Lifetime [pdf]
Closures [pdf]
Scope and Pointers
Closures
Ch 7 Ch 8 Assignment 6 (due Oct 31)
Section 401/410
Section 402/411
8 Wed

Mon
Oct 29

Nov 03
Nested Classes [pdf]
Dynamic Dispatch and Inheritance [pdf]
Delegation-based OOP [pdf]
OOP
Ch 10, 12 Ch 10, 11, 20 Assignment 7 (due Nov 07)
Section 401/410
Section 402/411
9 Wed
Mon
Nov 05
Nov 10
Parametric Polymorphism [pdf]
Subtyping [pdf]
Subtyping
Ch 6.4 Ch 17,18 Assignment 8 (due Nov 14)
Section 401/410
Section 402/411
10 Wed
Mon
Nov 12
Nov 17
Surprising Design Decisions [pdf]
Exam Review [pdf]
JavaScript
- - -
11 Final Exam, in-person students: for day and time 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: