Date |
Topic and Materials |
01/26 |
Introduction (slides)
Ruby 1 (slides)
Code: zip |
01/31 |
Ruby 1 cont. (slides) Code:
zip |
02/02 |
Ruby 2 (slides) Code:
zip |
02/07 |
Ruby Regex (slides)
Code: zip |
02/09 |
OCaml Introduction (slides)
Functions (slides)
Working with OCaml (slides)
Lists (slides)
Code: zip |
02/14 |
Lists and polymorphic types (slides)
(video) |
02/16 |
Lets, Tuples, Records (slides)
Higher order functions (slides) |
02/21 |
Data types (slides) |
02/23 |
Closures (slides)
Imperative Programming (slides) |
02/28 |
Operational Semantics (slides) (code)
|
03/02 |
Midterm 1 |
03/07 |
Regexps and Finite Automata (slides)
|
03/09 |
DFA and NFA (slides)
|
03/14 |
CFG (slides)
|
03/16 |
Parsing (slides)
Code: zip |
03/21
03/23 |
Spring Break (slides)
|
03/28 |
Objects and FP (slides)
Tail Recursion (slides)
Code: zip |
03/30 |
Lambda Calculus (slides)
|
04/04
|
Lambda Calculus Encodings (slides)
Code (Hicks, zip)
Code (Mamat, github)
|
04/06
|
Prolog Basics (slides,
updated on 04/11) Code (github)
|
04/11
|
Prolog Lists (slides)
Code (zip)
|
04/13
|
Midterm 2
|
04/18
|
Prolog Advanced (slides)
Code (zip)
|
04/20
|
Modules, Objects, and ADTs (module/ADT
slides)
(object/ADT slides)
Code (zip)
|
04/25
|
Types (slides),
Memory Management (slides)
|
04/27
|
Software Security (slides) |
05/02
|
Web Security (slides) |
05/04
|
Secure Design (slides) |
05/09
|
History (slides) |