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] Folds [pdf] Examples: Map, Filter, and Fold [pdf] More Functional Folds [pdf] Statements and Expressions [pdf] Strict and Nonstrict Evaluation [pdf] Formal Semantics [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 |
Static/Dynamic Types [pdf] Undefined Behavior [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] 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 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)