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 Introduction [pdf] Scala Pragmatics [pdf] |
Scala 3 Book Scala |
Java and C Scala |
Ch 1 | Ch 1,2,4 |
Assignment 1 (due Apr 10) D2L Folder |
| 2 | Tue Thu |
Apr 07 Apr 09 |
Contracts [pdf] Pattern Matching [pdf] Scala Classes [pdf] Algebraic Data Types [pdf] Statements and Expressions [pdf] |
Algebraic Data Types Expressions 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 |
Strict and Nonstrict Evaluation [pdf] Functions on Lists [pdf] Methods and Functions [pdf] Folds [pdf] |
Expressions |
Functional Programming |
Ch 4 | Ch 5,7 |
Assignment 3 (due Apr 24) D2L Folder |
| 4 | Tue Thu |
Apr 21 Apr 23 |
Examples: Map, Filter, and Fold [pdf] More Functional Folds [pdf] Formal Semantics [pdf] |
- |
Language Interpreter |
Ch 3.4.7, 5.6 | Ch 9, 14, 15 |
Assignment 4 (due May 07) D2L Folder |
| 5 | Tue Thu |
Apr 28 Apr 30 |
Tail Recursion [pdf] Static/Dynamic Types [pdf] Undefined Behavior [pdf] |
Tail Recursion Static and Dynamic Types |
Tail Recursion |
Ch 6 | Ch 8.10 |
Midterm Study Guide (due Apr 30) |
| 6 | Tue Thu |
May 05 May 07 |
Midterm Exam (May 05) Option Types [pdf] L-Values [pdf] Argument Passing [pdf] |
Option Types |
Option Types Argument Passing |
Ch 13 | - |
Assignment 5 (due May 15) D2L Folder |
| 7 | Tue Thu |
May 12 May 14 |
Undefined Behavior (Review) [pdf] Safety [pdf] Scope and Lifetime [pdf] Closures [pdf] |
Undefined Behavior |
Scope and Pointers Closures |
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] Surprising Design Decisions [pdf] |
Code Snippets |
Subtyping JavaScript |
Ch 6.4 | Ch 17,18 |
Assignment 8 (due Jun 05) D2L Folder |
| 10 | Tue Thu |
Jun 02 Jun 04 |
Exam Review [pdf] |
JavaScript | - | - |
Final Study Guide (due Jun 04) |
|
| 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:
- 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)
- Quiz (see D2L)
- Assignment submission (see D2L)