
CS by Mail13 April 2015 Hypothetically, how would you teach Computer Science or programming to someone who has no access to a computer, and with whom your only communication is books and postal mail? Think about it for a minute. I'll wait. This morning I got a letter from Ray Reyes at Kern Valley State Prison. His story is that he was incarcerated in 1997 at the age of 18 (I've no idea what for, nor do I care) and is expecting to be released in 46 years. He writes well, but is computerilliterate since there are none in his prison. He'd read an article in Mother Jones that paraphrased my CS in VN blog post. He wrote to me because he wants to learn programming. For a moment, assume that he has the intelligence, determination, and aptitude to be a programmer. How would you go about teaching him within his current constraints? I've started by sending him two books, CS Unplugged: Computer Science without a computer and Nine Algorithms That Changed the Future: The Ingenious Ideas That Drive Today's Computers. I've also posed a problem for him to ponder: "You have five fingers on your hand (usually  a few people have more, many have fewer). Each finger can be either extended, or curled up. So a fist would be all fingers curled up, a highfive would be all fingers extended, and many other combinations exist (including the obscene middlefinger gesture, and probably a whole lot of gang signs). What is the total number of possible combinations that can be produced using five fingers? Can you do them all? What is the total number of possible combinations that can be produced using ten fingers? Can you figure out a pattern so that you could calculate how many possible combinations there would be if you had 16 fingers?" To be perfectly honest, I don't expect much from this. But in the offchance that he groks what I've given him, he has a chance of becoming the first programmer since the 70s to learn by writing code, mailing it to a data centre (me at Google), and receiving a printout two weeks later. It's up to him now. 