[plt-scheme] Last year students...

From: Joshua Zucker (joshua.zucker at gmail.com)
Date: Fri Apr 21 14:01:18 EDT 2006

Maybe some of this conversation could be taken over to plt-edu, too.

Anyway, one personal anecdote:
I was asked to teach a semester of programming at my high school.

Having programmed a bit in college (Pascal, and a little LISP), I was
apparently the most qualified person we had handy.

I talked to lots of smart people I knew and got at least a dozen
different suggestions of what ought to be taught in a one-semester
course, ranging from assembly language to visual basic to stuff about
how hardware really works.  Finally, because I thought HtDP was so
much better than other intro texts, I settled on Scheme.

Before teaching that course, I did little if any recreational
programming (mathematica, every once in a while, and that's about it).

Now, you'll find me up near the top at http://recmath.org/contest ...
mostly just based on what I learned by teaching the HtDP course.  Most
other folks have highly tuned/optimized Java or Fortran or C code.  I
just have my own little Scheme bits, with some number theory libraries
from some of you Schemers out there.  I run it all interpreted, and it
still works out OK.

Amusingly (though perhaps not surprisingly, for those of you who know
HtDP well), this project was the first one I've done where I had to
learn anything about I/O in Scheme.  I wanted to make my primality
tester a little more efficient, so I precomputed all the primes up to
a billion or so, compressed them (one byte per 30 numbers: is 30n +
1,7,11,13,17,19,23,29 prime?), and wrote it to a file, so now I just
have to read it (takes a few seconds) instead of recomputing all that
(takes several minutes).  I also learned about bytes-* and the various
bit operations in order to store all that stuff in memory (30MB or
whatever; as a vector of true/false, which was my initial
implementation, faster to look up but too much memory and too long to
read/write from disk anwyay).

So I'm not doing any "real" programming, but one trip through the
first half of HtDP was enough to get me to take it up as a
recreational hobby (complementing my mathematical hobby), and also to
get me good enough at it to be competitive against people who have
been programmers for a living (
http://recmath.org/contest/standings.php ).

Now I'm starting to think I ought to be able to teach Java (just
because at the high school level so many people are obsessed about
AP), and wondering if there's some similar fun to be had out there.  I
get the feeling that if I like these recmath.org/contest things, I
would like TopCoder too ...

--Joshua Zucker

Posted on the users mailing list.