Schedule

Week Days Date Lecture Topic / Slides Worksheets Reading (CPL) Reading (PS) Assignment
1 Thu
Tue
Sep 07
Sep 12
Overview
C: Statements versus Expressions
C: Strict versus Nonstrict
C: Undefined Behavior
Scheme
Java and C
Scheme
simple.scm
scheme.com
repl.it
Chs 1,3 Chs 1-4 Assignment 1
(due Sep 19)
2 Thu
Tue
Sep 14
Sep 19
Safety
Dynamic/Static Types
Scala Pragmatics
Scala Introduction
Scala
Chs 5,6 Chs 5,7 Assignment 2
(due Sep 26)
3 Thu
Tue
Sep 21
Sep 26
Functions on Lists
Methods and Functions
Folds
Option Types
Functional Programming
- Chs 8,9,15,16,23 Assignment 3
(due Oct 03)
4 Thu
Tue
Sep 28
Oct 03
Scheme Loops
Tail Recursion
Scala Classes
- - Chs 17,18 Assignment 4
(due Oct 10)
5 Thu
Tue
Oct 05
Oct 10
Algebraic Data Types
Scope and Lifetime
Algebraic Data Types
Chs 7 Chs 6, 10, 15 -
6 Thu
Tue
Oct 12
Oct 17
Midterm Exam (Oct 12)
L-Values
Argument Passing
Runtime Storage
Argument Passing
Chs 8 Chs 21,24,26 Assignment 5
(due Oct 24)
7 Thu
Tue
Oct 19
Oct 24
Nested Classes
Closures
Closures
Chs 9 Chs 12,20,29 Assignment 6
(due Oct 31)
8 Thu
Tue
Oct 26
Oct 31
Dynamic Dispatch and Inheritance
Parametric Polymorphism
Subtyping
OOP
Subtyping
Chs 10-13 Chs 11,19 Assignment 7
(due Nov 07)
9 Thu
Tue
Nov 02
Nov 07
JavaScript
JavaScript OOP
JavaScript
- - Assignment 8
(due Nov 14)
10 Thu
Tue
Nov 09
Nov 14
C++ and Vtables
Recap Exercises
- - - -
11 Thu
Tue
Nov 16
Nov 21

Final Exam (Nov 21)
- - - -


Weekly checklist:

Slides use reveal.js: