| 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 |
Option Types [pdf]
Tail Recursion [pdf]
Static/Dynamic Types [pdf]
Undefined Behavior [pdf]
|
Option Types
Tail Recursion
Static and Dynamic Types
Undefined Behavior
|
Tail Recursion
Option Types
|
Ch 6
|
Ch 8.10
|
Midterm Study Guide (due May 04)
|
| 6 |
Tue |
May 05 |
Midterm Exam
L-Values [pdf]
Argument Passing [pdf]
Closures [pdf]
|
-
|
Argument Passing
Closures
|
Ch 13
|
-
|
Homework 5 (due May 11)
|
| 7 |
Tue |
May 12 |
Safety [pdf]
Scope and Lifetime [pdf]
Compile-Time Safety in Rust [pdf]
|
-
|
Scope and Pointers
|
Ch 7
|
Ch 8
|
Homework 6 (due May 18)
Final Exam Study Guide (due Jun 08)
|
| 8 |
Tue |
May 19 |
Dynamic Dispatch and Inheritance [pdf]
Parametric Polymorphism [pdf]
Subtyping [pdf]
|
|
OOP
Subtyping
|
Ch 6.4, 10, 12
|
Ch 6, 10, 11
|
Homework 7 (due May 25)
Optional Extra Credit: CS Program Assessment - See D2L Quiz (due Jun 05)
Final Exam Study Guide (due Jun 08)
|
| 9 |
Tue |
May 26 |
Nested Classes [pdf]
Surprising Design Decisions: Introduction to Javascript [pdf]
Delegation-based OOP [pdf]
|
|
JavaScript
|
-
|
Ch 17, 18, 20
|
Homework 8 (due Jun 01)
Optional Extra Credit: CS Program Assessment - See D2L Quiz (due Jun 05)
Final Exam Study Guide (due Jun 08)
|
| 10 |
Tue |
Jun 02 |
Java Concurrency [pdf]
Exam Review [pdf]
|
|
- |
- |
- |
Optional Extra Credit: CS Program Assessment - See D2L Quiz (due Jun 05)
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.