> [Warning: I get totally off-topic, opinionated, and cranky in the > following rant. My apologies in advance!]
Well since you've gone off topic so will I ;-) > But I get worried, though, that much teaching uses fragile techniques that > don't really scale well. I've disliked the order in which some Python > tutorials approach language features --- in particular, functions seem to > be given short shrift at times. There are lots of ways to teach a language and there are ways to teach programming. And the two things are different. That is the reaon that I deliberately don;t teach Python specific idioms in my tutor prefering to show a more general approach. I treat functions as one of the 4 basic building blocks and introduce them in my third topic 'What is Programing' but... > I really wish that someone would take a similar approach in writing a > beginner Python tutorial that focuses on functions almost immediately, > even before control flow. Something like: > > http://www.htdp.org/2003-09-26/Book/ > The problem with this approach for Python is that it requires a language with tail end recursion which allows you to use recursive function calls as the control structure. Python blows up too easily to do that so a more conventional approach is necessary - trying to explain a recursion limit error in the early stages of learning to program would just be too hard IMHO anyway! But I do agree that teaching the basic structures and princuiples is far more important than documenting all of the various options and Python specific idioms in the language - that simply teaches Python not programming. One of my pet peeves with new graduates joining our company is that they expect to get sent on a training course just because a project uses a new (to them) programming language. In most cases a day(*) with a book will be enough to become productive if you understand the basics. (*) If the language introduces a new paradigm then a course is appropriate - but to teach the paradigm(OOP, Functional programming, Predicate logic etc). Moving from Pascal to C to VB to Python or Perl or Ruby etc doesn't count! Alan G Author of the learn to program web tutor http://www.freenetpages.co.uk/hp/alan.gauld _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor