-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]]##

+## Announcements ##

-There's lots of links here already to tutorials and encyclopedia entries about many of the notions we'll be dealing with.

+This wiki will be undergoing lots of changes throughout the semester, and particularly in these first few days as we get it set up, migrate over some of the content from the previous time

+we taught this course, and iron out various technical wrinkles. Please be patient.

+If you've eager to learn, though, you don't have to wait on us to be ready to serve you. You can go look at the [archived first version](http://lambda1.jimpryor.net) of this course. Just keep in mind that

+the text and links there haven't been updated.

## Course Overview ##

@@ -105,6+28,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.

@@ -135,11+59,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.

+<!--

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,

+Here's a [survey conducted at Microsoft](http://research.microsoft.com/apps/pubs/default.aspx?id=141506) asking programmers what they understand "functional programming" to be. Don't take their responses to be authoritative... this is a just a "man in the street" (seat?) poll.

+

+Read more about the [uptake of Haskell](http://steve-yegge.blogspot.com/2010/12/haskell-researchers-announce-discovery.html) among programmers in the street.

+-->

## Recommended Books ##

-It's not necessary to purchase these for the class. But they are good ways to get a more thorough and solid understanding of some of the more basic conceptual tools we'll be using.

+It's not *mandatory* to purchase these for the class. But they are good ways to get a more thorough and solid understanding of some of the more basic conceptual tools we'll be using. We especially recommend the first three of them.

-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.)

+on [Amazon](http://www.amazon.com/Seasoned-Schemer-Daniel-P-Friedman/dp/026256100X). This is a sequel to The Little Schemer, and it focuses on mutation and continuations in Scheme. We will be covering those topics in the second half of the course.

on [Amazon](http://www.amazon.com/Little-MLer-Matthias-Felleisen/dp/026256114X).

-This covers some of the same introductory ground as The Little Schemer, but

-this time in ML. It uses another dialect of ML (called SML), instead of OCaml, but there are only

-superficial syntactic differences between these languages. [Here's a translation

-manual between them](http://www.mpi-sws.org/~rossberg/sml-vs-ocaml.html).

+This covers much of the same introductory ground as The Little Schemer, but

+this time in a dialect of ML. It doesn't use OCaml, the dialect we'll be working with, but instead another dialect of ML called SML. The syntactic differences between these languages is slight.

+([Here's a translation manual between them](http://www.mpi-sws.org/~rossberg/sml-vs-ocaml.html).)

+Still, that does add an extra layer of interpretation, and you might as well just use The Little Schemer instead. Those of you who are already more comfortable with OCaml (or with Haskell) than with Scheme might consider working through this book instead of The Little Schemer; for the rest of you, or those of you who *want* practice with Scheme, go with The Little Schemer.

+

+* 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:

+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 Hankin, and the Hindley &amp; Seldin, but delving deeper into typed lambda calculi, is *Types and Programming Languages*, by Benjamin Pierce, currently $77 hardback / $68 kindle on [Amazon](http://www.amazon.com/dp/0262162091). This book has many examples in OCaml.