Chronology Current Month Current Thread Current Date
[Year List] [Month List (current year)] [Date Index] [Thread Index] [Thread Prev] [Thread Next] [Date Prev] [Date Next]

Re: [Phys-L] computer programming for kids



On 06/26/2013 11:33 AM, Larry Smith wrote:

Should every kid learn how to program computers in public schools?

Yes. Well, maybe 99% of the kids.

I assume this means /creating/ programs. In contrast, using
programs that are already written begins in kindergarten nowadays.

In what grade(s)?

You can do a lot in fifth grade, including the scenarios in
items (2a) and (2b) below. Then you build on top of that as
you go along.

You can do a little bit starting in first grade, but you work
a lot harder and accomplish less. And it's not obvious to me
how much of it sticks.

Using what language(s)?

1) That's a moving target. I expect better languages to become
available over time. This should /not/ be overly standardized.

2a) As of right now, one good choice is gamemaker. Slightly
restricted versions are available for free.

For those who are not familiar with gamemaker: Think of labview.
Gamemaker has a similar drag-and-drop graphical interface.

I know a lot of smart people who prefer imperative languages
such as C++ and despise declarative languages such as spreadsheets
and drag-and-drop things like labview and gamemaker.

However, in my experience, grade-school kids are happy with
the drag-and-drop approach ... but run away screaming if you
try to get them to read -- much less write -- imperative code.

Gamemaker is easy to use, yet very much more sophisticated than
a spreadsheet. For starters, it is 100% object-oriented.

Another advantage is that kids are motivated to write games.
If you think that computer programming is about doing
mathematical calculations, you've lost 99.9% of the audience
before you begin.

2b) Another good choice involves building Lego robots and
programming them to do things. This includes sensors for
input and actuators for output, so that the robot is
interactive in real time.

Again, there is a drag-and-drop language.

The hardware for this is not cheap, but it is a big win.
Kids love robots.

2c) Everybody should know how to use a spreadsheet. Some
people don't consider this programming at all, but I do.
It's a way for people to tell the computer to do something.
Again, it's a declarative programming model, not an
imperative programming model, but that's fine with me.

============

Let me answer an important question that was not asked: The
problem is not in teaching the 5th-grade students how to use
gamemaker. Oftentimes, the main problem is teaching the
5th-grade teacher how to do it. The teachers are much more
set in their ways, and much more phobic. If you talk about
instantiating an object, and letting the instances run
concurrently, the kids are fine with that, but the teacher
runs away screaming, in some cases.

Also, to address another question that was not asked: In
high school and in "traditional" colleges, the practice is
to split things up by topic: math over here, physics over
there, and computers somewhere else. In grade school and
in some progressive colleges (e.g. Princeton), things are
much more integrated.

It would be a bad idea to make computer programming separate
from other stuff in grade school. It needs to be integrated.
Take basically every "unit" there is and see if there is some
way that a computer makes it easier or better. I'm not
totally opposed to having a "unit" on robots, but the less
of this the better.

=======================================

What other technology skills should kids learn in public schools?

Other than, say, EVERYTHING?

You'd be amazed the number of kids that graduate from grade
school without ever having done anything with pulleys, or
lenses, or magnets, or chemicals, or circuits, or wrenches,
...... These things are not high-tech, but low-tech is
better than no-tech.

This is another example of how the current crop of tests are
poisoning the system. The test consists of words on paper --
not any actual activities with actual things -- so all the
teaching focuses on learning /words/. The idea of bringing
actual pulleys, lenses, magnets, chemicals, tools, etc. to
class would never occur to some people.