Richard Enbody <enb...@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++.

-rich
enb...@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.

Cheers,
Carl.

On 15 July 2011 15:20, Corey Richardson <kb1...@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@python.org
http://mail.python.org/mailman/listinfo/edu-sig




_______________________________________________ Edu-sig mailing list 
Edu-sig@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!"
Thanx,
A. Jorge Garcia
Applied Math and CompSci
http://shadowfaxrant.blogspot.com
http://www.youtube.com/calcpage2009
Sent via DROID on Verizon Wireless
_______________________________________________
Edu-sig mailing list
Edu-sig@python.org
http://mail.python.org/mailman/listinfo/edu-sig

Reply via email to