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 |
The syllabus page shows a table-oriented view of the course schedule, and the basics of
course grading. You can add any other comments, notes, or thoughts you have about the course
structure, course policies or anything else.
To add some comments, click the "Edit" link at the top.
Course Summary: