Schedule
| Week | Days | Date | Lecture Topic / Slides | Lecture Notes | Worksheets | Reading (CPL) | Reading (PS) | Assignment |
|---|---|---|---|---|---|---|---|---|
| 1 | Tue | Mar 31 |
Overview [pdf] Scala Introduction [pdf] Scala Pragmatics [pdf] |
Scala 3 Book Scala |
Java and C Scala |
Ch 1 | Ch 1,2,4 | Homework 1 (due Apr 06) Midterm Study Guide (due May 04) |
| 2 | Tue | Apr 07 |
Contracts [pdf] Pattern Matching [pdf] Scala Classes [pdf] Algebraic Data Types [pdf] Statements and Expressions [pdf] |
Algebraic Data Types Expressions |
Algebraic Data Types | Ch 9.1,9.2 | Ch 3,13,19,24 | Homework 2 (due Apr 13) Midterm Study Guide (due May 04) |
| 3 | Tue | Apr 14 |
Strict and Nonstrict Evaluation [pdf] Functions on Lists [pdf] Methods and Functions [pdf] Folds [pdf] |
Functional Programming |
Functional Programming |
Ch 4 | Ch 5,7 | Homework 3 (due Apr 20) Midterm Study Guide (due May 04) |
| 4 | Tue | Apr 21 |
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 |
Homework 4 (due Apr 27) Midterm Study Guide (due May 04) |
| 5 | Tue | Apr 28 |
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 May 04) |
| 6 | Tue | May 05 |
Midterm Exam Option Types [pdf] L-Values [pdf] Argument Passing [pdf] |
Option Types |
Option Types Argument Passing |
Ch 13 | - |
Homework 5 (due May 11) |
| 7 | Tue | May 12 |
Undefined Behavior (Review) [pdf] Safety [pdf] Scope and Lifetime [pdf] Closures [pdf] |
Undefined Behavior |
Scope and Pointers Closures |
Ch 7 | Ch 8 | Homework 6 (due May 18) Final Exam Study Guide (due Jun 08) |
| 8 | Tue | May 19 |
Nested Classes [pdf] Dynamic Dispatch and Inheritance [pdf] Delegation-based OOP [pdf] |
OOP |
Ch 10, 12 | Ch 10, 11, 20 | Homework 7 (due May 25) Final Exam Study Guide (due Jun 08) |
|
| 9 | Tue | May 26 |
Parametric Polymorphism [pdf] Subtyping [pdf] Surprising Design Decisions [pdf] |
Subtyping JavaScript |
Ch 6.4 | Ch 17,18 | Homework 8 (due Jun 01) Final Exam Study Guide (due Jun 08) |
|
| 10 | Tue | Jun 02 |
Exam Review [pdf] |
- | - | - |
Final Exam Study Guide (due Jun 08) |
|
| 11 | Tue | Jun 09 | Final Exam | |||||
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 Discord.
Weekly checklist:
- attend lecture (see D2L for recordings)
- reading from textbooks (see table above for chapter details)
- worksheet (see table above)
- Assignment submission (see D2L)
- quiz (see D2L)
- work through study guide questions for topics covered this week