[Edu-sig] Brainstorming and a neat link

Kevin & Masako Ollivier guess-who@kevin-masako.com
Wed, 13 Jun 2001 23:45:01 -0400


Hello everyone,

I'm new to this group, so forgive me if I bring up topics already addressed
here or babble on a bit! I've signed up because I'm a programmer who has
become addicted to Python and think it's a great introductory programming
language. I really believe Guido van Rossum is right that it is an ideal
first programming language, not just because it's clean code but because at
the conceptual level it's abstract enough that things just work like they
should. I've often written a Python script only to think "I'm done?" because
I'm so used to sweating all the low-level details or dealing with cryptic
syntax errors.

I also think Guido is right in saying that programming is a skills everyone
should learn. I know colleagues who spend much of their time doing
repetitive tasks, taking hours or days to do something that a computer could
do in seconds or minutes. The problem is, of course, that most of the "learn
programming" books out there are not really that good, IMHO. They may teach
you to write code in C/Java/Python but they don't teach you how to design a
program. They don't teach you how to abstract a problem and break it down;
in short, they don't teach you to "think like a programmer." In my
experience, learning programming that way can take years. You have to just
keep writing bad programs over and over, picking up small lessons about good
program design from each failure. It's hard to recommend programming to a
colleague or friend knowing it will take them so long to learn how to do it.
I think there has to be a better way.

So first I'd like to throw out a couple questions, if you don't mind me
picking your collective minds:

1) Are there any "best practices" about how to teach programming? What
works, and what doesn't?

2) I've read the CP4E project is dormant. Is there any interest in the
Python community for reviving this, or have suitable replacement projects
sprung up?

3) Is there anyone out there who has had experience teaching Python, or even
another language for that matter? I'd be interested in knowing if people
agree with the points I mentioned above.

Since I've taken your time and asked these questions, I might as well give
something back. =) Below is a link to, IMHO, a very interesting Introductory
C++ Programming course. The entire course is designed as a simulation, where
the learner assumes the role of an employee at a new programming company and
receives tasks that start out easy and get more and more difficult. The
learner receive "emails" from the "boss" giving them their assignment. The
interesting thing is that there is a completely integrated help system. If
the learner doesn't feel comfortable with completing a task, the software
will point the learner to relevant documents and examples to help get them
up to speed. I haven't taken the course (it is quite expensive!) but it
certainly seems an innovative way of teaching programming. I thought you all
may like to see it. The link is:

http://www.as.columbia.edu/exec/guest/courses/course_icplus_overview.cfm

You can take a "tour" of the course environment by clicking on "view course
demonstration". Worth a click, IMO.

Sorry to bother you all with so many questions on my first post, and thanks
for taking the time out to read this!

Kevin Ollivier