Schedule
Week | Days | Date | Lecture Topic / Slides | Lecture Notes | Worksheets | Reading (CPL) | Reading (PS) | Assignment |
---|---|---|---|---|---|---|---|---|
1 | Mon Wed |
Apr 01 Apr 03 |
Overview [pdf] Statements and Expressions [pdf] Strict and Nonstrict Evaluation [pdf] Undefined Behavior [pdf] Scheme [pdf] |
Expressions Scheme |
Java and C Scheme simple.scm scheme.com repl.it |
Chs 1,3 | Chs 1-4 | Assignment 1 (due Apr 10) |
2 | Mon Wed |
Apr 08 Apr 10 |
Dynamic/Static Types [pdf] Safety [pdf] Scala Pragmatics [pdf] Scala Introduction [pdf] |
Static and Dynamic Types Scala Scala 3 Book |
Scala |
Chs 5,6 | Chs 5,7 | Assignment 2 (due Apr 17) |
3 | Mon Wed |
Apr 15 Apr 17 |
Functions on Lists [pdf] Methods and Functions [pdf] Folds [pdf] Option Types [pdf] |
Functional Programming |
Functional Programming |
- | Chs 8,9,15,16,23 | Assignment 3 (due Apr 24) |
4 | Mon Wed |
Apr 22 Apr 24 |
Examples: Map, Filter, and Fold [pdf] Iteration: Loops and Recursion [pdf] Tail Recursion [pdf] Scala Classes [pdf] |
- | - | Chs 17,18 | Assignment 4 (due May 08) |
|
5 | Mon Wed |
Apr 29 May 01 |
Algebraic Data Types [pdf] Midterm Exam (May 01) |
Algebraic Data Types |
Chs 7 | Chs 6, 10, 15 | - | |
6 | Mon Wed |
May 06 May 08 |
Scope and Lifetime [pdf] L-Values [pdf] Argument Passing [pdf] |
Runtime Storage Argument Passing |
Chs 8 | Chs 21,24,26 | Assignment 5 (due May 15) |
|
7 | Mon Wed |
May 13 May 15 |
Closures [pdf] Nested Classes [pdf] |
Closures |
Chs 9 | Chs 12,20,29 | Assignment 6 (due May 22) |
|
8 | Mon Wed |
May 20 May 22 |
Dynamic Dispatch and Inheritance Parametric Polymorphism Subtyping |
OOP Subtyping |
Chs 10-13 | Chs 11,19 | Assignment 7 (due May 29) |
|
9 | Mon Wed |
May 27 May 29 |
No Class (Memorial Day) JavaScript |
JavaScript |
- | - | Assignment 8 (due Jun 05) |
|
10 | Mon Wed |
Jun 03 Jun 05 |
JavaScript OOP Recap Exercises |
- | - | - | - | |
11 | Mon Wed |
Jun 10 Jun 12 |
Section 602 Final Exam (Jun 10 2:30pm-4:45pm) Section 601 Final Exam (Jun 12 8:30am-10:45am) |
- | - | - | - |
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)
- Assignment submission (see D2L)
- quiz (see D2L)
Slides use reveal.js:
- 'q' to exit slides
- 'z' to print slides (only works in Chrome)
- Other keycodes built in to reveal. Use '?' to list them. For example:
- space moves to the next slide
- cursor keys to navigate through slides
- up and down are useful!
- 'ESC' for slide overview and navigate quickly