[TOS] Teaching Programming in High School
Mel Chua
mel at redhat.com
Wed Feb 17 13:58:25 UTC 2010
> BTW: In our first meeting I mentioned to him the
> Arduino boards and he was not familiar with them.
> He has been using PIC processors for a while it
> seems, but was not very happy with the fact that
> their software has restrictive licenses.
The AVR uses ANSI standard C (so you can use gcc and make and your
normal good ol' FOSS toolchain) and might make a nice PIC alternative,
though it requires the same amount of extended concentration and
grit-your-teeth willingness to debug.
Processing and the Arduino are much easier to explain and get started
with. Ladyada has a nice Arduino tutorial at
http://www.ladyada.net/learn/arduino/, and Leigh Honeywell gave a talk
at OnLinux last year about using the Arduino to hack with even the
smallest of children - video at http://onlinux.ca/node/151. If you want
to bridge into hardware hacking, "Physical Computing" is a nice book.
But like Matt said, electronics can be Hard To Debug. (Heck, software
can be that way too, for that matter.) So making sure you test the setup
is important - or maybe have the "master setup" itself at school, and
the students doing their work on paper (so they have to think through
the design of the program) and able to borrow units to use at home (but
as a bonus, not as a standard expectation). One of my favorite
intro-to-programming books (The Little Schemer) doesn't need a computer
at all.
And a +1 to robots. Robots robots robots!
If you're trying for a "lift the hood" experience, maybe intro
programming is not the way to start, and the goal should be to motivate
students to take an intro programming class next - what if you taught
them how to find and modify the source code for programs they already use?
So, homework like "can you figure out how to make this Firefox menu say
"Cheeseburger" instead of "Options"? or "change the color of your racing
car from blue to red." Along the way, they'll have to learn to puzzle
their way through unfamiliar code, and you can point out "this is an
if-else statement, you may see it later in CS classes..." on-the-fly as
they encounter it and need to know it in order to figure stuff out, but
you don't have to worry about full topic coverage ("oh no we didn't get
to while loops").
Just thinking out loud.
--Mel
More information about the tos
mailing list