[Edu-sig] From Turing machines to programming languages

Gordon Worley orla_redbird@crosswinds.net
Tue, 4 Apr 2000 18:46:38 -0400


This weekend I read Neal Stephenson's /The Diamond Age/ (a good book 
if one hasn't read it).  In one chapter on pages 385 to 391 in my 
niffty Bantam paperback edition (sorry, chapters are unnumbered).  In 
it, the story is detailed how Nell goes from learning to program 
simple Turning machines (described in an earlier chapter) to complex 
turing machines to using programming languages to control Turing 
machines.  The point of describing this is to point out, what I 
believe to be, an excellent method of teaching programming.

Obviously, the average person does not have the patience to learn how 
to program a Turing machine (especially since it will just return 
numbers), but the method of teaching is sound.  Rather than teaching 
Python outright, why not start by using a game like system where 
beginning programmers learn how by changing the flow of events with 
commands can affect desired results.  For example, a puzzle game 
where a pipeworks is broken and must be fixed could begin the process 
of learning how to find bugs and fix them.  With some time, the 
programmers will learn the games system and be ready for something 
more complex.  The next step would be to create a game involving more 
math and more abstract, distant controlling of events.  I'll leave 
the number of steps and their implimentation as an exercise for the 
reader.  :-)  Anyway, eventually the programmers will be controling 
events in systems remotely enough that they will already understand 
the concepts necessary in learning to program, so all that will be 
left is to teach them Python.

A rather grand scheme, I admit, but I think it is doable.  Also, in 
the book Nell's only resources are sample code she looks at and huge 
manuals.  While most learners don't have the level of commitment to 
learn to program by such a method, anyone who has learned by it can 
atest to the fact that it produces quite good programmers.

Well, I guess that's it for now.  I've unleashed these ideas, so 
let's see what is done with them (hopefully something good).
-- 
- Gordon Worley
http://www.rbisland.cx/
mailto:redbird@rbisland.cx