
Scheme will stay around, don't worry. I meant Scheme in middle schools.
Glad to hear it. But even in this narrow scope, it don't see it as an either/or proposition. Schools should continue to evolve multiple approaches. If Python makes more inroads, this is not necessarily at Scheme's expense.
I am happy to see that you have read some of our material. But if you had read it far enough you would see
- that car and cdr never occur in the book
The book I mean is one you wrote, where you have two columns, with the answer on the right (you cover it with your hand or a piece of paper, and answer questions mentally, before sliding the paper down and checking your answer). I was pretty sure car and cdr were covered in that book. If not, I'm surprised that memory fails me. Also, I'd think you'd _want_ to cover car and cdr when approaching programming in Scheme (one reason I provided "emulations" of those functions in recent posts -- essentially the same as Python's List[0] and List[1:], although of course we're not talking about proper vs. improper lists as formed from cons pairs (that's an abstraction more specific to the LISP family)).
- that recursion is explained as the control structure that matches data def
I recall something about a dog chasing it's own tail, but maybe that was a different book. Here's something else from private email (a judgement call, when to share more publicly, I realize -- I try to be constructive and keep the conversation rolling). This from a teacher at a nearby high school (he has a fair amount of programming experience, though not with Scheme -- nor any with Python): I was hoping that Scheme would be a good intro to other Languages, mainly JAVA. Since I am moving through the material with the kids, we are all somewhat impatient at having no looping mechanism yet. I am all for recursion, but not to the exclusion of every type of looping mechanism. Again, I stepped into Scheme blindly, having faith in the promise of the promo. I'm not ready to quit yet, but I keep getting blindsided as I ask kids to do things that I think are simple, like counting. This teacher is just using what's freely downloadable from the web (from your website). Although I realize you have workshops, to a great extent we simply have to rely on osmosis for these languages to filter outward. In my opinion, learning Scheme requires more hand-holding i.e. more trained people such as yourself are required to back it up and keep the ball rolling. In the case of Python, my expectation is CP4E is more a self-fulfilling prophecy (will require less push). Python is a snowball, or, like Tim Berners-Lee talks about the World Wide Web: a bobsled you need to push only in the beginning -- then you jump on and try steer (what he's been doing at W3C).
- that models and views are radically separated so that middle school kids don't have to bother with mind-numbing memorizations about view (i/o) stuff. Otherwise we're like biology.
My "math through programming" approach is to build on terminology already evolved in ordinary math classes. I personally like talking about models and views and would like to see more of this phased in. In the meantime, what we already teach about are functions, relations, compositions of functions, domain, range, sets, intersection, union... the standard math topics, found in most text books the last 10-15 years. This is what math teachers like to see -- familiar terms. Neither "model" nor "view" is a prevalent term in that knowledge domain (again, I think this should change).
;; ---
This was more in in response Shririam's feedback, after that positive review of my curriculum writing at the O'Reilly website:[1]
If you cite from private email, I can't comment. That's between him and you.
-- Matthias
If you say so. When I get a letter from a partner in a law firm, I get a clue by looking at the stationery as to whether she speaks for the company. In email world, we don't usually have "letterhead" per se, and so the scope (local? more global?) is not always so clear. Thanks for the clarification. Kirby