Teaching kids about computers...

Jim Battle frustum at pacbell.net
Wed Nov 21 11:29:24 CST 2007


Jules Richardson wrote:
> 
> So the boy (9yr. old) was asking last night about how computers work... 
> any recommendations for good books for learning the basics from? I think 
> I started out with a Sinclair Spectrum and its BASIC manual, but I 
> really don't recall now where I found out about the fundamental building 
> blocks of [typical] computers and how a CPU worked. There must be a good 
> 'classic' "how computers work" type of book which avoids going on about 
> PCs and Xboxen...
> 
> I figure I should find him one of those kids electronics projects kits 
> too (I think that was where I got my first exposure to logic gates from 
> at about the same age) and also some old 8-bit machine to play with.

It seems like you want to teach a number of different things.  Although 
they interact, I think the learning of each is separable.

There is the electronics aspect ...
then there is the low level machine code and binary aspect ...
then there is the higher level programming language aspect

Which end to you want to start from?  If you toss it in together all at 
once the task is much bigger to teach, and I think more confusing to learn.

I'd say let it be dictated by your son's interest.  Is he more 
interested in wires, batteries and lights?  Or is he mathematically 
inclined and would get a kick out of learning binary?  Or does he want 
the fastest path towards getting interesting feedback (in which case 
start with the higher level language).

People frown on BASIC and hold their noses, but I think it isn't so bad 
as a first language; use a dialect that allows long variable names, has 
subroutines with local variables, etc, and it will be fine.  If the 
machine has color graphics accessible from BASIC, you can very quickly 
get exciting visual feedback with short programs.

Teaching C or PASCAL as a first language would test the patience of the 
typical 9 year old, what with having to declare everything before using 
it and having sophisticated but subtle syntax.  If he takes a shine to 
programming, then introduce the cleaner, more powerful languages. 
Actually Python might fit the bill for both cases ... don't worry about 
the OO stuff and just use it as a simple language at first.

If he wants to learn machine language ... you might consider the 
classic, CARDIAC, originally produced by Bell Labs.  I don't know if it 
is still accurate, but just googled and as of 1998, you could still buy 
them new.  The following page has some pictures of the unit and a 
description of using it, along with an address of where to buy it.

	http://www.larkfarm.com/cardiac_answers.htm

It is a machine language, but decimal, so you can decouple learning 
binary from the concept of machine language.

java cardiac simulator (I haven't tried it):
	http://sourceforge.net/projects/cinc

My kids are a little bit too young for all of this (just turned eight), 
but I'd love to hear others' opinions for in a year or two it will be my 
turn.



More information about the cctech mailing list