I have been thinking about teaching some beginner programming to some high-school age kids, for a while now. My main objective is to inculcate some interest in the subject in these kids, and also to hopefully teach them how computers actually work. I am interested to do this as a social contribution (i.e. gratis) and was thinking of starting a class at my temple. However, the obvious problem is that they do not have computers there.
I know that Computer Science can always be taught without computers. In fact, that is the method that I would prescribe for most CS university courses. Teaching CS without using computers will ensure that the students actually learn CS and not how to become computer programmers. However, going down the theoretical CS path would be very boring to a bunch of high-school/pre-teen kids.
So, I thought that I would ask some experts on ideas on how to proceed in teaching programming, without any computers.
I got many replies and some of them have proven to be very interesting. Most would rely on group activities and paper/pen approaches. This should have occurred to me ages ago. Turing could prescribe a working computer by using nothing but a paper/pen. Some of these ideas took that a step further and actually suggested I take a Knuth approach and design my own simple computer and programming language.
I think that is probably a good way to start.
I will design a very basic theoretical computer – with about 8 instructions – and teach the kids the basics of programming by performing small group activities on it. As a start, I will teach them to count in binary and explain the basic workings of a computer – memory, processor, input/output. For simple activities, I may get them to write simple programmes for this basic computer.
Then the group activities may involve programming their friends to perform tasks, have mock battles, or even play a simple game like checkers. I may have to adapt this depending on the age group of the kids.
PS: Another useful site that some suggested was Computer Science Unplugged, which has a bunch of work sheet activities that can be completed by kids. This may be useful for me to adapt into my teaching material.