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:
- attend lecture (see D2L for recordings)
- reading from textbooks (see table above for chapter details)
- worksheet (see table above)
- worksheet quiz (this is just a checkbox, see D2L)
- Assignment submission (see D2L)
- quiz (see D2L)