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 <http://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 <mailto: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 <mailto: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
_______________________________________________
Edu-sig mailing list
Edu-sig@python.org
http://mail.python.org/mailman/listinfo/edu-sig

Reply via email to