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 |
Scala Classes [pdf] Algebraic Data Types [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 |
Contracts [pdf] Pattern Matching [pdf] Functions on Lists [pdf] Methods and Functions [pdf] |
Code Snippets |
Functional Programming |
Ch 4 | Ch 5,7 |
Assignment 3 (due Apr 24) D2L Folder |
| 4 | Tue Thu |
Apr 21 Apr 23 |
Tail Recursion [pdf] Tail Recursion (Again) Folds [pdf] |
Tail Recursion |
Tail Recursion |
Ch 3.4.7, 5.6 | Ch 9, 14, 15 |
Assignment 4 (due Apr 30) D2L Folder |
| 5 | Tue Thu |
Apr 28 Apr 30 |
Examples: Map, Filter, and Fold [pdf] Statements and Expressions [pdf] |
Expressions Static and Dynamic Types |
Language Interpreter |
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] Option Types (Again) Formal Semantics [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 |
Strict and Nonstrict Evaluation [pdf] Scope and Lifetime [pdf] |
Scope and Pointers |
Ch 7 | Ch 8 |
Assignment 6 (due May 22) D2L Folder |
|
| 8 | Tue Thu |
May 19 May 21 |
Closures [pdf] Static/Dynamic Types [pdf] Undefined Behavior [pdf] Safety [pdf] |
Undefined Behavior |
Closures |
Ch 10, 12 | Ch 10, 11, 20 |
Assignment 7 (due May 29) D2L Folder |
| 9 | Tue Thu |
May 26 May 28 |
Nested Classes [pdf] Dynamic Dispatch and Inheritance [pdf] Delegation-based OOP [pdf] Parametric Polymorphism [pdf] Subtyping [pdf] Surprising Design Decisions [pdf] |
Code Snippets Code Snippets |
OOP Subtyping JavaScript |
Ch 6.4 | Ch 17,18 |
Assignment 8 (due Jun 04) 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)