Schedule

Week Days Date Lecture Topic / Slides Lecture Notes Worksheets Reading (CPL) Reading (PS) Assignment
1 Mon
Wed


Jan 06
Jan 08


Overview [pdf]
Scala Introduction [pdf]
Scala Classes [pdf]
Scala Pragmatics [pdf]
Scala 3 Book
Scala
Week 1 Snippets
Scala
Ch 1 Ch 1,2,4 Assignment 1
(due Jan 17)
2 Mon


Wed

Jan 13


Jan 15

Statements and Expressions [pdf]
Strict and Nonstrict Evaluation [pdf]
Contracts [pdf]
Formal Semantics [pdf]
Pattern Matching [pdf]
Expressions
Week 2 Snippets
Java and C Ch 4 Ch 3,5,13 Assignment 2
(due Jan 24)
3 Mon
Wed
Jan 20
Jan 22
No class (Martin Luther King Day)
Functions on Lists [pdf]
Functional Programming
Week 3 Snippets
Functional Programming
Ch 3 Ch 7,14 Assignment 3
(due Jan 31)
4 Mon


Wed
Jan 27


Jan 29
Methods and Functions [pdf]
Folds [pdf]
Examples: Map, Filter, and Fold [pdf]
Static/Dynamic Types [pdf]
Static and Dynamic Types
Week 4 Snippets
- Ch 6 Ch 9,24 Assignment 4
(due Feb 07)
5 Mon


Wed
Feb 03


Feb 05
Undefined Behavior [pdf]
Safety [pdf]
Option Types [pdf]
Midterm Exam (Feb 05)
Undefined Behavior
Option Types
- Ch 6 - -
6 Mon
Wed


Feb 10
Feb 12


Tail Recursion [pdf]
L-Values [pdf]
Argument Passing [pdf]
Algebraic Data Types [pdf]
Tail Recursion
Algebraic Data Types
Week 6 Code Snippets
Algebraic Data Types
Argument Passing
Ch 7 Ch 19 Assignment 5
(due Feb 21)
7 Mon
Wed
Feb 17
Feb 19
Scope and Lifetime [pdf]
Closures [pdf]
Runtime Storage
Closures
Ch 7 Ch 8 Assignment 6
(due Feb 28)
8 Mon

Wed
Feb 24

Feb 26
Nested Classes [pdf]
Dynamic Dispatch and Inheritance [pdf]
Delegation-based OOP [pdf]
OOP
Ch 10,13 Ch 10,11,20 Assignment 7
(due Mar 07)
9 Mon
Wed
Mar 03
Mar 05
Parametric Polymorphism [pdf]
Subtyping [pdf]
Subtyping
- Ch 17,18 Assignment 8
(due Mar 14)
10 Mon
Wed
Mar 10
Mar 12
Surprising Design Decisions [pdf]
Exam Review [pdf]
JavaScript
- -
11 Mon Mar 17 Final Exam (11:30am-1:45pm) - - - -


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: