As my school is not large enough to support such a focused programming curriculum and I want to appeal to many sides of computing / networked culture, I just finished teaching a 10-12th grade elective with ESR's "How to become a hacker" essay as a framework. (See: http://www.catb.org/~esr/faqs/hacker-howto.html )
Build up a PC. Install Ubuntu. Write XHTML/CSS in a text editor. Learn Python. All the while blogging and talking about the social implications to blogging, MySpace, closed-v-open source, open-v-free, etc. ESR's 4th assertion ("Learn English") was especially fertile ground in a class with many non-native English speakers. We asked why Python would have English-sounding words as built-in functions. Now I have a cohort of students with a semester of Python under their belts and I'm starting to plan for next year. The students that stick with me will be ready for a more strict programming curriculum. Though I'm wary of switching languages, your email is intriguing. It's helpful to think of languages as tools - each with its own strength and purpose. Has anyone taught Ruby at the K12 level? I love its object-oriented nature and the whole workflow would be familiar to my young Python programmers but I worry that jumping to another language is too soon. Kevin On 6/20/06, kirby urner <[EMAIL PROTECTED]> wrote: > This tagline gives the plot: > > """ > So right off the bat, Gnu Math is in turmoil. Are we trying to visit > the tunnels under Disney World, as I contend, or are we keeping them > blissfully in a bubble, making them think the whole world is as > squeaky clean as Squeak? > """ > > That's from the Math Forum this morning. > http://mathforum.org/kb/thread.jspa?threadID=1401016 > > How much of the gnarly underbelly of geek culture are we wanting to > teach, and at what level? Jerritt plunged right in with tcp/ip at > West Precinct that time, and I'm thinking that's probably as good a > place to start as any. Motherboard internals can wait. > > So I posted about tcp/ip in my blog yesterday, giving a flavor. I'm > saying Gnu Math should not avoid the low level. Consistently and > consequently, I advocate diving into C after Python along a strong CS > track, to understand how CPython is implemented under the hood -- as > well as how to extend it. > > Then maybe we'll resurface in Java and/or C# over bridges in the > corresponding Python implementations (Jython and/or IronPython). It's > not like we have to go over every built-in or library module at the > same level of detail every time. > > But hey, now you've got the hang of C, and the way it thinks about > memory (addresses, pointers). That'll help you solve a lot of > puzzles, at least through some career doors. And no, I'm not > forgetting about C++ (the basis of wx and many other extensions). > > Some will go in reverse (it's a network, not just a sequence): e.g. > drill down starting in IronPython, and get back to C via the > bytecodes-on-a-VM. In Mono (an implementation of a shared > ANSI/ISO/ECMA type standard), the target bytecodes are prespecified, > and provide a shared platform for many languages. Guido invented his > own bytecodes for CPython, a unilanguage VM, when the whole idea of a > VM was still quite new, and an advance over the early "interpreter" > idea -- like what bash does. > > BTW how're things coming with Parrot? I'm soo out of date. > > Anyway, I'm for using Python to awaken self-selecting "users" out of a > blissful ignorance (however comfortable) and start getting them > oriented to the plumbing that makes it all work. Via Python, you have > the opportunity to move from "user" to "hacker" perhaps by way of > "gnubee" (as in "student of gnu math"). > > In the gnu world, we don't hide the fact that the low level stuff gets > ugly and that ugly hacks exist. Engineering is just like that, and > there's no shame in admitting it, showing it, and inviting fresh > solutions. There's also just a lot of ancient working machinery, not > ugly per se, but still rather complicated and ornate. We want to show > that off too. > > Kirby > _______________________________________________ > Edu-sig mailing list > Edu-sig@python.org > http://mail.python.org/mailman/listinfo/edu-sig > _______________________________________________ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig