Homework help requested (not what you think!)

Joshua Landau joshua at landau.ws
Wed Jul 17 04:33:26 EDT 2013


On 16 July 2013 23:43, John Ladasky <john_ladasky at sbcglobal.net> wrote:
>
> Well, a few other parents caught wind of what I was doing with my son, and they asked me whether I could tutor their kids, too.  I accepted the jobs (for pay, actually).
>
> The kids all claim to be interested.  They all want to write the next great 3D video game.  Thus, I'm a little surprised that the kids don't actually try to sit down and code without me prompting them.  I think that they're disappointed when I show them how much they have to understand just to write a program that plays Tic Tac Toe.
>
> Where programming is concerned, I'm an autodidact.  I started programming when I was twelve, with little more guidance than the Applesoft Basic manual and the occasional issue of Byte Magazine.  I hacked away.  Over the years, I have acquired a working knowledge of BASIC, 6502 assembly language, Pascal, C, and finally Python (my favorite).  If I knew how to impart a love of experimentation to my students, I would do that.
>
> One kid looks like he's ready to forge ahead.  In the mean time, one parent has recognized his son's lack of independence, and has asked me to assign programming homework.  I hope it doesn't kill the kid's enthusiasm, but I'm willing to try it.
>
> So, what I am seeking are suggestions for programming assignments that I can give to brand-new students of Python.  Please keep in mind that none of them are even up to the task of a simple algorithm like Bubble Sort -- at least, not yet.


As probably the youngest regular on this list (still not a kid any
more though, as much as I would like to be) it's always been my
experience that if you see someone young who says "I'm really
interested in how to program!" they already either know a little (or a
lot) or they're probably somewhat deluded. Programming's so easy to
learn solo that if they haven't at least tried, they're just not as
interested as they say ;).

For homework I actually recommend reading assignments. Something that
gets you straight there. When I taught a few people (back not that
long ago to A-level [UK], once-a week lunchtime things) the first
thing everyone went through were these:

https://groups.google.com/forum/#!category-topic/learn-how-to-program---matthew-arnold/help-for-lesson-1/cKy43xj56y4
https://groups.google.com/forum/#!category-topic/learn-how-to-program---matthew-arnold/help-for-lesson-2/iR6pMtsgFjA

Note that I rather quickly stopped using the forum above, as with
https://sites.google.com/site/learnhowtoprogram/, which I only really
used to host code we needed (I got too lazy to update the rest,
basically), so there's nothing else woth checking. I give you 100%
free permission to steal anything of mine from those links, though.

I'm no teaching expert, but these seemed to help people get the idea.
The basic concept is that before you learn to write, you learn to
read. If you give them well-documented (like, every line is
documentation¹) code or something like the duo of links I posted above
it will probably be a lot more meaningful than asking them to do
something trivial they already know.

I hear from a lot of people over teh netz that they learnt how to code
from reading OSS. I personally didn't do most of my learning that way,
but it doesn't mean that it doesn't work. The person from my lessons
who learnt the most was the guy who of his own choice took some of the
code we were working on and changed it at home without prompting to do
something else. At the beginning there was no way he could write code
that was marginally useful, and thus doing so would have been
massively boring and discouraging -- giving him a platform he could
work on made it much easier to do something useful.


I hope I inspired a few thoughts, I'm not giving you the One True Way
but these ideas should at least be blocks you can build with.

¹ See https://sites.google.com/site/learnhowtoprogram/Snake.py (which
might have a purposeful bug in there, it's been a small while since I last
ran it). That was for almost-new coders, with the aim of giving them
something they originally could read but not really understand, and by
gradually editing the code together they ended up getting it.



More information about the Python-list mailing list