Python in High School

M

marion

I'm a high school computer teacher, and I'm starting a series of
programming courses next year (disguised as "game development" classes
to capture more interest). The first year will be a gentle
introduction to programming, leading to two more years of advanced
topics.

I was initially thinking about doing the first year in Flash/
ActionScript, and the later years in Java. My reasoning is that Flash
has the advantage of giving a quick payoff to keep the students
interested while I sneak in some OOP concepts through ActionScript.
Once they've gotten a decent grounding there, they move on to Java for
some more heavy-duty programming.

I've never used Python, but I keep hearing enough good stuff about it
to make me curious.

So -- would Python be a good fit for these classes? Could it equal
Java as the later heavy-duty language? Does it have enough quickly-
accessible sparklies to unseat Flash?

I want to believe. Evangelize away.

I am a strong support of teaching programming in middle and high
school. Kids have the potential of being more than just passive
consumers of other programmers work. That is best illustrated by the
growth of game mod'rs writing their own levels for computer games.

I think I agree with all of the positive, supporting posts about
Python. I would just like to add that Python (and PyGame) are open
source and so your students can download it at home and have fun
exploring it on their own time (at their own pace). I think that is a
real positive.
 
A

ajaksu

However, once I start teaching him variables, expressions, loops, and
what not, I found that (by surprise) he had great difficulties
catching on.  Not soon after that, we had to quit.

This makes me curious: how much of videogamer are you? And your son?

I ask that because when I think about teaching programming to young
kids, I imagine using terms they know from gaming, like "save
slots" (variables/names), "memory cards" (containers),
"combos" (functions, loops), "life meters" (counters), "next
level" (conditionals, iteration, loops), "teammates" (helper
functions), "character classes" and "characters" (class and
instances), "confirm/cancel" (conditionals), etc.

But I've never really tried to put all those together and find a test
subject, so I'd like to know how fluent in this lingo you both were so
I can assess my pseudo-didatic approach by proxy :)

Regards,
Daniel
 
J

John Henry

This makes me curious: how much of videogamer are you? And your son?

You mean you are able to find a kid that isn't a videogamer these
days? <grin>

My level of videogame went as far as Black Hawk Down and that was
about it. I find it hard to comprehand why they like to do Gaiter
Hero III. With Counter Strike, at least you have some interesting
scene to look at. But then again, I am not a kid anymore (not by a
long stretch).

I ask that because when I think about teaching programming to young
kids, I imagine using terms they know from gaming, like "save
slots" (variables/names), "memory cards" (containers),
"combos" (functions, loops), "life meters" (counters), "next
level" (conditionals, iteration, loops), "teammates" (helper
functions), "character classes" and "characters" (class and
instances), "confirm/cancel" (conditionals), etc.

But I've never really tried to put all those together and find a test
subject, so I'd like to know how fluent in this lingo you both were so
I can assess my pseudo-didatic approach by proxy :)

Regards,
Daniel

Well, I can't say that I am a child education expert, I am only
commenting base on my last several years of volunteering activities.
I've found that whenever there is a visual approach to a topic, I can
hold their attention far longer. Case in point, rather than asking to
read building instructions for a Lego robot, I gave them access to
Leocad: a CAD program that allow them to "put together" a robot
virtually. They can spin the virtual robot around, break-up the
pieces virtually, and put them the robot virtually. Then they build
the real thing from there. When they're done, they can made their
product presentation using 3-D renderization programs (VPython stuff,
I can see now). With this approach, I was able to hold the attentions
of the middle school kids - even a couple of 4th graders. They were
able to "program" their robots using the Lego Mindstorm ICONic
programming language - and later onto the Labview based Robolab
language. I think the color, the sound, the icons, videos of these
visual programming languages means a lot to kids. I wish there is a
visual Python - much like the Robolab/Labview approach to programming.

Several of the kids continued to stay involved with our activities for
several years. I was able to teach them "programming" without really
really teaching them "programming". I hope they do well in high
school. But then they told me the first "computer programming" class
at the local high school will be teaching Office, Flash, ...

Of the 18 middle-schools in our district, ours was the only one that
taught the kids about computer applications and "programming" early.
Unfortunately, due to budget cut, they had no choice but to cut that
class (lack of staff). And without a teacher sponsoring our
activities, my volunteering activity is also coming to a close.

But I sure learned a lot about how kids learn (and can't learn).
 
J

John Henry

What I mean is something like; all the information at a certain
abstraction level is visible on one screen or one piece of paper,
and not is available through multiple screen / multiple right-clicks
etc. A wizard in general is an example of strong non-flatness of
information (try adding a mail-account in Thunderbird, this could
easily be put on 1 page, which clearly would give a much better overview).

cheers,
Stef

In that sense, it would appear to me Robolab/Labview would do exactly
that. Most of the programs I taught the kids to do fits on one
screen.

I think what you are doing is very interesting because Robolab does a
fair amount of what I am seeing from your screen shots (for simple
applications anyway). One day when you finish with the program, may
be I can try it on my younger kid.
 
B

Bruno Desthuilliers

(e-mail address removed) a écrit :
(snip)
I think I agree with all of the positive, supporting posts about
Python. I would just like to add that Python (and PyGame) are open
source

And run on most common platforms AFAIK.
and so your students can download it at home and have fun
exploring it on their own time (at their own pace). I think that is a
real positive.

Indeed.
 
A

Aahz

There are at least 3 books about game programming in python:
<http://www.amazon.com/Game-Programming-Line-Express-Learning/dp/0470068221>

STAY AWAY

Speaking as half of the tech-editing team for this book (the formal title
is _Game Programming: The L Line, The Express Line to Learning_), I
recommend staying as far as possible from this book. It does an okay job
of teaching pygame, but it does a poor job of teaching Python (for
example, it does not mention dicts) and therefore has a number of flaws
from a pedagogical perspective, *plus* there are some bugs in the code.
 
J

Jan Claeys

Op Thu, 03 Apr 2008 00:06:34 -0700, schreef Dennis Lee Bieber:
Could it be that they are closer to being high-level assembly
languages meant to get close to the hardware (especially of the PDP
series that C originated on), whereas Pascal was designed to just be a
language meant for teaching algorithms and programming, not originally
intended for production efforts?

Pointers in Borland's Pascal (and FreePascal) are bare machine pointers,
with optional typing for the referenced value; I've never seen anything
you could do with C pointers that you couldn't do with Borland Pascal
pointers. (And I think the reason why pointers in C looked complicated
is that the C syntax for pointers is inconsistent...)
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,744
Messages
2,569,482
Members
44,900
Latest member
Nell636132

Latest Threads

Top