I think the whole idea of 'not a programming language' is flawed. If you want to teach concepts in this fashion --- and I think this is a great idea -- you want to teach 'how to use an interpreter' (you are using an interpreted language) and some sort of Test Driven Design (which you do not have to teach explicitly) if you have something like py.test or nose available.
Otherwise what you have given yourself is a lot of marking to do, and you are stuck with the same problem that troubles math teachers -- (unless they are teaching from Kirby's Pythonic Math exercises, or something.) You give your kids an assignment, and they don't understand it, and get it wrong. You reteach the principles, and try again. The nice thing about proramming is that it doesn't have to be taught this way. "Here is an acceptance suite. Bash on your program until it passes." is a perfectly acceptable way to go. And this changes your class from math class (where there are correct answers and wrong answers, and hated by those who seem always to get the wrong answers) to programming -- where all running programs are in some sense 'correct' -- they just need to be completed, or to have some bugs removed before they correctly solve the assignment. :) This notion is incredibly liberating to some people. I get the distinct idea that the authors of this paper are functional language fans, and what they are looking for is a way to get to Haskell or ML or something like that. This is 'programming as mathematical proof'. But I don't think that programming is actually like that. I think that the idea that a person needs to invest 10,000 hours in an activity to become very good at it (which seems to work for learning a sport, or learning how to play a musical instrument) seems to work for programming as well. I won't argue for the 10,000 -- but just that if you want to get better at programming, then what you need to do is practice doing it more. Filling yourself with more advanced concepts will not, unfortunately for those of us who are good at filling ourselves up with concepts, change the fact that you need to practice writing programs to improve at writing programs. I think this analysis misses this point, and then tries to get around it by saying -- well, we don't actually care if the students learn to program, only that they learn the concepts behind programming. But I think this is exactly backwards -- the way you should be teaching the concepts behind programming is with an interpreter. Thus you need to teach them a tiny bit of programming _first_ and not second. And more and more I think that Kirby is correct. You should teach math with an interpreter, too. On a related note -- a friend of mine has given his 6 year old son a linux system on a laptop to play with. It is a hit. But now the son wants a book that explains how the linux operating system works. :) Anybody have a reference that is suitable for children? Laura _______________________________________________ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig