more thoughts about Python pedagogy (pyPed)
So to reintroduce myself to some of you newer subscribers, I was a high school math teacher in a Dominican run school in Jersey City, before entering a career of mostly NGO work, as a programmer on the front lines (xBase). Python started as a hobby interest, connected with geometry studies, only became a part of my income stream toolkit much later in the game (many stories). I live in Portland, Oregon and am a veteran of the OSCON, PyCon and EuroPython speaker circuit, with a lot of that stuff archived and easily accessible if you want to email me for links. My current practice is to follow Saxon, one of the popular math text book authors, in using a spiraling approach, meaning we cover data structures, functions, and classes the first day, but not exhaustively in any "silo" (they all go very deep as we know from experience). So like strings and lists, dabble in the shell, def a couple simple functions like from algebra class (these kids are all taking traditional math sequence), then do my Biotum, one of the simplest types possible that can still eat and divide (using copy module). Then on like a second pass, we'd add dictionary to data structures, default args to functions, more methods to a simple class. On a third pass, sets as data structures (a bridge to discussing concept of "immutability" thence on to tuples as a kind of list that will work as a dictionary key -- starting to tie it all together here), start with the *kw, **kwarg stuff inside the function mouth f( ), and finally bridge to inheritance (Monkey and Dog as subclasses of Mammal (object), the subclasses distinct as to __repr__ only -- __init__ at Mammal level only, simple assignment of a moniker i.e. self.name = name). So that's the Saxon idea of a spiral: data structures; functions; classes each time, but also a little deeper each time. The goal is for concepts to gain traction by being immediately *used* in a next context (something Wayne and I were yakking about on Math Forum recently). We introduce vectors only to use them in a next lesson, as constituents of polyhedra. Or I'll start with polyhedra as my primitive objects and get to vectors only secondarily, as constituents of an Edge class. I believe in teacher discretion in these matters, as a best judge of hers or his own students and teaching abilities. I keep blogs, still use xBase for a living, mostly in hospital work (having SQL embedded right in the native syntax is like bread and butter for me, not saying Python isn't good at it), have hung out on edu-sig here since its inception, lots of fun dialogs, got us a PhD thesis focused on us 'n everything (collective blush) **. I think it'd be unsurprising that Python has a dynamic core list focused on education, given all the focus and interest on improving curricula these days. I definitely think the open source languages, combined with low cost hardware, is in the process of revolutionizing the classroom once again, to the lasting improvement of the student experience, teacher as well. Kirby 4dsolutions.net ** PROMOTING COMPUTER LITERACY THROUGH PROGRAMMING PYTHON by John Alexander Miller A dissertation submitted in partial fulfillment of the requirements for the degree of Doctor of Philosophy (Education) in The University of Michigan 2004 Doctoral Committee: Professor Frederick Goodman, Chair Emeritus Professor Carl Berger Professor Jay Lemke Professor John Swales http://www.python.org/files/miller-dissertation.pdf
participants (1)
-
kirby urner