Course Syllabus

 
Week Date Topic Weekly materials Notes
1 3/29 Historical Overview of PLs

Book chapters: 1, 2

1. Turing's Machine
2. von Neumann's architecture
3. Forth


Intro
3/31

Turing Machines

Imperative

2 4/5 Basics of PLs: control flow, procedures, functions, expressions, statements, side effects, libraries

Book chapters: 4, 5, 6, 7

1. Dijkstra's GOTO Considered Harmful
2. McCabe's Complexity metric
3. Dijkstra's Notes
4. Global Variables considered harmful
5. Church's Lambda Calculus 
6. LISP (*)
7. Stratchey's lectures -- semantics
8. Backus' case for functional programming

Procedures & Functions
4/7

Lambda Calculus

Lambda in Python

lambda.py

3 4/12 Function Composition

Book chapters: all of part III

1. Dijkstra's Recursive Programming
2. The discoveries of continuations
3. Moggi's Monads
4. Wadler's The essence of functional programming (*)

 Function Composition

4/14

Monads

Function Objects

4 4/19

Objects and Object Interactions

OO Frameworks

Book chapters: all of part IV

1. Simula
2. Smalltalk (*)
3. Self
4. ADTs
5. Inversion of Control in Smalltalk
6. Fowler's Inversion of Control
7. The information bus

OOP

4/21

JavaScript

Frameworks

5 4/26

 

Reflection and Metaprogramming

Book chapters: all of part V

1. Reflection and Semantics in LISP (*)
2. Concepts and Experiments in Computational Reflection
3. Reflection in logic, functional and OO programming
4. Aspect-Oriented Programming
5. Aspects as latent topics
6. Conic
7. Fowler's Dependency Injection

Reflection
4/28

Plugins

6 5/3 Concurrency

Book chapters: all of part VIII

1. Actors (*) -- Chapter 3 only
2. Linda

3. MapReduce

Concurrency I
5/5 Concurrency II
7 5/10 Data-centric: relational model, spreadsheets, reactive, dataflow. Iterators and generators.

Book chapters: all of part VII

1. Codd's Relational Model for data banks (*)
2. A Brief History of Spreadsheets
3. Coroutines
4. CLU's "iterators"

SQL / Spreadsheets
5/12 Iterators, Generators, Coroutines
8 5/17 Array Programming

Book chapters: 3

1. Iverson's A Programming Language (APL)

Arrays

5/19

 

9 5/24

Neural Networks

Book chapters: all of part X

1. McCulloch and Pitts
2. Hebb's The Organization of Behavior
3. Rosenblatt's Perceptron
4. Backpropagation

Neural Nets
5/26
10 5/31 Neural Networks
Recap

 

6/2 Wrap up

 

Course Summary:

Date Details Due