tweak explanation
[lambda.git] / content.mdwn
index 6b4c55f..b5ecf20 100644 (file)
@@ -5,46 +5,104 @@ week in which they were introduced.
 
 ## Topics by content ##
 
-* [[Basics of functional programming|topics/week1]]
+*   [[What is computation?|topics/week3_what_is_computation]]
+
+*   Functional Programming
+
+    *   [[Introduction|topics/week1 kapulet intro]]
+    *   [[Week 1 Advanced notes|topics/week1 kapulet advanced]]
+    *   [["Rosetta Stone" page #1 for Kaupulet, Scheme, OCaml, Haskell|rosetta1]]
+    *   Offsite links for help on [[learning Scheme]], [[OCaml|learning OCaml]], and [[Haskell|learning Haskell]]
+    *   [[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]]
+    *   [[Advanced notes on the Lambda Calculus|topics/week2 lambda advanced]]
+    *   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]]
+    *   [[More about fixed point combinators|topics/week4_more_about_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: 
+Week 1:
 
-* [[Order in programming languages and natural language|topics/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]]
+*   [[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]]
-* [[Advanced notes|week1 advanced notes]] 
-
-*More coming, please wait...*
-
-<!--
-Once we get up and running, the central focii of the course will be
-**continuations**, **types**, and **monads**. One of the on-going themes will
-concern evaluation order and issues about how computations (inferences,
-derivations) unfold in (for instance) time.  The key analytic technique is to
-form a static, order-independent model of a dynamic process. We'll be
-discussing this in much more detail as the course proceeds.
-
-The logical systems we'll be looking at include:
-
-*      the "pure"/untyped lambda calculus
-*      combinatorial logic
-*      the simply-typed lambda calculus
-*      polymorphic types with System F
-*      some discussion of dependent types
-*      if time permits, "indeterministic" or "preemptively parallel" computation and linear logic
-
-
-Other keywords:
-       recursion using the Y-combinator
-       evaluation-order stratgies
-       normalizing properties
-       the Curry-Howard isomorphism(s)
-       monads in category theory and computation
--->
+*   [[Advanced notes on functional programming|topics/week1 kapulet advanced]]
+*   [[Homework for week 1|exercises/assignment1]] ([[Answers|exercises/assignment1_answers]])
+
+Week 2:
+
+*   [[Introduction to the Lambda Calculus|topics/week2 lambda intro]]
+*   [[Advanced notes on the Lambda Calculus|topics/week2 lambda advanced]]
+*   [[Encoding Booleans, Tuples, Lists, and Numbers|topics/week2 encodings]]
+*   [[Homework for week 2|exercises/assignment2]] ([[Answers|exercises/assignment2_answers]])
+
+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]]
+*   [[Homework for week 3|exercises/assignment3]] ([[Answers|exercises/assignment3_answers]])
+
+Week 4:
+
+*   [[Fixed point combinators|topics/week4_fixed_point_combinators]]
+*   [[More about fixed point combinators|topics/week4_more_about_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]]
+
+Outside readings for week 6:
+
+
+*   [[footnote about "Plexy"|readings/kaplan-plexy.pdf]] from Kaplan's *Demonstratives*
+*   (Recommended) [[King's discussion of Schiffer|readings/king-on-schiffer.pdf]] in Chapter 4 of *The Nature and Structure of Content* (2007)
+*   Michael Rieppel, "[[Being Something: Properties and Predicative Quantification|readings/rieppel-beingsthg.pdf]]"
+*   (Recommended) [[King's discussion of clausal complements and proposition-designators|readings/king-on-logicism.pdf]] from Chapter 5 of *The Nature and Structure of Content* (2007) <!-- reviews and elaborates his paper "[Designating propositions](http://philpapers.org/rec/KINDP)" -->