X-Git-Url: http://lambda.jimpryor.net/git/gitweb.cgi?p=lambda.git;a=blobdiff_plain;f=index.mdwn;h=1d090eb60ebb388cb0e638064f5018ee20ed933f;hp=c18172b34c1a869d5d3edd4ce2262bff88c1743a;hb=49e6889d3ceb77526298a84549df44871caaf7a0;hpb=3be23d511f494d473da5aabb67375e25073f7e2c diff --git a/index.mdwn b/index.mdwn index c18172b3..1d090eb6 100644 --- a/index.mdwn +++ b/index.mdwn @@ -2,55 +2,93 @@ or: **What Philosophers and Linguists Can Learn From Theoretical Computer Science But Didn't Know To Ask** -This course will be co-taught by [Chris Barker](http://homepages.nyu.edu/~cb125/) and [Jim Pryor](http://www.jimpryor.net/). Linguistics calls it "G61.3340-002" and Philosophy calls it "G83.2296-001." - - -## Announcements ## - +This course is co-taught by [Chris Barker](http://homepages.nyu.edu/~cb125/) and [Jim Pryor](http://www.jimpryor.net/). Linguistics calls it "G61.3340-002" and Philosophy calls it "G83.2296-001." The seminar meets on Mondays from 4-6, in the Linguistics building at 10 Washington Place, in room 104 (back of the first floor). +One student session will be held every Wednesday from 3-4 on the +fourth floor at 10 Washington Place. -One student session will be held every Wednesday from 3-4. The other will be arranged to fit the schedule of those who'd like to attend but can't make the Wednesday time. (We first proposed Tuesdays from 11-12, but this time turns out not to be so helpful.) If you're one of the students who wants to meet for Q&A at some other time in the week, let us know. +## Announcements ## -You should see the student sessions as opportunities to clear up lingering issues from material we've discussed, and help get a better footing for what we'll be doing the next week. It would be smart to make a serious start on that week's homework, for instance, before the session. +* This is the time of the semester when some people start slipping + behind with the homework. Don't. -There is now a [[lambda evaluator]] you can use in your browser (no need to install any software). -It can help you check whether your answer to some of the homework questions works correctly. +[[Older Announcements]] -There is now a [library](/lambda_library) of lambda-calculus arithmetical and list operations, some relatively advanced. +##[[Lambda Evaluator]]## - +There is also now a [library](/lambda_library) of lambda-calculus +arithmetical and list operations, some relatively advanced. ## Lecture Notes and Assignments ## (13 Sept) Lecture notes for [[Week1]]; [[Assignment1]]. -Topics: Applications; Basics of Lambda Calculus; Comparing Different Languages +> Topics: [[Applications]], including [[Damn]]; Basics of Lambda Calculus; Comparing Different Languages (20 Sept) Lecture notes for [[Week2]]; [[Assignment2]]. -Topics: Reduction and Convertibility; Combinators; Evaluation Strategies and Normalization; Decidability; Lists and Numbers +> Topics: Reduction and Convertibility; Combinators; Evaluation Strategies and Normalization; Decidability; [[Lists and Numbers]] -(27 Sept) Lecture notes for [[Week3]]; [[Assignment3]]. +(27 Sept) Lecture notes for [[Week3]]; [[Assignment3]]; +an evaluator with the definitions used for homework 3 +preloaded is available at [[assignment 3 evaluator]]. -Topics: Recursion with Fixed Point Combinators +> Topics: [[Evaluation Order]]; Recursion with Fixed Point Combinators -(4 Oct) Lecture notes for Week 4 +(4 Oct) Lecture notes for [[Week4]]; [[Assignment4]]. - +> Topics: More on Fixed Points; Sets; Aborting List Traversals; [[Implementing Trees]] + + +(18 Oct, 25 Oct) Lecture notes for [[Week5]] and [[Week6]]; [[Assignment5]]. + +> Topics: Types, Polymorphism, Unit and Bottom + +(1 Nov) Lecture notes for [[Week7]]; [[Assignment6]]. + +> Topics: Monads; [[Reader Monad for Variable Binding]]; [[Reader Monad for Intensionality]] + +(8 Nov) Lecture notes for [[Week8]]. + +> Topics: Reader Monad for Jacobson's Variable-Free Semantics + +(15 Nov) Lecture notes for [[Week9]]; [[Assignment7]]. Everyone auditing in the class is encouraged to do this assignment, or at least work through the substantial "hints". + +> Topics: Mutable Variables; Passing by Reference + +(22 Nov) Lecture notes for [[Week10]] + +> Topics: Calculator Improvements, including mutation + +(30 Nov) Lecture notes for [[Week11]]; [[Assignment8]]. + +> Topics: [[Tree and List Zippers]]; [[Coroutines and Aborts]]; [[From List Zippers to Continuations]]. + +(6 Dec) Lecture notes for [[Week12]] + +> Topics: [[List Monad as Continuation Monad]]; [[Manipulating Trees with Monads]]; ... + +(13 Dec) Lecture notes for Week13 [[Upcoming topics]] +[[Advanced Topics]] + +> Topics: Version 4 lists, Monads in Category Theory, Calculator Improvements + +##Scheme and OCaml## + +See [below](#installing) for how to get the programming languages running on your computer. + +* Links for help [[learning Scheme]] + +* Links for help [[learning OCaml]] + ##[[Offsite Reading]]## @@ -185,6 +223,7 @@ other. But these languages also have a lot in common, and if you're familiar with one of them, it's not difficult to move between it and the other. + [[How to get the programming languages running on your computer]] [[Family tree of functional programming languages]] @@ -196,15 +235,16 @@ It's not necessary to purchase these for the class. But they are good ways to ge * *An Introduction to Lambda Calculi for Computer Scientists*, by Chris Hankin, currently $17 on -[Amazon](http://www.amazon.com/Introduction-Lambda-Calculi-Computer-Scientists/dp/0954300653). +[Amazon](http://www.amazon.com/dp/0954300653). * (Another good book covering the same ground as the Hankin book, but more thoroughly, and in a more mathematical style, is *Lambda-Calculus and Combinators: -an Introduction*, by J. Roger Hindley and Jonathan P. Seldin. If you choose to read +an Introduction*, by J. Roger Hindley and Jonathan P. Seldin, currently $52 on [Amazon](http://www.amazon.com/dp/0521898854). If you choose to read both the Hankin book and this book, you'll notice the authors made some different terminological/notational choices. At first, this makes comprehension slightly slower, but in the long run it's helpful because it makes the arbitrariness of those choices more salient.) +* (Another good book, covering some of the same ground as the previous two, but also delving much deeper into typed lambda calculi, is *Types and Programming Languages*, by Benjamin Pierce, currently $61 on [Amazon](http://www.amazon.com/dp/0262162091). This book has many examples in OCaml.) * *The Little Schemer, Fourth Edition*, by Daniel P. Friedman and Matthias Felleisen, currently $23 on [Amazon](http://www.amazon.com/exec/obidos/ASIN/0262560992). @@ -233,5 +273,4 @@ All wikis are supposed to have a [[SandBox]], so this one does too. This wiki is powered by [[ikiwiki]]. -[[Test]]