[Edu-sig] Webster Van Robot

Steve Howell showell30 at yahoo.com
Tue Sep 9 04:07:56 CEST 2008


Hi Kirby,

Thanks for this response, and the follow up as well.  See my comments and questions inline.

Thanks,

Steve

--- On Mon, 9/8/08, kirby urner <kirby.urner at gmail.com> wrote:

> From: kirby urner <kirby.urner at gmail.com>
> 
> Our use of 'procedural' may confuse some students
> as OO syntax is
> eminently step-by-step with flow of control and all the
> rest of it,
> very recognizably procedural the way I learned the term,
> with or
> without the explicit dot notation (which is difficult to
> hide in real
> Python).
>

Agreed that 'procedural' and 'OO' have a lot more common than different.  I didn't mean to suggest in any way that the concepts were orthogonal.

Python does have plenty of builtins, where the target is either implicit or supplied as a parameter:

http://docs.python.org/lib/built-in-funcs.html

Perhaps the "print" statement would be the best example in Python of conciseness winning out over explicitness.  Java is perhaps the other extreme, with its "system.out.println" idiom.
 
> I'm inclined to *not* see 'procedural' and
> 'object oriented' as
> orthogonal concepts i.e. they mix together.  Where I do see
> a big
> dichotomy is in whether one is expected to define new
> classes oneself,
> or simply use the ones provided.
> 

I agree with the dichotomy.  There's some middle ground too, where students can alter or extend existing classes before they write their own.

> Apparently early versions of Visual Basic were "read
> only" in terms of
> not having a class defining infrastructure, merely giving
> developers
> access to canned OCX objects (instances) with canned APIs,
> but I could
> be wrong, that's not a track I've ever followed,
> even to this very
> day.
>

Most of us learn to read before we write, so I'm not so sure it's necessarily a bad thing to introduce OO to students as consumers before they become producers.  On the other hand, I totally understand your desire to have students write their own objects from the beginning.

What's an example of a small Python program that your students have written that uses objects that they built?  Do they start with model/view/controller objects or otherwise?

 
> As I mention in my Chicago talk, I tell my students
> "I've never heard
> of procedural programming, it gives me the creeps" but
> that's just a
> rhetorical device to get the ball rolling, as I start with
> dot
> notation immediately, within the first 10 minutes.  

Do students ever get confused by the dot notation, or at least frustrated with the wordiness?

> But
> that's because
> I'm teaching core Python, not another language
> *implemented* in core
> Python.  These aren't little children.
> 

I think it's great that you have students who are ready to jump right into core Python, but I don't think you have to be a little child to benefit from small languages like Karel, Logo, and various cousins.   When I was in college, lots of non-CS students got exposed to programming through Karel and got a lot out of it.  That was nearly 20 years ago, so I'm sure today's generation comes in with a little more sophistication, but I still see the benefit of starting with a language with very limited syntax.

Even if you have a bit of programming background coming into a small language, it can still be a really refreshing exercise to work within its limitations.  One of the funnest programs I ever wrote was to have Karel determine whether his beeper world was palindromic.  Try to do that without variables!

Getting back to little children, though, I do think there will come a day where smaller children learn to program as easily as they learn reading, writing, arithmetic, music, etc.






More information about the Edu-sig mailing list