Subject: Re: Guide to Lisp, v1.20
From: Erik Naggum <erik@naggum.no>
Date: 28 Aug 2002 14:45:58 +0000
Newsgroups: comp.lang.lisp
Message-ID: <3239534758782504@naggum.no>

* Knut Arild Erstad
| Also, you might be interested in the book "Structure and Interpretation of
| Computer Programs" by Abelson and Sussman, which is available online at
| http://mitpress.mit.edu/sicp/full-text/book/book.html.  IMHO it is one of
| the best books on programming available.  It uses Scheme, but even people
| who don't like or don't use Scheme will benefit greatly from it.

  I have just recently completed the first pass of two other MIT Press books.

Gerald Jay Sussman and Jack Wisdom with Meinhard E. Mayer: Structure and
  Interpretation of Classical Mechanics, which uses Scheme to do exploratory
  mathematics, and this is really exciting.  Never quite got the hang of fluid
  mechanics (I wrote much of the support software for a girlfriend who wrote
  her thesis on turbulence in narrow tubes, but had no time to delve into the
  reasoning behind the exploratory computations), but this enjoyable book lets
  me toy with the world of classical mechanics in a way that is reminiscent of
  the old text-based virtual reality-games.

Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, Shriram Krishnamurthi:
  How to Design Programs; An Introductino to Programming and Computing, which
  also uses Scheme as the teaching vehicle.  I found it much a better book
  than SICP 2, which I have yet to make a full pass through even thought I
  bought it long ago with that express intention.  Amazon.com's look inside
  feature has ignored the preface, which I find unwise, because it sets the
  stage excellently.  I take the liberty under the fair use doctrine to quote
  the first few paragraphs from it.

                         It goes against the grain of modern education to teach
                       children to program.  What fun is there in making plans,
                          acquiring discipline in organizing thoughts, devoting
                          attention to detail and learning to be self-critical?

                                        -- Alan Perlis, Epigrams in Programming                       

Many professions require some form of computer programming. Accountants program
spreadsheets and word processors; photographers program photo editors; musicians
program synthesizers; and professional programmers instruct plain computers.
Programming has become a required skill.

Yet programming is more than just a vocational skill.  Indeed, good programming
is a fun activity, a creative outlet, and a way to express abstract ideas in a
tangible form.  And designing programs teaches a variety of skills that are
important in all kinds of professions: critical reading, analytical thinking,
creative synthesis, and attention to detail.

We therefore believe that the study of program design deserves the same central
role in general education as mathematics and English. Or, put more succinctly,

                *everyone should learn how to design programs*.

  Of course, I'm an old fart and I ground my baby teeth on The Little Lisper
  back in 1978 or so and consider Scheme to have great educational value, but
  also serious dangers and drawbacks when the student does not realize that one
  cannot hope to keep the baby teeth just because it is painful to replace them
  with the real killer teeth.  (roar) => t.

-- 
Erik Naggum, Oslo, Norway

Act from reason, and failure makes you rethink and study harder.
Act from faith, and failure makes you blame someone and push harder.