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 Pragmatics [pdf] Scala Introduction [pdf] |
Scala 3 Book Scala |
Java and C Scala |
- | Ch 1,2,4 |
Assignment 1 (due Apr 10) D2L Folder |
| 2 | Tue Thu |
Apr 07 Apr 09 |
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 Apr 17) D2L Folder |
| 3 | Tue Thu |
Apr 14 Apr 16 |
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 Apr 24) D2L Folder |
| 4 | Tue Thu |
Apr 21 Apr 23 |
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 May 08) D2L Folder |
| 5 | Tue Thu |
Apr 28 Apr 30 |
Tail Recursion [pdf] Static/Dynamic Types [pdf] Midterm Exam (Apr 30) |
Tail Recursion Static and Dynamic Types Code Snippets |
Tail Recursion |
Ch 6 | Ch 8.10 | - |
| 6 | Tue Thu |
May 05 May 07 |
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 May 15) D2L Folder |
| 7 | Tue Thu |
May 12 May 14 |
Scope and Lifetime [pdf] Closures [pdf] |
Scope and Pointers Closures Code Snippets |
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] |
Code Snippets |
Subtyping |
Ch 6.4 | Ch 17,18 |
Assignment 8 (due Jun 05) D2L Folder |
| 10 | Tue Thu |
Jun 02 Jun 04 |
Surprising Design Decisions [pdf] Exam Review [pdf] |
JavaScript |
- | - | - | |
| 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)