Computer Science by Mail
neil.fraser.name
neil.fraser.name
After too many attempts it would lock us out and we'd have to wait to try again. One day when our teacher was trying to start class he found that he had been locked out. We all started laughing and he knew why.
The next day there was a sign on the door telling us that the class had been moved to a new room. When we arrived we found that the classroom had no computers. The work was the same. The lessons progressed. But we wrote all that Pascal on paper. We only had one chance to turn something in and I remember going home and trying to remember all the code to type into my home computer to see if my program would compile.
Anyway, I would suggest someone sending this guy a copy of The Little Schemer. Anyone can read that book and gain great confidence in a short amount of time while starting to think the way a programmer ought to think.
I'd pay a few bucks a week for something like that.
Physical reminder vs something that is too easily filed away or deleted.
Remember that a lot of the theory of computer science was invented before there were any computers as we known them today. George Boole, Ada Lovelace, Charles Babbage, and probably lots of others I am forgetting never saw a computer in their lifetimes.
On a computer a bubble sort of a large list might take a few milliseconds. Do it with strips of paper and you're immediately thinking there's obviously a better way.
Or by folk dancing![0]
...and submitting a program for "compilation by email" is very old school, like our punch card days, only a bit slower.
This leaves the student with a solid understanding of algorithms and data structures, and in the follow-on courses they can worry about stricter syntax (language and APIs).
I then typed it into my Commodore 64, at home at the end of the summer.
It didn't compile at first (of course) but it was mind-expanding to have so much time to think about the algorithm.
I had totally forgotten this entire incident until this moment.
The highlight, and in my opinion success, of this book is the fact that no "real" programming language is used to notate any examples. Rather, Dr. Shackelford, along with other TA's of recent past, devised a pseudo-language which encapsulates many elements of previous educational languages (such as Pascal); naturally, this language is not vulnerable to obsolescence. Also, since this language can not be practically compiled, the reader is forced to trace through examples on his or her own, building his or her skills in mentally evaluating algorithms.
http://www.amazon.com/Introduction-Computing-Algorithms-Russ...
Maybe a crazy idea, but Dijkstra's A Discipline of Programming was meant for coding on paper. Hehner's A Practical Theory of Programming is kind of similar and more recent -- I haven't read it.
To be fair, I did have a Commodore64 to put my work into -- but perhaps the subject of this story could get one too -- the Internet and illicit hacking/communication are probably the biggest worries for a "no computer" environment.
[0] http://www.amazon.com/Machine-Language-Commodore-Other-Compu...
Since the computer didn't work, I spent my summer of '94 writing BASIC code that I'd never run.
Good times.
Had I realized the PC lab next door had a Turing machine emulator, I would have saved some time but missed out on some fun. Wish I still had my emulator software around; this was many years pre-Github.
Quick question would the solution be 10 factorial?
My advice is to learn something like HTML/CSS.
It is really easy to read and understand. Send him a "before and after"
Sheet 1: some b, i, title, font, etc tags marked up in HTML with data
Sheet 2: the "after" sheet of what it looks like rendered
Each week the remote student will be tasked with writing out a basic website. He / she sends in his work to the teacher that inputs the data (bonus points for OCR.)
The teacher sends back the rendering along with the next lesson plan.
From there you can go into CSS. Javascript would be a little harder but think how advanced you can get at HTML/CSS in a few years?
Being that I already had knowledge, I took time to hone in on more theoretical skills such as UX and read a ton of books related to user experience, business, etc.
http://blog.acthompson.net/2013/03/html-and-computer-science...
http://supercomputerscience.blogspot.com/2012/07/html-is-not...
I've actually had the privilege of walking a recently released inmate with 0 computer skills through the process of writing their first lines of html. The excitement he experienced seeing "hello world" transform just by changing it to "<h1>hello world</h1>" was incredible. I think it boils down to realizing the power of - to put this in the simplest terms possible: "typing some jargon and making things happen."
Very interested to see if anything comes of this.
I was used to programming in BASIC and a few other languages by then, so it was far easier for me. But I still remember the first time I typed in my first C++ program in Turbo C++ and got it to compile.
The program could be worked out by physically moving around paper strips with instructions written/erased/scratched-out/rewritten etc.