[Tutor] Python as Teaching Language

Keith Winston keithwins at gmail.com
Sun Jan 19 20:18:54 CET 2014


On Sun, Jan 19, 2014 at 11:55 AM, Alan Gauld <alan.gauld at btinternet.com> wrote:
> It has reached the point that I'm back to looking for a new teaching
> language. In Python 3 the decision has clearly been made to focus on
> supporting Python's role as a professional software engineering language
> at the expense of being a successor to ABC or for use in CP4E etc.
> That's a fair enough decision but it does mean Python is no longer the
> easiest option for non Comp Sci beginners. It's not worse than the others
> but it's no longer clearly superior. (IMHO at least! )
>
> But what else is there? that's the problem.... :-(

Hi Alan, since this is off-topic from it's original thread, but I
wanted to respond to it, I popped it into a new thread, I hope you
don't mind (original was subject "iterators").

I can imagine what you mean about a teaching language, and while I
don't 1) teach CS or 2) know Python like you do... AND I don't know
the alternatives... it still feels like the cleanest, most
user-friendly language I've ever worked with. Anyway, there's
something to be said for letting novices play with real tools: instead
of coming to the end of their one-semester computer class feeling like
they just played with legos, they can feel like they got some (minor)
feel for building a house.

An interesting question is, what's the goal (for those students,
probably the majority in a required comp sci course) who aren't going
to do a lot of programming in the future ? I can think of a few: help
people expand/develop/reflect on their ability to think in various
ways; depressurize fear around programming/computers; give them a leg
up in approaching the vast range of computer-supported tools in many
fields... Anyway, I'm sorta loving this language, and it feels like a
decent way "in" to all of those goals.

There are two caveats: one is, without this tutor list (and to a
lesser extent, perhaps because I've relied on this so much), other
online resources (stack overflow, the Python IRC channels, etc), it
would be much harder to make sense of. But those are there, and don't
seem in immediate danger of disappearing.

And the second... the documentation. I really want to love the
documentation, but I can't. I can't maneuver through it hardly at all
(if I'm trying to find something in the documentation, I almost always
search it from Google), it often doesn't give any examples in the
places I want them, and assumes an understanding I don't have at a
given moment. I'm SO GRATEFUL to all the people who have contributed
to the language, including the documentation, and don't imagine I
could do better, I just notice that I haven't figured out how to make
it work for me.

Now, to a large degree this is not the documentations' fault: I forget
things I just read 10s ago, and then I'll charge off to learn a topic
far more advanced than I'm reasonably ready for. I have an iterative
learning process which involves not understanding a disconcerting
amount of what's in front of me. I don't actually think it's optimal,
but I literally can't stand (what feels like) the slow, plodding
forward approach that is the alternative generally offered. I think
there is often a mismatch between teaching structures/approaches, and
peoples (very personal, often ill-understood and ill-developed)
learning styles.

The other thing I wonder about is how to make the learning process
more interactive/social: that is, so many of the questions that (even
more novice than me) people bring here are things like error statement
meanings, etc. In many cases IMO, the first 10 minutes of frustration
around something like that can be enough to leave a lasting bad taste.
I've gotten some very fast responses around here, and immediate ones
on the IRC (which I've only used a little): I believe quick feedback
to be crucial to the learning process, and yet we are often trained,
in school and elsewhere, to smoulder in frustration around things we
don't know yet, I believe (or to just give up and feel stupid)... I
don't know whether social platforms will translate to a greater
readiness to seek help in order to really learn, or just to learn to
fill in the blanks faster/"cheat" better. Teaching is hard.

And a last note on feedback: having the interpreter available is a
definite plus for Python, though learning to disassemble one's
confusion into little pieces that you can test methodically is hard.
But another good skill...

Sorry for the length.

Keith


More information about the Tutor mailing list