index cabcc71..b5ecf20 100644 (file)
@@ -5,37 +5,104 @@ week in which they were introduced.

## Topics by content ##

-* [[Introduction to functional programming|topics/week1 kapulet intro]]
+*   [[What is computation?|topics/week3_what_is_computation]]
+
+*   Functional Programming
+
+    *   [[Introduction|topics/week1 kapulet intro]]
+    *   [["Rosetta Stone" page #1 for Kaupulet, Scheme, OCaml, Haskell|rosetta1]]
+    *   [[List Comprehensions|topics/week3 lists#comprehensions]]
+    *   [[Unit and its usefulness|topics/week3 unit]]
+    *   More tips on using Scheme
+    *   Types in OCaml and Haskell (will be posted soon)
+    *   Practical advice for working with OCaml and/or Haskell (will be posted soon)
+
+*   Order, "static versus dynamic"
+
+    *   [[Order in programming languages and natural language|topics/week1 order]]
+    *   [[Reduction Strategies and Normal Forms in the Lambda Calculus|topics/week3_evaluation_order]]
+    *   [[Unit and its usefulness|topics/week3 unit]]
+
+*   The Untyped Lambda Calculus
+
+    *   [[Introduction to the Lambda Calculus|topics/week2 lambda intro]]
+    *   Encoding data types in the Lambda Calculus
+        *   [[Booleans|topics/week2 encodings#booleans]]
+        *   [[Tuples|topics/week2 encodings#tuples]]
+        *   [[Lists|topics/week2 encodings#lists]], v1 (as right-folds)
+        *   [[Numbers|topics/week2 encodings#numbers]], v1 ("Church's encoding")
+        *   [[Arithmetic with Church numbers|topics/week3_church_arithmetic]]
+        *   [[How to get the `tail` of v1 lists?|topics/week3 lists#tails]]
+        *   [[Some other list encodings|topics/week3 lists#other-lists]]
+    *   [[Reduction Strategies and Normal Forms|topics/week3_evaluation_order]]
+    *   [[Fixed point combinators|topics/week4_fixed_point_combinators]]
+
+*   [[Combinatory Logic|topics/week3 combinatory logic]]
+
+*   Typed Lambda Calculi
+
+    *   [[Simply-typed lambda calculus|topics/week5 simply typed]] (will be updated)
+    *   [[System F|topics/week5 system F]] (will be updated)
+    *   Types in OCaml and Haskell (will be posted soon)

-* [[Order: static versus dynamic|topics/week1 order]]

## Topics by week ##

Week 1:

-* [[Order in programming languages and natural language|topics/week1 order]]
+*   [[Order in programming languages and natural language|topics/week1 order]]
This discussion considers conjunction in a language that recognized presupposition failure.
-* [[Introduction to functional programming|topics/week1 kapulet intro]]
+*   [[Introduction to functional programming|topics/week1 kapulet intro]]
Basics of functional programming: `let`, `case`, pattern matching, and
recursion.  Definitions of factorial.
-* [[Homework for week 1|exercises/assignment1]]

Week 2:

-* [[Introduction to the Lambda Calculus|topics/week2 lambda intro]]
-* [[Encoding Booleans, Tuples, Lists, and Numbers|topics/week2 encodings]];
-* [[Homework for week 2|exercises/assignment2]]
+*   [[Introduction to the Lambda Calculus|topics/week2 lambda intro]]
+*   [[Encoding Booleans, Tuples, Lists, and Numbers|topics/week2 encodings]]

Week 3:

-* More on Lists
-Introduces list comprehensions, shows how to encode `tail` in the Lambda Calculus
-* Combinatorial Logic
-* Homework for week 3
+*These notes were developed over the course of the week. It'd be a good idea to review them again now, to be sure you've read all the content.*
+
+*   [[Arithmetic with Church numbers|topics/week3_church_arithmetic]]
+*   [[More on Lists|topics/week3 lists]]
+Introduces list comprehensions, discusses how to get the `tail` of lists in the Lambda Calculus, and some new list encodings
+*   [[What is computation?|topics/week3_what_is_computation]]
+*   [[Reduction Strategies and Normal Forms|topics/week3_evaluation_order]] (posted on Monday 23 Feb)
+*   [[Unit and its usefulness|topics/week3 unit]]
+*   [[Combinatory Logic|topics/week3 combinatory logic]]
+
+Week 4:
+
+*   [[Fixed point combinators|topics/week4_fixed_point_combinators]]
+*   Towards types (in progress)
+*   [[Homework for week 4|exercises/assignment4]]
+
+Week 5:
+
+*Note*: Jim will be updating and expanding the lecture notes by Tuesday, but doesn't want to delay any longer letting you have access to the drafts we (in part) presented from in seminar. But do come back and re-read the pages when the expanded versions are posted.

+*   [[Simply-typed lambda calculus|topics/week5 simply typed]]
+*   [[System F|topics/week5 system F]]
+*   Types in OCaml and Haskell (will be posted soon)
+*   Practical advice for working with OCaml and/or Haskell (will be posted soon)
+*   [[Homework for weeks 5 and 6|exercises/assignment5]]