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.
The goals of this project are
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.
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.
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:
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.)
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.
Philip T. Ansteth