[Edu-sig] Re: Python Programming: An Introduction to Computer Science

Toby Donaldson tjd at sfu.ca
Sun Dec 14 05:05:06 EST 2003


>  I think that we could make a tremendous push for the number of people
who 
> are programming at all if we made courses on 'data mining for the 
> humanities' and the like.  How to write programs to take the
information 
> from some website and do something useful with it.  

One approach for getting "non-nerds" to do programming is to tie a
scripting language to an application, like Flash or Director. The
application does all the tricky technical stuff, while the scripting
lets the user concentrate on the task logic.

I guess you could do the same thing with Python and libraries, but nice
GUI environments are friendlier.

Toby
--
Dr. Toby Donaldson
Assistant Professor
School of Interactive Arts and Technology
Simon Fraser University


> -----Original Message-----
> From: edu-sig-bounces at python.org [mailto:edu-sig-bounces at python.org]
On
> Behalf Of edu-sig-request at python.org
> Sent: December 13, 2003 3:33 PM
> To: edu-sig at python.org
> Subject: Edu-sig Digest, Vol 5, Issue 14
> 
> Send Edu-sig mailing list submissions to
> 	edu-sig at python.org
> 
> To subscribe or unsubscribe via the World Wide Web, visit
> 	http://mail.python.org/mailman/listinfo/edu-sig
> or, via email, send a message with subject or body 'help' to
> 	edu-sig-request at python.org
> 
> You can reach the person managing the list at
> 	edu-sig-owner at python.org
> 
> When replying, please edit your Subject line so it is more specific
> than "Re: Contents of Edu-sig digest..."
> 
> 
> Today's Topics:
> 
>    1. Re: Re: Python Programming: An Introduction	to
>       ComputerScience (John Zelle)
>    2. RE: re: Python Programming: An Introduction to
>       ComputerScience (Kirby Urner)
>    3. Re: re: Education Arcade (Jim Harrison)
>    4. Re: re: Education Arcade  (Laura Creighton)
>    5. RE: Re: Python Programming: An Introduction	to
>       ComputerScience (Kirby Urner)
>    6. Re: re: Python Programming: An Introduction to
>       ComputerScience  (Laura Creighton)
>    7. Re: re: Education Arcade  (Laura Creighton)
> 
> 
> ----------------------------------------------------------------------
> 
> Message: 1
> Date: Sat, 13 Dec 2003 14:59:56 -0600
> From: John Zelle <john.zelle at wartburg.edu>
> Subject: Re: [Edu-sig] Re: Python Programming: An Introduction
to
> 	ComputerScience
> To: Kirby Urner <urnerk at qwest.net>
> Cc: edu-sig at python.org
> Message-ID: <3FDB7DCC.4000107 at wartburg.edu>
> Content-Type: text/plain; charset=us-ascii; format=flowed
> 
> Hello all,
> 
> I've been reading the thread about my book with great interest. All
> feedback is helpful, even when I don't necessarily agree. Let me just
> say that I thought Kirby's initial posting was right on target. My
book
> is intended as a CS1 book, not a book on Python. Because of that, I
have
> been a little fearful about how the book might be received in the
Python
> community. Kirby clearly understands the distinction being drawn, and
I
> appreciate the way his remarks are framed.
> 
> I am much less concerned than others about how the more advanced
and/or
> indiosyncratic features of Python are/might be taught. The truth is
that
> the tradtional core computer science sequence CS1 (Intro to
> programming), C2 (Data Structures and Design), CS3 (Advanced Data
> structures and Algorithms) have not been "about" language for a long
> time. Even a student that goes through this sequence using a single
> language, whether that be C++, Java, or Python will not acquire expert
> knowledge of the language. That's simply not what these courses are
> about. The point is that once a student has completed CS1/CS2, they
can
> pick up a good technical book and have the foundation to learn the
> complete feature set of any language.
> 
> Students continue programming throughout their CS programs and in
future
> careers. They are constantly changing tools. With some serious early
> exposure to a variety of tools (say dynamic and static languages) they
> are in a better position to pick tools that are best suited for the
job
> at hand. A move to Java or C++ in CS2 should not be seen as
"abandoning"
> Python. In fact, seeing Python side-by-side with Java ususally leads
my
> students to want to do more Python projects (and hence learn more
about
> Python) in their upper-level classes. Without seeing a statically
typed
> language, it's hard to appreciate the elegance and flexibility of
> Python. For example, when we talk about polymorphism in CS1, the
> students say "of course, what's the big deal." Only when they see the
> complexity of doing similar things in C++ or Java do they really
> appreciate the concept.
> 
> Whatever approach one takes to the first classes, it is important to
> realize that our students do not begin programming with the same
> background that we have. Most of my students are not particularly
> mathematically or scientifically oriented (at least at the start). And
> they are concrete, not abstract thinkers. It's important that we try
to
> meet them where they are so that they can learn and grow with minimal
> frustration. Packing more into CS1 is probably not the way to do that.
> 
> Along similar lines, Kirby's comment on abstracting geometric objects
> from their realizations (see below) are absolutely right on track as a
> matter of  design principle. I do address this sort of decoupling
toward
> the end of the book (model-view architectures). However, the goal of
the
> graphics package is somewhat different. The purpose is to introduce
> objects in a very concrete way. It is a graphics library, not a
geometry
> library. A Point doesn't really represent an abstract geometric point,
> but a postion _in_a_window_. Similarly, the Rectangle is not a general
> mathemetical abstraction, but an actual box on the screen (maybe I
> should have called it "box"). Now an object on the screen has inherent
> properties such as color and outline width as instrinsic properties;
> whereas the mathematical abstraction does not. This is most evident in
> the Line class. A Line on the screen is not really a line in the
> mathematical sense---at best it would be a line segment. If you were
> designing an application around the mathematical concepts you could
use
> the primitives of the graphics library to visually realize some of
those
> (so the graphics package would be analogous to the backend, not the
> front).
> 
> Of course, I do use the graphics package to get my students to do
things
> like calculating points of intersection and computing coordinate
> transformations. The beauty of it is that they think they are just
> drawing pretty pictures :-).
> 
> My thanks to all of you who have given me both encouragement and
> criticism on this project.
> 
> --John
> 
> Kirby Urner wrote:
> 
> >Earlier I wrote:
> >
> >
> >>When considering option (e), my attention goes to the Point class.
If
> all
> >>a Point does is hold x and y coords, then a class implementation
seems
> >>like overkill in Python.  You could get by with built-in tuples.
> >>
> >>
> >
> >Now that I have the student CD, I see that the Point class is not
just a
> >holder for (x,y) values.  It has some knowledge of Tk, is in fact a
> subclass
> >of GraphicsObject, which is very Tk aware.
> >
> >This brings up a design pattern thread for me.  My tendency over the
> years
> >has been to write the geometric objects, such as vectors and
polyhedra,
> in
> >such a way as to deliberately keep them ignorant of any output
apparatus.
> >
> >Then I define a "writer" that's customized to say Tk, or VRML, or
POV-
> Ray,
> >and pass the geometric objects to the writer.  The writer squeezes
pure
> >geometric information from the things, and translates them into
output
> >appropriate to its medium.
> >
> >You can see evidence of this strategy going all the way back to 1998,
> when I
> >was still doing this stuff in FoxPro (I hadn't learned of Python
yet):
> >http://www.4dsolutions.net/ocn/oop.html
> >
> >A consequence of this design is I've been putting what philosophers
used
> to
> >call "secondary attributes" (color, texture) in the writer, instead
of in
> >the geometric objects.  So if I want a red tetrahedron, say, I change
to
> >"edge color" and "face color" properties in the writer, before
passing a
> >tetrahedron object to it.
> >
> >E.g.:
> >
> >  >>> povwriter = povray.Povray("outfile.pov")
> >  >>> povwriter.cylcolor = 'Red'  # secondary attribute
> >  >>> obj = rbf.Tetra()  # get a tetrahedron
> >  >>> obj.draw(povwriter)
> >
> >But internally to obj.draw(povwriter), I'm invoking povwriter on the
> various
> >edges, vertices and faces of my obj:
> >
> >  def draw(povwriter):
> >
> >     for e in self.edges():
> >         povwriter.edge(e)
> >
> >     ...
> >
> >and like that.
> >
> >The upside of this design is if I go obj.draw(vrmlwriter), then the
same
> >object gets output in VRML syntax.
> >
> >In sum, when writing geometric objects to output media, there's a way
to
> go
> >wherein anything specific to the medium is saved to the "writer"
object,
> >while anything purely geometric, and common to all media, is saved in
the
> >geometric object.  The pure geometry is kept separate from the messy
> details
> >of I/O.
> >
> >I'm just bringing this up as a by the way.  I'm not saying Zelle
should
> have
> >done this in his text book.
> >
> >It'd be a fruitful discussion for CS2 level course -- when we're
talking
> >about design patterns.
> >
> >Kirby
> >
> >
> >
> >_______________________________________________
> >Edu-sig mailing list
> >Edu-sig at python.org
> >http://mail.python.org/mailman/listinfo/edu-sig
> >
> >
> >
> >
> 
> --
>     John M. Zelle, Ph.D.   |     Wartburg College
>    Associate Prof. of CS   |  Dept. Math/CS/Physics
>   john.zelle at wartburg.edu  |     Waverly, Iowa
> 
> 
> 
> 
> 
> 
> ------------------------------
> 
> Message: 2
> Date: Sat, 13 Dec 2003 13:09:10 -0800
> From: "Kirby Urner" <urnerk at qwest.net>
> Subject: RE: [Edu-sig] re: Python Programming: An Introduction to
> 	ComputerScience
> To: "'Edu-sig'" <edu-sig at python.org>
> Message-ID: <E1AVH0a-0002cX-NY at mail.python.org>
> Content-Type: text/plain;	charset="us-ascii"
> 
> 
> 
> > -----Original Message-----
> > From: edu-sig-bounces at python.org [mailto:edu-sig-bounces at python.org]
On
> > Behalf Of Jeffrey Elkner
> > Sent: Saturday, December 13, 2003 12:28 PM
> > To: Edu-sig
> > Cc: Toby Donaldson
> > Subject: Re: [Edu-sig] re: Python Programming: An Introduction to
> > ComputerScience
> >
> > I completely agree with Toby on this.  I've already managed to make
> > Python the CS1 language at Yorktown High, but it hasn't reached
beyond
> > the hard core geek community.  If we really want to popularize it to
a
> > broader audience, it needs to fill the space taken by VB (at the
high
> > school) or what Logo used to do (at the middle school).
> 
> I guess I don't see how Logo makes a good case.  It never went
anywhere
> much
> beyond middle school.  No Hubble stuff is done in Logo.
> 
> I guess my question is, what's being used outside the "hard core geek
> community" that CS1 doesn't reach?  VB?  Or is it just that
programming
> itself is still not a very widespread activity, using any language?
> 
> In my view, we need more programming in the mathematics curriculum,
which
> means recognizing that writing programs is likewise a way of writing
> mathematics. Or, more accurately, I'd say both kinds of writing are
> similar
> kinds of symbolic activity which deserve a prime spot in K-12
education.
> 
> In the math curriculum, the real competition is not some other
language,
> but
> calculators (I guess the TI programming language might count -- but my
> impression is more HS math teachers than students actually bother with
the
> programming part).
> 
> Numeracy, the equivalent of literacy with regard to prose and poetry,
> involves programming, mathematics, data visualizations, puzzle
solving,
> logic, simulations, and other such.  Numeracy and literacy connect at
many
> levels.
> 
> Kirby
> 
> 
> 
> 
> 
> ------------------------------
> 
> Message: 3
> Date: Sat, 13 Dec 2003 16:14:38 -0500
> From: Jim Harrison <jhrsn at pitt.edu>
> Subject: Re: [Edu-sig] re: Education Arcade
> To: edu-sig at python.org
> Message-ID: <BC00EB6E.2D208%jhrsn at pitt.edu>
> Content-Type: text/plain; charset="US-ASCII"
> 
> on 12/13/03 2:57 PM, Arthur at ajsiegel at optonline.net wrote:
> 
> > Learning is about demystification.  I would probably not go as far
as
> the
> > Waldorf folks and deny kids a great magic show.  But that's
precisely
> what a
> > good video game is. In some sense it is the opposite of a learning
> > experience.
> >
> > And the power relationship is perverse.  The machine has the power,
the
> > developer has the power. The kid is a shmuck. Exactly the wrong
lesson.
> 
> In the early stages of learning, kids are expected to take a great
deal on
> faith about the way in which the world and society works, and we
typically
> start the demystification process with relatively easy, middle of the
road
> examples with a lot of unstated assumptions. That's true for any kind
of
> instruction with any kind of instructional material. Explorations of
the
> difficult boundary conditions and underlying assumptions are left
until
> later, both in the sciences and the humanities. So a lot remains
> un-demystified for a long time in traditional instruction.
> 
> For example, elementary physics typically includes macroscopic solid
body
> problems, not quantum mechanics. There are a lot of assumptions
inherent
> in
> those problems that ultimately need demystification, but initially we
> concentrate on the most obvious issues and work toward the others
> incrementally over a significant period of time.
> 
> Instructors often illustrate physics problems with a small physical
> apparatus that represents what happens in the wider world, and kids
watch.
> It would be substantially beneficial if the kids each had their own
> apparatus for experimentation, but that's usually not possible.
> 
> In the absence of that, I don't see the harm (and do see benefit) in
> providing kids with a video simulator of the same problem that
provides
> responses that appear to be identical to those occurring with the
physical
> apparatus, and that allows experimentation. I don't believe the kids
have
> any problem isolating the display from the non-demystified computer
behind
> it and understanding that within the confines of the simulation the
> actions
> they see represent real-world responses. As an aside, the greater
problem
> is
> going the other way--convincing them fully that what they see in some
> cases
> does not represent the real world.
> 
> Similarly, I have no problem with starting kids learning
> computing/programming in a GUI (a form of simulator) to allow them to
> acquire a basic skill set rapidly under reinforcing conditions, then
> progressing from there to the command line ('cd is just like opening a
> folder'). I've seen this work fine.
> 
> And I don't buy the machine:power/kid:schmuck scenario. When kids can
> manipulate a simulation to produce a result, they feel empowered. If
the
> result doesn't honor the parameters of the simulation, the kids
> immediately
> label the developer/machine "lame" -- not themselves.
> 
> Jim Harrison
> Univ. of Pittsburgh
> 
> 
> 
> ------------------------------
> 
> Message: 4
> Date: Sat, 13 Dec 2003 23:56:35 +0100
> From: Laura Creighton <lac at strakt.com>
> Subject: Re: [Edu-sig] re: Education Arcade
> To: "Kirby Urner" <urnerk at qwest.net>
> Cc: edu-sig at python.org, 'Arthur' <ajsiegel at optonline.net>
> Message-ID: <200312132256.hBDMuZ9D026648 at ratthing-b246.strakt.com>
> Content-Type: text/plain; charset=iso-8859-1
> 
> In a message of Sat, 13 Dec 2003 12:26:44 PST, "Kirby Urner" writes:
> >Imagine an arcade game wherein you're running for president of some
> country.
> >You have money concerns, issue concerns, perception concerns.  Donor
X
> >promises you big bucks, but not if you appear to side with Y in your
> >statements.  Different versions of a stump speech appear on screen.
You
> >have to decide which one you'll go with (advisors weigh in with pros
and
> >cons, perhaps audibly, using emotional language).  Money sources
appear
> or
> >dry up as a result of your choices.  In the meantime, your
competition is
> >doing likewise.  Negative ads appear, about your accepting funds from
> >Donor X.
> >
> 
> Kirby, this is an example of the problem.  When you teach children
> using a simulation, you teach them, in addition to everything else,
> to think within the system that the simulators were using.
> 
> So here we have, as unchallenged assumption -- it costs big bucks to
> become president.  The fix for that would be to pass campaign finance
> reform -- forbid spending beyond a certain amount.  Every version
> of those stump speeches come with the biases of the people who
> authored them.  Their results have the outcomes that somebody
> programmed in as well.  You have now taught the children how to
> use emotional language to criticise people and get them to change
> their positions based on how well you can manipulate them.  Your
> funding base, presumably, is either the White, Prosperous Middle
> class, or Big Business -- since you are campaign contribution based.
> Does your simulation reflect the fact that poor people do not vote
> in the USA?  Negative ads are now a fact of life .... it goes on,
> and on.
> 
> I don't want another generation of Americans conditioned to view the
> system as something that can not be changed, but can only be worked.
> I don't know what the best way to teach children how to question
> authority, recongnise opportunities, and strive to improve the society
> they are in, but I suspect that this is a step in precisely the wrong
> direction.
> 
> Laura
> 
> 
> 
> 
> ------------------------------
> 
> Message: 5
> Date: Sat, 13 Dec 2003 15:18:42 -0800
> From: "Kirby Urner" <urnerk at qwest.net>
> Subject: RE: [Edu-sig] Re: Python Programming: An Introduction
to
> 	ComputerScience
> To: "'John Zelle'" <john.zelle at wartburg.edu>
> Cc: edu-sig at python.org
> Message-ID: <E1AVJ1x-0007qS-84 at mail.python.org>
> Content-Type: text/plain;	charset="us-ascii"
> 
> 
> I appreciate your comments John.
> 
> One of many things I like about your book is how you jump into chaos
right
> away.
> 
> I think that's good on a number of levels, one being that people new
to
> computers might think they're entering a brave new world of
deterministic
> Laplacian engines and are perhaps just ten short chapters away from
being
> able to simulate the stock market or global weather.
> 
> However, as the chaos examples show, computer simulations are limited
by
> mathematical principles.  This is a useful lesson in humility.
> 
> I also really like the approach you've taken with Tkinter.
> 
> You're quite right that students are crazy about computer graphics and
> want
> this component.
> 
> I've used POV-Ray for similar reasons.
> 
> But whereas POV-Ray will spit out nice three dimensional polyhedra,
the 2D
> canvas has the advantage of doubling for a GUI-style interface, with
> buttons
> and other widgets.
> 
> In keeping it 2D, you're keeping it simple, and also connecting to the
> whole
> business of GUI design (e.g. your calculator example).
> 
> And since Tk is there if IDLE is there, your approach also minimizes
the
> need for extra software and installation.
> 
> Kirby
> 
> 
> 
> 
> 
> ------------------------------
> 
> Message: 6
> Date: Sun, 14 Dec 2003 00:21:11 +0100
> From: Laura Creighton <lac at strakt.com>
> Subject: Re: [Edu-sig] re: Python Programming: An Introduction to
> 	ComputerScience
> To: "Kirby Urner" <urnerk at qwest.net>
> Cc: 'Edu-sig' <edu-sig at python.org>
> Message-ID: <200312132321.hBDNLB6F026743 at ratthing-b246.strakt.com>
> Content-Type: text/plain; charset=iso-8859-1
> 
> In a message of Sat, 13 Dec 2003 13:09:10 PST, "Kirby Urner" writes:
> >
> >
> >> -----Original Message-----
> >> From: edu-sig-bounces at python.org
[mailto:edu-sig-bounces at python.org] On
> >> Behalf Of Jeffrey Elkner
> >> Sent: Saturday, December 13, 2003 12:28 PM
> >> To: Edu-sig
> >> Cc: Toby Donaldson
> >> Subject: Re: [Edu-sig] re: Python Programming: An Introduction to
> >> ComputerScience
> >>
> >> I completely agree with Toby on this.  I've already managed to make
> >> Python the CS1 language at Yorktown High, but it hasn't reached
beyond
> >> the hard core geek community.  If we really want to popularize it
to a
> >> broader audience, it needs to fill the space taken by VB (at the
high
> >> school) or what Logo used to do (at the middle school).
> >
> >I guess I don't see how Logo makes a good case.  It never went
anywhere m
> >uch
> >beyond middle school.  No Hubble stuff is done in Logo.
> >
> >I guess my question is, what's being used outside the "hard core geek
> >community" that CS1 doesn't reach?  VB?  Or is it just that
programming
> >itself is still not a very widespread activity, using any language?
> 
> I think the second.
> 
> >
> >In my view, we need more programming in the mathematics curriculum,
which
> >means recognizing that writing programs is likewise a way of writing
> >mathematics. Or, more accurately, I'd say both kinds of writing are
> similar
> >kinds of symbolic activity which deserve a prime spot in K-12
education.
> >
> >In the math curriculum, the real competition is not some other
language,
> >but
> >calculators (I guess the TI programming language might count -- but
my
> >impression is more HS math teachers than students actually bother
with th
> >e
> >programming part).
> >
> >Numeracy, the equivalent of literacy with regard to prose and poetry,
> >involves programming, mathematics, data visualizations, puzzle
solving,
> >logic, simulations, and other such.  Numeracy and literacy connect at
> many
> >levels.
> >
> >Kirby
> 
> I think that a problem we have is that programming is seen to be tied
to
> math, and numeracy, (as is problem solving in general) rather that
> literacy, and the arts and humanities in general.  I think that we
> could make a tremendous push for the number of people who are
programming
> at all if we made courses on 'data mining for the humanities' and the
> like.  How to write programs to take the information from some website
> and do something useful with it.  The problem I see when teaching
> non-technical people how to program, is how little their expectation
> of 'what programming would be good for' has to do with the sort of
> problems that they have in their lives.  But I have a small following
> of 'grandmothers who have taught themselves some python'.  They needed
> a computer program to take a list of their friends and then make
> mime attatchments of the digital pictures they had made of their
> grandchildren, and mail them to everybody on their mailing list
> without having to mouse click and do things by hand, which takes
hours.
> But not too many non-nerds know that programming is good for
repetative
> tasks like this.
> 
> Laura
> 
> 
> 
> ------------------------------
> 
> Message: 7
> Date: Sun, 14 Dec 2003 00:32:35 +0100
> From: Laura Creighton <lac at strakt.com>
> Subject: Re: [Edu-sig] re: Education Arcade
> To: Jim Harrison <jhrsn at pitt.edu>
> Cc: edu-sig at python.org
> Message-ID: <200312132332.hBDNWZSg026815 at ratthing-b246.strakt.com>
> Content-Type: text/plain; charset=iso-8859-1
> 
> In a message of Sat, 13 Dec 2003 16:14:38 EST, Jim Harrison writes:
> >
> >And I don't buy the machine:power/kid:schmuck scenario. When kids can
> >manipulate a simulation to produce a result, they feel empowered. If
the
> >result doesn't honor the parameters of the simulation, the kids
> immediately
> >label the developer/machine "lame" -- not themselves.
> >
> >Jim Harrison
> >Univ. of Pittsburgh
> 
> This may sometimes be a problem.  There is a difference between 'being
> empowered' and 'feeling empowered'.  Some studies of children who
> 'play video games too much' indicate that they do this is because they
> like feeling empowered -- and it feels better to be the Pokemon
> champion than a mediocre student.
> 
> Laura
> 
> 
> 
> 
> 
> 
> ------------------------------
> 
> _______________________________________________
> Edu-sig mailing list
> Edu-sig at python.org
> http://mail.python.org/mailman/listinfo/edu-sig
> 
> 
> End of Edu-sig Digest, Vol 5, Issue 14
> **************************************





More information about the Edu-sig mailing list