| Week |
Days |
Date |
Lecture Topic / Slides |
Lecture Notes |
Worksheets |
Reading (CPL) |
Reading (PS) |
Assignment |
| 1 |
Tue |
Jan 06 |
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 Jan 12)
Midterm Study Guide (due Feb 09)
|
| 2 |
Tue |
Jan 13 |
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 Jan 19)
Midterm Study Guide (due Feb 09)
|
| 3 |
Tue |
Jan 20 |
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 Jan 26)
Midterm Study Guide (due Feb 09)
|
| 4 |
Tue |
Jan 27 |
Examples: Map, Filter, and Fold [pdf]
More Functional Folds [pdf]
Formal Semantics [pdf]
|
-
|
Language Interpreter
|
Ch 3.4.7, 5
|
Ch 9, 14, 15
|
Homework 4 (due Feb 02)
Midterm Study Guide (due Feb 09)
|
| 5 |
Tue |
Feb 03 |
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 Feb 09)
|
| 6 |
Tue |
Feb 10 |
Midterm Exam
Option Types [pdf]
L-Values [pdf]
Argument Passing [pdf]
|
Option Types
|
Option Types
Argument Passing
|
Ch 13
|
-
|
Homework 5 (due Feb 16)
|
| 7 |
Tue |
Feb 17 |
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 Feb 23)
Final Exam Study Guide (due Mar 16)
|
| 8 |
Tue |
Feb 24 |
Nested Classes [pdf]
Dynamic Dispatch and Inheritance [pdf]
Delegation-based OOP [pdf]
|
|
OOP
|
Ch 10, 12
|
Ch 10, 11, 20
|
Homework 7 (due Mar 02)
Final Exam Study Guide (due Mar 16)
|
| 9 |
Tue |
Mar 03 |
Parametric Polymorphism [pdf]
Subtyping [pdf]
|
|
Subtyping
|
Ch 6.4
|
Ch 17,18
|
Homework 8 (due Mar 09)
Final Exam Study Guide (due Mar 16)
|
| 10 |
Tue |
Mar 10 |
Surprising Design Decisions [pdf]
Exam Review [pdf]
|
|
JavaScript
|
- |
- |
Final Exam Study Guide (due Mar 16)
|
| 11 |
Tue |
Mar 17 |
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.