[Edu-sig] Gearing up (Python course...)

Calcpage calcpage at aol.com
Sat Jul 10 14:37:07 CEST 2010

Wow, Kirby, thanx for sharing all that you do!

I am relatively new to python, but not new to teaching with  
technology.  I've been teaching computer math and computer science  
since 1975.  Often times, however, I have done so in a vacuum.  It's  
nice to see what others are doing in this vein other than myself!

I am a math teacher by trade, but some how was fortunate enough to be  
involved with this sort if curriculum too.  That said, I do teach math  
in these courses but these are courses geared toward new programmers  
and an intro to syntax and semantics whether it be functional or  
object based programming.

In fact, this coming year I am starting a new course where math comes  
first but is python based.  I will be teaching a Calculus Lab using http://www.sagemath.org 
. So, your descriptions of curriculum and pedagogy re pythonic math  
are most enlightening!  If interested, please see the link on the  
right side of my blog entitled "Calculus Research Lab"

A. Jorge Garcia
Applied Math & CS
Baldwin SHS & Nassau CC
Sent from my iPod

On Jul 10, 2010, at 4:32 AM, kirby urner <kirby.urner at gmail.com> wrote:

> I'm gearing up to do another Python course.  PSU seems
> more locked down than ever BTW.  I've gotta be met by an
> official to hand out user logins, as these cannot be
> transmitted electronically.
> That's not how it used to be when I taught there before.
> We're going back to hand carry and paper delivery for
> more sensitive information apparently, kinda retro.
> I should wear something sensibly 1940s.
> A primary technique is to teach enough basic syntax,
> after startup and shutdown practice, to enable "doodling".
> This means I get to talk about one thing, while they
> multi-task, checking out arithmetic ops, range(), slice,
> a few string ops, check the error messages.
> Chatting about help & dir helps some, but probably
> more useful is I doodle some too, projecting up front.
> We cover a few bases, then they doodle while I ramble.
> Maybe I talk about PEPs, go over some history, yak
> about Pycons, poster sessions, user groups...
> Then we cover a few more bases and repeat.
> Doodle while hearing some talk about open source,
> GNU, GPL, MIT, OLPC... chime in with news and views?
> We'll get to Lightning Talks later (a way for students
> to voluntarily share about projects).
> A goal is to develop comfort with simple interactivity,
> you could say "using Python as a calculator".  Saving
> to site-packages, importing the namespace (different
> ways to import) should round out this first section.
> In terms of content, things to program around, I tend
> to wander into spatial geometry, but not with any
> coordinates or turtles at first.
> I've got this "geometry plus geography" heuristic
> goin' where these are the only two subjects under
> the sun (per posts to mathfuture, a Google group),
> so it's easy for me to frequent this area.
> Geometry is thinking (imagination) and Geography
> is the real world (i.e. everything else).
> I'm a big fan of "gnomon studies" [0] which includes
> figurate and polyhedral numbers.  'The Book of
> Numbers' by Conway & Guy was influential.
> I've already filed hundreds of posts about this in this
> archive, so probably shouldn't get too verbose.
> 10 * f * f + 2 is a good one to play with.
>>>> [10 * f * f + 2 for f in range(11)]
> [2, 12, 42, 92, 162, 252, 362, 492, 642, 812, 1002]
> The initial 2 should be a 1 if you wanna match up
> with Encyclopedia of Integer Sequences.[1]
> I like having polyhedra going, via figurate numbers,
> because they're the paradigm "objects" or "action
> figures" of the cybernetic vista.
> Figurate or polygon numbers become polyhedral
> numbers, i.e. we go from triangular numbers to
> tetrahedral numbers pretty easily, or squares
> to half-octahedra (Egyptian pyramids).
> [ Actually, over on Math Forum, I've got a
> curriculum guy telling me polyhedra just don't
> relate to anything, that he can see, so I realize
> it's sometimes an uphill battle to champion
> their relevance, chemistry and biology
> notwithstanding (all geography in the two-
> subject framework) ]
> Any "sim" or screen character may be thought of
> as an animated, multi-faceted avatar, a "puppet"
> of behind-the-scenes software (screen-as-theater,
> one of the oldest motifs, so familiar from television).
> However, aside from a few Youtubes (e.g. [2]), other
> static web pages, I'm mostly relying on student
> imaginations to provide the visuals at first.  It's like
> learning to read without pictures, engaging the
> imagination while focusing on a purely lexical
> activity (reading).
> I'm pretty adamant that programming is a more lexical
> and/or algebraic activity, and whereas I'm a big fan
> of right brain mental geometry, I'm concerned that
> too many resources pander to an anti-lexical bias,
> feeding student aversion to "straight text".
> At some point, it pays to stop trying to make every
> experience some kind of video game.  Better to
> get back to games with words themselves (more
> like crossword puzzles) and cultivate an awareness
> of those.
> Messing with fonts may come in handy (in Portland
> we have Bram Pitoyo, a total font head, frequents
> the conferences).  I always like to show off Akbar
> font, mention The Simpsons and Matt G. (from
> around here).
> There's a kind of stunting or atrophy of the left brain
> we need to worry about as well (cuts both ways).
> That's why I want early "doodling" to be chiefly
> lexical, with no immediate "turtle gratification"
> (nor VPython at first, much as I love to use that
> add-on).
> Remember, these are teenagers, not tiny children.
> They likely know how to type some, and won't have
> a problem spelling out words.
> Having these "words" (expressions, short programs)
> "laugh and play" i.e. "talk back" because of the
> interpreter environment, is supposed to be a game
> in itself (a kind of "language game").
> It's supposed to be interesting to reverse lists (play
> with palindromes), pop a stack, feed a queue or
> whatever.  Look up in a dict.  import cos and sqrt.
>>>> from math import sqrt as root2
>>>> root2(4)
> 2.0
>>>> def root3(x):  return pow(x, 1.0/3.0)
>>>> root3(27)
> 3.0
> To uphold my reputation as an "objects first" kind
> of teacher, I'm going to focus at least part of my
> patter on what OO is about and why it was supposed
> to be an advance.
> Functional programmers voice their concerns that
> OO is potentially messy, doesn't do enough to save
> us from ourselves.
> But the goal was to imitate "the real world" in some way
> (the geographic realm). Knowledge domains naturally
> fragment into "things" with behaviors (capabilities)
> and attributes (properties).
> OO isn't a computer thing, it's a "natural habit of
> thought" thing.  Here's one flavor of logic that aims
> to capture "natural language" to some primitive
> extent.  Philosophers please take note (they
> haven't been, mostly).
> And it's potentially messy because the real world
> is messy.  The idea of objects with state, with APIs
> to change state, is reflective of everyday encounters,
> adventures in Geography (where even insects have
> state).
> I suppose that could be read as a defense of crummy
> programming, but that's not my intent.
> We do need to learn about pitfalls and the difference
> between beautiful code and gnarly unmaintainable
> code (the latter more likely what a solo programmer
> will write, and think clear as day -- why we think a
> minimum of two coders per project is a serious
> benefit to all concerned).
> What behaviors and attributes do polyhedra have?
> Their number of vertexes V, edges E and faces F
> (simple counts) are good examples of attributes.
> Verbs would be "scale" (grow / shrink), "translate"
> (move about, accelerate) and "rotate" (symmetries,
> great circles of spin, axes, cleaving into parts).
> Even without doing any graphics, we might
> implement a method called "dual", which appears
> to transform a polyhedron into its dual (I say
> "appears" because in these simple "cave
> painting" examples we might just switch
> the values of V and F, keeping E the same
> --- one line of code basically).
> Showing off Google Sketchup might be worthwhile
> at this juncture, even if it's more of a Ruby thing
> (we like Ruby just fine).
> I introduce "dot notation" as following these patterns
> (sort of):  noun.verb(args); noun.adjective.  I'm
> influenced by J here, which although more functional
> in some ways, is all about using parts of speech,
> grammar, as a way of talking about the J language.[3]
> Language teachers will love computational math
> all the more if it reinforces the importance of learning
> parts of speech, so I figure this is a win-win when it
> comes to inter-departmental relations.  The DOM
> relates to language arts as well.  A lot of computer
> topics are intrinsic to the humanities these days
> (e.g. ConceptNet).[4]
> More later,
> Kirby
> [0]
> http://www.flickr.com/photos/17157315@N00/3195670892/in/photostream/
> http://www.flickr.com/photos/17157315@N00/sets/72157617745459466/with/3195670892/
> [1]
> http://www.research.att.com/~njas/sequences/A005901
> [2]  http://mybizmo.blogspot.com/2010/07/blog-post.html
> http://www.flickr.com/photos/17157315@N00/sets/72157622797118549/with/3201379449/
> [3]
> http://www.jsoftware.com/help/dictionary/contents.htm
> (I'm playing with the idea of using this in my Martian Math class at
> Reed College)
> [4]
> http://controlroom.blogspot.com/2010/06/aristotle-was-right.html
> _______________________________________________
> Edu-sig mailing list
> Edu-sig at python.org
> http://mail.python.org/mailman/listinfo/edu-sig

More information about the Edu-sig mailing list