teaching OO

Rob Snyder arkham at gmail.com
Wed Nov 24 15:29:10 CET 2004

Gabriel Zachmann wrote:

> This post is not strictly Python-specific, still
> I would like to learn other university teachers' opinion.
> Currently, I'm teaching "introduction to OO programming" at the undergrad
> level. My syllabus this semester consists of a bit of Python (as an
> example of a scripting language) and C++ (as an example of a compiled
> language). With C++, I go all the way up to meta-programming.
> My question now is: do you think I should switch over to Python completely
> (next time), and dump all the interesting issues involved in C++'s virtual
> classes, overloading, and templates? (In Python, all of that would just
> disappear ... ;-) )
> (The opinion of the people on this NG might well be a little bit biased
> towards Python, but that's ok ;-).)
> Interested in all kinds of thoughts.
> Best regards,
> Gabriel.

Gabriel -

I was in a similar position, and decided to make the change over to Python
completely. Key for me was that I knew these same students, at some point
in time, would *also* being taking several courses that involved C++. In
other words, they didn't need this course to cover C++, they only needed it
to get introduced to OO programming, and by switching to Python, I gave
them an environment to learn that they could really get their heads around.

If the students wouldn't be getting immersed in C++ otherwise, I don't think
I would have made the switch, and may have continued not using any Python
at all.

Python, IMHO, is an excellent teaching language. In my observations, by
switching to Python for the OO concepts class, I'd say we easily covered
50% more material in the same amount of time. 

As for the interesting C++ issues, those same students were able to pick
those concepts up quickly in their later classes. "Overloading", for
example, was a pretty simple concept to grasp for people who had previously
spent a whole semester heads down learning OO. 


More information about the Python-list mailing list