[Edu-sig] General Programming Education

A. Jorge Garcia calcpage at aol.com
Fri Jul 15 20:06:43 CEST 2011

Richard Enbody <enbody at cse.msu.edu> wrote:

We do it that way. Use lots of methods for strings, lists and dictionaries effectively "use objects first".  Later we teach how to build classes.  We switched our CS1 to Python back in 2007 and that approach has worked well to prepare our students for CS2 in C++.

enbody at cse.msu.edu
"The Practice of Computing using Python" by Punch & Enbody

On 7/15/11 12:00 AM, Carl Cerecke wrote: 

To the 'Pfff, but python sucks. It's too simple' crowd, you can pretty much ignore them - that or get some code off code.activestate.com that does something gnarly to show off. I've even got a recipe on there, but it's probably not the best one for Java programmers (or python programmers, come to think of it :-)

As for teaching programming, I recommend staying away from classes at the start, but introducing objects early. Students can easily understand the idea of objects and methods before learning about classes, because lists, strings, dicts, etc are objects with methods. Once they are familiar with built in classes/types, then you can introduce custom types (classes) to them.

I've just had the first week of a semester teaching python to stage 1 Computer Science students, and that's how we're doing it (and have done it in the past) with reasonably good success.


On 15 July 2011 15:20, Corey Richardson <kb1pkl at aim.com> wrote:

I was discussing programing with some peers at an MIT summer program, and
many of them came from the "JAVA AND OOP!" type of places to the point that,
when the opportunity came up for them to learn the basics in a seminar, a
few said "Pfff, but python sucks. It's too simple". Is it just me, or should
simplicity be a Good Thing? </rant>

But, my real question to you educators is, which paradigm do you use when
first teaching programming, and why? My peers cite OOP because, frankly,
it's the only thing they've learned and have heard that e.g. procedural
programming is bad. Personally, I like to use procedural (this is in
Python, of course) for as long as possible. I don't even mention objects
for a while, they aren't necessary or even desirable in many instances.
I love using games as a project, and that's when I swoop in and bring up
objects. My segue are usually the monsters of a text based game. I don't
have them design an object for everything because it introduces complexity
without benefit. Of course, it's not as flexible/correct a program as it
could be, but it's a nice slow ease into OOP. But it certainly isn't the
ONLY paradigm out there, and certainly not the most useful for everything.

Any other insights?
Corey Richardson
 "Those who deny freedom to others, deserve it not for themselves"
    -- Abraham Lincoln

Edu-sig mailing list
Edu-sig at python.org

_______________________________________________ Edu-sig mailing list Edu-sig at python.org http://mail.python.org/mailman/listinfo/edu-sig 

We have a year of Python and Discrete Math using SAGE as an intro to programming. We follow this with AP Computer Science and Java. In Computer Math we don't address objects. In Computer Science we do "objects first!"
A. Jorge Garcia
Applied Math and CompSci
Sent via DROID on Verizon Wireless
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/edu-sig/attachments/20110715/1749ab98/attachment-0001.html>

More information about the Edu-sig mailing list