[Edu-sig] Developments on the Urner front

John Zelle john.zelle at wartburg.edu
Thu Oct 14 21:44:39 CEST 2004


Kirby,

Thanks for this retrospective. I've also talked to Jim a little bit 
about this event (wish I could have been there to meet you). I have a 
couple comments below.

Kirby Urner wrote:

>Couple of things:
>
>Jim Leisy, publisher of John Zelle's intro to programming college and/or
>high school text, invited me to Willamette University last Friday to observe
>(and contribute to) a presentation on Python for the CS track.
>
>The audience consisted of CS teachers from around the northwest region.  A
>prof from Idaho (Lewis-Clark College) shared her PowerPoint about Python.
>She'd taught many languages over the years, and had done the Scheme
>intensive at Rice.  However, after taking Zelle's workshop, she was
>persuaded to go with Python and she's never looked back.  
>  
>
This is a consistent comment from those who have tried Python in CS1. 
Once they try it, they would never go back to Java, C++, or whatever.

>Retention (keeping would-be CS majors from dropping out) is now less of a
>problem (students enjoy programming more), and those taking her course to
>fulfill requirements of another major (e.g. science, math, engineering) come
>away more satisfied and equipped to move forward.
>
>  
>
Again, consistent with our experience here.

>One thing I learned during the presentation was that accreditation in some
>curricula requires at least 3 years with a specific language (?).  A prof
>from Texas said the only reason they were still using Java is that Zelle's
>text didn't span a full three years.  
>
>  
>
I don't understand this comment. I am familiar with the ABET CSAB  CS 
accreditation criteria and the ACM model curriculum, and I cannot find 
anything anywhere that even hints at the need for a three course 
sequence all in the same language. The CSAB criteria state: "Students 
must be exposed to a variety of programming languages and systems and 
must become proficient in at least one higher-level language." Perhaps 
some people equate "proficiency" with a three course sequence, but that 
is not explicitly stated anywhere that I can find. For a complex 
language like C++, proficiency might require that much study, for Python 
one to two courses is sufficient.

>Jim was a little surprised at this implied market, as his assumption has
>been "use Python as an intro, then switch to a statically typed system
>language for balance."  I agree that more than one language, including
>exposure to compiled, statically typed languages, should be a part of any CS
>sequence.
>
>  
>
We are looking at various models for CS1, CS2 and subsequent classes. I 
can see a case for doing the first two courses explicitly in Python or 
for switching to C++ or Java somewhere in CS2. I see no reason at all 
for a full three course sequence in a single language. Studying multiple 
languages helps students learn what is universal to computation and what 
is just syntax.

>In any case, it was a productive presentation, with Jim giving a free copy
>of Zelle's text to everyone present.  A few of the profs in the audience
>were already using Python and spoke highly of it.  I fielded a few questions
>from the sidelines, mostly relating to graphics.  
>
>One guy objected that Python might be fine for production programming, but
>in the academic context, having procedural, functional and object-oriented
>paradigms all mixed together lacked rigor.  I assured people that the
>object-oriented paradigm (everything is an object) could be taken as a base
>paradigm, with the others developed on top of it (even in procedural code,
>the prevalence of dot notation speaks to the omnipresence of objects).
>
>  
>
This is a hoot. Now Python is getting flack for being a production 
language, but not academic enough? For years, I've had to fight the 
opposite argument. I appreciate your being able to provide a good answer 
here. Clearly Python is designed from the gound up to be an OO language. 
The fact that you can also illustrate other styles is a plus! That is 
also one of the strengths of a language like Scheme or Lisp--that it can 
illustrate multiple paradigms. I've never heard anyone complain that 
Scheme isn't "academically rigorous." :-)

>The presenter transitions to C++ in the second year.  She said that whereas
>starting with C++ or even Java tended to promote burnout, once students had
>done Python for a year, C++ was no longer all that difficult -- annoying,
>yes, but not that difficult.
>  
>
Ditto our experience with Java in CS2.

>The other thing:  I'm developing a "numeracy text" which demonstrates how
>I'd like to see things weaving together in the early years (this text might
>start to be relevant in 8th grade or so -- depends on the kid obviously).  
>
>Python is incorporated.  I've written six chapters.  A notable "omission" is
>that I'm always referring to off stage computer games and simulations that
>don't actually exist yet (or do, but I'm not providing them).  This is a way
>of enlisting the reader's imagination, and a collaboration strategy -- more
>than one implementation of any exercise might be offered.
>
>Feedback welcome:
>http://www.4dsolutions.net/ocn/numeracy101.pdf -- I'll be adding more text,
>improving existing text, as time permits.
>
>  
>
Keep up the good work, Kirby!




More information about the Edu-sig mailing list