Python in High School

John Henry john106henry at hotmail.com
Wed Apr 2 17:04:45 EDT 2008


On Apr 2, 1:01 pm, John Henry <john106he... at hotmail.com> wrote:
> On Apr 1, 11:10 am, sprad <jsp... at gmail.com> wrote:
>
> > On Apr 1, 11:41 am, mdomans <mdom... at gmail.com> wrote:
>
> > > Python needs no evangelizing but I can tell you that it is a powerfull
> > > tool. I prefer to think that flash is rather visualization tool than
> > > programing language, and java needs a lot of typing and a lot of
> > > reading. On the other hand python is simple to read and write, can be
> > > debuged easily, is intuitive and saves a lot of time. It also supports
> > > batteries included policy and you can't get more OO than python.
>
> > One advantage of Flash is that we can have something moving on the
> > screen from day one, and add code to it piece by piece for things like
> > keyboard or mouse control, more and more complex physics, etc. Is
> > there an equivalent project in Python?
>
> I downloaded the "How to Think Like a Python Programmer" book and read
> it.  I think it's a fine reference book for the purpose you
> indicated.
>
> Here's my 2 cents on the subject.
>
> I had been a volunteer mentor to my son's middle school robotic team
> for several years and I have some experiences, therefore, in how kids
> react to "programming".  Granted, high school kids are "bigger kids" -
> but they are kids nevertheless.
>
> Last summer, I experimented teaching my own kid Python.  He was in 7th
> grade going onto 8th grade.  He was the main goto person for the
> robotic team and had no trouble learning the common applications such
> as the Microsoft Office suite, and had some experience in ICONic
> programming (Lego Mindstorm).  So, I tried to see what would happen if
> he tries to learn Python - using somewhat similar approach you are
> taking: start with something visually appealing on day one.  Instead
> of Flash, I used Pythoncard - a no-brainer Python GUI construction
> toolkit.  He was really excited seeing how easy it was to have tic-tae-
> toe type program up so easily (we are taking minutes - not hours) and
> was very interested and motivated to continue.  So far so good.
> 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.
>
> We - as adults - take many things for granted and sometimes don't
> remember, or don't understand how kids learn.  My experience tells me
> that in order to teach today's video game generation of kids, the
> approach really has to be entirely visual.  After I abandoned my
> attempt to teach my kid Python, I started them on Robolab - a
> simplified version of LabView and to my delight, they were able to
> cook up a few simple programs (like fibonacci series and so forth)
> without too much effort - although my own kid had some minor trouble
> understanding the concept of a container (LabView's version of a
> variable).
>
> I don't know if you have access to LabView or Robolab or similar
> packages but if you do, I would highly recommend those.  LabView is
> every bit as powerful, full-featured, and "real-life" as many of the
> other languages and I believe that kids will have a much easier time
> learning computer programming with it.
>
> And you are going to teach them Java?  Oh, please don't.  Let the
> colleges torture them.  :=)

BTW: I successfully taught them to program in machine language.  We
used lego parts to construct a psudo-turing machine with a 33 bit
register, and used Lego Mindstorm to do the programming.  It would
read the position of the "register" (input), perform an operation, and
outputs the answer.  To do that, they have to break down a set of 2
numbers into binary form (via pencil and paper), set the flip switches
(constructed w lego parts), hit a touch sensor to begin the
operation.  The robot would then read the position of the flip
switches (via light sensor), interpret the first bit (operator: add or
subtract), then interpret the next 32 bits as 2 numbers (I only
allowed them to use addition, shift, and loops in their program), do
the operation internally in decimal, convert the answer to binary, and
"display" the result (output) using those switches.  They take the
result - convert it back to decimal (via pencil and papger) and see
that the answer is indeed correct.  Wow!  My machine can add and
subtract!!!

They did all these without knowing that they learned the very basis of
all computer programming - they just had lots of fun doing it.




More information about the Python-list mailing list