X-Git-Url: http://lambda.jimpryor.net/git/gitweb.cgi?p=lambda.git;a=blobdiff_plain;f=index.mdwn;h=1aefebfd887176bb7908ea922d3050ed405606f9;hp=74aaddf96e792d606cfb48fcac3f65926b386212;hb=8f5ac0c5b7e25c726f3afb65b1fc413af8a4fa52;hpb=d84080ee53c691870c5a8cf462e08bcc5b888104 diff --git a/index.mdwn b/index.mdwn index 74aaddf9..1aefebfd 100644 --- a/index.mdwn +++ b/index.mdwn @@ -20,7 +20,20 @@ All students are invited to help us schedule, and then participate in, a regular [[Assignment1]] -## Overview ## + +##[[Schedule of Topics]]## + +[[Using the programming languages]] + +##[[Lecture Notes]]## + +##[[Offsite Reading]]## + +There's lots of links here already to tutorials and encyclopedia entries about many of the notions we'll be dealing with. + + + +## Course Overview ## The goal of this seminar is to introduce concepts and techniques from theoretical computer science and show how they can provide insight @@ -122,7 +135,7 @@ and Caml, which are prominent *functional programming languages*. We'll explain what that means during the course. * **Scheme** is one of two major dialects of *Lisp*, which is a large family -of programming languages. The other dialect is called "Common Lisp." Scheme +of programming languages. Scheme is the more clean and minimalistic dialect, and is what's mostly used in academic circles. Scheme itself has umpteen different "implementations", which share most of @@ -135,8 +148,7 @@ another Scheme implementation, though, there's no compelling reason to switch.) Racket stands to Scheme in something like the relation Firefox stands to HTML. * **Caml** is one of two major dialects of *ML*, which is another large -family of programming languages. The other dialect is called "SML" and has -several implementations. But Caml has only one active implementation, +family of programming languages. Caml has only one active implementation, OCaml, developed by the INRIA academic group in France. * Those of you with some programming background may have encountered a third @@ -150,12 +162,13 @@ other. [[How to get the programming languages running on your computer]] -[[Using the programming languages]] - [[Family tree of functional programming languages]] + ## 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. + * *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). @@ -183,17 +196,10 @@ on [Amazon](http://www.amazon.com/Seasoned-Schemer-Daniel-P-Friedman/dp/02625610 * *The Little MLer*, by Matthias Felleisen and Daniel P. Friedman, currently $27 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. The dialect of ML used is SML, not OCaml, but there are only +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). -##[[Schedule of Topics]]## - -##[[Lecture Notes]]## - -##[[Offsite Reading]]## - -There's lots of links here already to tutorials and encyclopedia entries about many of the notions we'll be dealing with. ----