Syllabus
Date | Topic and readings | |
---|---|---|
Functions | ||
Jan 09 |
Intro and JavaScript crash course
[ notes | intro slides | JavaScript slides | function code ] |
|
Jan 11 |
JavaScript crash course (cont)
[ JavaScript (cont) slides | obj code | nono code] |
|
Jan 16 | MLK- no class | |
Jan 18 |
Foundations and the lambda calculus
[ readings: 4.1.2, 4.2, optional additional material | slides] |
|
Jan 23 |
Lambda calculus (cont)
[ slides | notes on currying ] |
|
Jan 25 |
Lambda calculus (cont)
[ slides | notes on currying ] |
|
Jan 30 |
Scope, storage management, and function implementation
[ readings: chapter 7 | slides | great online scope-learning tool] |
|
Types | ||
Feb 01 |
Haskell crash course [ readings: new chapter 5 | slides | notes] |
|
Feb 06 | Haskell crash course (cont) [ code | notes] | |
Feb 08 | Haskell and introduction to types [ readings: new chapter 6 | slides] | |
Feb 13 |
Type polymorphism and type inference [ readings: new chapter 7 | slides] |
|
Feb 15 |
Type classes [ readings: new chapter 7 | slides | type-classes-1.hs | type-classes-2.hs ] |
|
Feb 20 | President's day - no class | |
Feb 22 |
Type classes (cont) [ using type classes | desugaring type classes ] | |
Feb 27 | Midterm exam | |
Objects and program organization | ||
Mar 01 |
Objects [ readings: chapters 10, 11 | optional reading: OOP history, Smalltalk history | slides ] |
|
Mar 06 |
Objects (cont) [ slides ] |
|
Mar 08 |
Vtables, subtyping and inheritance [ readings: chapters 11, 12 | slides ] |
|
Control flow and side-effects | ||
Mar 13 |
Control flow, exceptions, and continuations [ readings: sections 8.1-8.3, CPS in JavaScript | slides ] |
|
Mar 15 |
Continuations and monads [ readings: Tackling the Awkward Squad | continuation slides | IO monad slides ] |
|
Mar 22 | Final exam |
Please note that this syllabus is subject to change.