How you might implement the exercises

When you work on your exercises, you can leverage DrScheme to make it easier to find particular functions or bits of homework by using the definitions dropdown. I posted on it here:

Here is how I implement exercises. I say implement, because I am concerned here with a coding detail, *not* design recipes.
DrScheme has a nice feature in the top-left side of the window (roughly) called the “definitions dropdown”. Using this dropdown you can see all of the names you’ve got defined in the Interactions area.
So for example if you had entered (define x 10) in the Definitions are then you would see an entry in there that says “x”. You can leverage to make keeping track of your exercises easier. This is what I do, I keep all of my exercises in the same file as long as it makes sense to do so, and as part of that before every exercise I add something like this:
(define 2.3.2 true)
That tells me:
1. What my answer was for the exercise.
2. Whether or not it is finished.
That is how I keep all of my exercises in the same file and still have it make sense since each exercise creates any number of definitions!

This is an experiment

Originally posted here:

Most of us here are already programmers, or want to be. All of us are going to give up time to work through HTDP. It is a sacrifice. How do we know what will happen? Well, we don’t.
I think of this first group as being an experiment. We’re going to find out what works and what doesn’t, we’re going to figure out who might like something like this more than others, and most importantly we’re going to get a good sense of what one learns on this path.
What I can tell you is that HTDP has excellent reviews, an excellent track record in schools around the world, and most importantly excellent authors who are really dedicated to teaching. That last part
is particularly important. It was written by teachers, not programmers. They know how to teach; most of us don’t!
For me, that, combined both with my interest, and what I’ve seen so far in the book, is enough.
This isn’t a learn programming in 21 days scam, fluff book on the latest fad language, or the extended sermon of someone who makes his money by talking and not doing much else.
This is an experiment, for programmers, and, I think it is going to pay off pretty well.

Based on what I’ve seen so far, we are all learning a lot about: programming, communication, and culture. It is true, it is an experiment; the notion of good and bad are less important here, everything we are learning, painful or pleasant, is very valuable.

Working with Google Groups

Overall it has been a pleasant experience working with Google Groups.
Rather than set up a server, install the wiki, file share, and listserve myself, and host it on the Internet; I can set up a group there instead. It is pretty convenient. Additionally, their interface is pleasant and search works pretty well (no surprises on that one!).
One decision that I made is that anyone can join the group, there are no restrictions. Additionally, there is no moderation on posts. I hope to encourage a certain atmosphere and culture. Thus far it has worked well.

Opportunities while studying HTDP

While studying HTDP, there are a few opportunities that occur during the process:
Practice Blogging:

I am assuming two things:
1. We are all going to learn things.
2. It is going to be fun.
That alone is worth blogging about.
If you haven’t got a blog, this is an excuse to start one.
The tagging facilities that most blog engines provide today allow you to ‘tag’ your posts. I recommend you tag them with ‘Study-HTDP’, which is more specific than just ‘HTDP’ or ‘Programming’ alone.
My goal is twofold:
1. For you to capture your thoughts and ideas, and practice writing.
2. Expose said thoughts and ideas to other folks who may be interested in them.

Study Revision Control:

If you aren’t already using a revision control system, now is the perfect time to do so.
You are going to be writing a lot of code that you most definitely will want to tag and probably eventually branch.
Subversion is a easy, powerful place to start.
Everyone should have a SVN repository available to them for storing their work.

What will we do, and when will we do it?

Originally posted here:

What we will do is to read and complete the problems in HTDP.
When we’ve got questions (or thoughts or ideas) about the content (any content, not necessarily limited to HTDP, anything CS/HTDP related is fair game), we should send them to the mailing list.
I will respond to, and post, questions every morning and every evening around 7:00am and 7:00pm or so, my timezone is:
Central Standard Time (CST) = GMT-6
Central Daylight Time (CDT) = GMT-5
Since we’ve got a geographically distributed group, many of us will be on virtually opposite schedules.
I’m thinking that every one or two weeks, we should have a chat on Skype just to touch base, identify issues and opportunities for improvement, and generally do what we can’t do well over email (not sure what that is yet, but lets find out).
Another question worth answering here is “How long will it take to finish the book?”.
I don’t know the answer to that. I interest of finding the answer, I’ve decided that we’ll timebox the first class to 4 months. There are 8 sections (with various intermezzos), which gives 2 weeks to every
section.
This is an aggressive schedule. While I expect some sections to be easier than others, I am banking on two things:
1. We’ve got a group of highly motivated people. Since most of us are doing this on nights and weekends, we *must* be interested. Besides, we don’t want this to go on forever. Without a goal, we’ll eventually lose momentum.
2. We can, and will, revise our estimate as we go along. The goal is to learn, not to meet a deadline.

We’ve made a couple of modifications since then:

  1. There are two groups. Group 0 is sticking with the very aggressive schedule.
  2. We added the intermezzos into the schedule, 1 week for each.

Group zero is averaging around 10 hours per week to maintain the current goal of one section every two weeks; the second week ending this Sunday (I’m tracking all of my study time in hopes of providing a detailed account of where I spent my time).