X-Git-Url: http://lambda.jimpryor.net/git/gitweb.cgi?p=lambda.git;a=blobdiff_plain;f=index.mdwn;h=f37eaeb7ef4727fae5110db2caae6cf18c36bec9;hp=26ae09cf756fad2bd4b8a16e843f82eb315ca0b3;hb=e33cbd6c0daaa5186b1326ba339a6d22fda6a476;hpb=dc9298c6718ec9bc63550ec6bc6b5a187f235e50 diff --git a/index.mdwn b/index.mdwn index 26ae09cf..f37eaeb7 100644 --- a/index.mdwn +++ b/index.mdwn @@ -2,101 +2,17 @@ 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 ## - -* The seminar meets on Mondays from 4-6, in +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" and Philosophy calls it "G83.2296" +The seminar meets in spring 2015 on Thursdays from 4-7, 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. 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. - - 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. - -* 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. - - There is also now a [library](/lambda_library) of lambda-calculus -arithmetical and list operations, some relatively advanced. - - An evaluator with the definitions used for homework 3 -preloaded is available at [[assignment 3 evaluator]]. - -* Henceforth, unless we say otherwise, every homework will be "due" by -Sunday morning after the Monday seminar in which we refer to it. -(Usually we'll post the assignment shortly before the seminar, but don't -rely on this.) However, for every assignment there will be a "grace -period" of one further week for you to continue working on it if you -have trouble and aren't able to complete the assignment to your -satisfaction by the due date. You shouldn't hesitate to talk to us---or -each other!---about the assignments when you do have trouble. We don't -mind so much if you come across answers to the assignment when browsing -the web, or the Little Schemer book, or anywhere. So long as you can -reason yourself through the solutions and experience for yourself the -insights they embody. - - We reserve the privilege to ruthlessly require you to -explain your solutions in conversations at any point, in section or in -class. - - You should always *aim* to complete the assignments by the "due" date, -as this will fit best with the progress of the seminar. - - The assignments will tend to be quite challenging. Again, you should by -all means talk amongst yourselves, and to us, about strategies and -questions that come up when working through them. - - We will not always be able to predict accurately which problems are -easy and which are hard. If we misjudge, and choose a problem that is -too hard for you to complete to your own satisfaction, it is still -very much worthwhile (and very much appreciated) if you would explain -what is difficult, what you tried, why what you tried didn't work, and -what you think you need in order to solve the problem. - - -## Lecture Notes and Assignments ## - -(13 Sept) Lecture notes for [[Week1]]; [[Assignment1]]. - -> 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]] - -(27 Sept) Lecture notes for [[Week3]]; [[Assignment3]]; -an evaluator with the definitions used for homework 3 -preloaded is available at [[assignment 3 evaluator]]. - -> Topics: [[Evaluation Order]]; Recursion with Fixed Point Combinators - -(4 Oct) Lecture notes for [[Week4]]; [[Assignment4]]. - -> Topics: More on Fixed Points; Sets; Aborting List Traversals; [[Implementing Trees]] - - -(18 Oct) Lecture notes for [[Week5]] (in progress). - -> Topics: Types, Polymorphism - -[[Upcoming topics]] - -[Advanced Lambda Calculus Topics](/advanced_lambda) - - -##[[Offsite Reading]]## + -There's lots of links here already to tutorials and encyclopedia entries about many of the notions we'll be dealing with. +## Announcements ## ## Course Overview ## @@ -106,6 +22,7 @@ theoretical computer science and show how they can provide insight into established philosophical and linguistic problems. This is not a seminar about any particular technology or software. + Rather, it's about a variety of conceptual/logical ideas that have been developed in computer science and that linguists and philosophers ought to know, or may already be unknowingly trying to reinvent. @@ -136,11 +53,14 @@ especially in the fields of functional programming and type theory. Of necessity, this course will lay a lot of logical groundwork. But throughout we'll be aiming to mix that groundwork with real cases -in our home subjects where these tools play central roles. Our aim for the +in our home subjects where these tools play central roles. + +Our aim for the course is to enable you to make these tools your own; to have enough understanding of them to recognize them in use, use them yourself at least in simple ways, and to be able to read more about them when appropriate. + Faculty and students from outside of NYU Linguistics and Philosophy are welcome to audit, to the extent that this coheres well with the needs of our local @@ -226,10 +146,20 @@ 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. + ## Recommended Books ## @@ -237,15 +167,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). @@ -267,7 +198,6 @@ superficial syntactic differences between these languages. [Here's a translation manual between them](http://www.mpi-sws.org/~rossberg/sml-vs-ocaml.html). - ---- All wikis are supposed to have a [[SandBox]], so this one does too.