Taos Gnu/Linux User Group

Summer Study Project

The GNU/Linux Special Interest Group is studying Scheme programming this summer. I, Philip Ansteth, am the organizer.

As of July 7, 2003, we're beginning our study of "The Structure and Interpretation of Computer Programs." This book is reputed to be a classic. It is online at http://mitpress.mit.edu/sicp/full-text/book/book.html.

Why Scheme?

As you may know, Scheme is a dialect of Lisp. Guile is the Gnu project's implementation of Scheme.

The goals of this project are

Scheme has relatively simple syntax, so there are not a lot of rules to remember. Supposedly, it can be learned in an afternoon. A LONG afternoon, in my opinion--but it probably is true that is as accessible as any language to beginning programmers. At the same time, there are no limitations on Scheme. To paraphrase somebody or other, "Give somebody FORTRAN and he has FORTRAN. Give somebody Scheme and he has every language."

Why that particular book?

We needed a book that would be accessible to a motived beginner, but still would challenge the more experienced people in the group. "The Structure and Interpretation of Computer Programs"--SICP--starts with very easy Scheme expressions. For example, you type "(+ 2.7 10)" and the system types back "12.7". Just like a calculator. But things start getting philosophical and complicated rather fast.

It would be difficult to work on this book by yourself, I think. That's another reason it is suitable for group study.

Study project benefits

By the end of the summer, you will have learned a lot about typical Scheme techniques, such as recursion and "functional" programming. Additionally, depending on how far you get, you will know a lot about the advanced programming techniques explained in SICP. These include concurrent processes, logic programming, machine simulation, compiler design, etc.

This is a tough book even though it is used as a freshman computer science textbook. That's why we've organized a group study project. When you run into problems, you can get help from the group.

Finally, it should be fun. In my opinion, Scheme is cool. It may not be quite as hip as some other languages (say Python or Ruby), but it seems to have the potential of going beyond them. We'll find out.

No regular meetings

We won't have meetings (other than the monthly Taos Area Computing Professionals gathering--see below).

The idea is to communicate via email. We have an email list at taos-glug@freelists.org. It appears to be back in service after an lightning stike around July 4. If it doesn't work, you can send things to pansteth@yahoo.com and I'll forward them to the people who have accounts there. I'll use "blind carbon copy" for everyone in order to help people stay off spam lists.

But prefer the taos-glug@freelists.org if it seems to be working.

Either way, you should post your questions, difficulties, and successes. You can get help if you run into problems.

Here are the instructions for getting an account on freelists.org:

Prerequisites

None. Beginning programmers, however, probably will need to ask for help and probably will have to do extra work.

All materials are available online.

You will need a Scheme interpreter, such as Guile (if you use Linux) or PLT (if you use Windows). There are many, depending on what platform you use and what's easiest to install. Most all should be adequate for our purposes. See http://www.schemers.org/Documents/FAQ/#implementations for a long list. There are also several good online tutorials.

You also need an editor that will find matching parentheses automatically. Emacs and vi both have this feature, and there are versions of both of them for several platforms. (If your favorite editor doesn't have a parenthesis matching feature, you probably should consider learning something more powerful, not only for Scheme but for other purposes as well.)

Schedule

A prior segment of this study project worked on the Gnu Guile tutorial, which showed how to do basic graphics with Scheme. See http://www.gnu.org/software/guile/docs/guile-tut/tutorial.html

But the current segment of the project does not depend on that. We're starting anew.

For the week July 7-14, I'm suggesting everybody try to get through Section 1.1.7, "Example: Square Roots by Newton's Method." This is arbitrary. Let's see how things go.

About our group

The Taos Gnu/Linux User Group is about "free" and "open source" software, of which GNU programs and the Linux "kernel" are the most prominent examples. Beginners are welcome, as are Windows and Mac users. The group got started as a Special Interest Group (SIG) of Taos Area Computing Professionals. Previously, we had a group study project for the Linux+ certification exam.

Philip T. Ansteth

Valid HTML 3.2!