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 02:33 PM, rjensen@ualberta.ca wrote:

I find that my children (junior high) are reluctant to put
pencil-to-paper to do math, either pure or applied. A friend of mine
is a programmer and admits that his lack of mathematical understanding
hinders his programming abilities. My chemistry students say the same
thing.

How are computers in the classroom helping students understand the
LANGUAGE of mathematics and increase their proficiency at applying it?

That's an excellent question in spirit, provided we don't
take it too literally.

The smart-alec literal answer is that a computer in the
classroom will not -- by itself -- promote mathematical
understanding, for the same reason that a chalkboard --
by itself -- will not. It's a tool, and everything
depends on how you use it.

Returning to non-smart-alec mode, I assume the intended
question was more like this: Suppose we want to promote
mathematical understanding, and we have various resources
including chalkboards and computers ... how should we
proceed?

I'm a big fan of the indirect approach, also known as "bait
and switch".

Step 1 is to get each student to write a simple game. No
two games will be the same.

Then they want to make their games better. If I am doing
the teaching, I can make some suggestions. There is a wide
class of games that benefit from having some randomness,
such as bad guys who pop up randomly. This requires the
students to make a huge leap, because they all start out
as control freaks. They think they need to closely control
the game action, but just the opposite is true. Electronic
games have a lot of randomness in them, and have had since
Day One (guess how I know). In most cases, there is no
point arguing with the students, so instead you find one
adventurous student and show her how to use the random
number generator. Then other folks see that her game is
better, and they want in on the action.

At this point I'm skipping a lot of details and glossing
over some serious problems, but please allow me to outline
the upside before delving into the downside.

The students will also be motivated to learn about vectors.
-- Vectors as first-class objects unto themselves.
-- Vectors decomposed in the magnitude+direction representation.
-- Vectors decomposed in the Cartesian XYZ representation.
-- Converting from one representation to another, and back.

We are not studying these things because they appear on some
state-mandated standard or state-mandated test. We are doing
it for the best possible reason: Students want to know this
stuff because it makes the game code easier to write, and
makes it work better. Let's be clear: It is a lot easier
to teach vectors to a 5th-grader who is interested than
to a 12th-grader who is not.

Not in 5th grade, but a few years after that, they will
want the game to have a space ship that can maneuver in
yaw, pitch, and roll. Every game, every flight simulator,
and every autopilot I've seen uses quaternions for this.
I recommend not limiting yourself to quaternions, but
rather going directly to the full Clifford algebra formalism,
which includes quaternions and a /lot/ of other stuff as
special cases.

In addition to math, there is a lot of physics in games.
Every game contains a thing called the physics engine.
The more realistic the game wants to be, the better the
physics engine needs to be. For robots, there is even
more physics.

The upside of all this is enormous. Imagine you are the
college professor, and you are trying to teach somebody
about probability, in the context of quantum mechanics,
or thermodynamics, or data analysis, or cryptography ...
and the student already knows about probability and
randomness, because he used it in some game he wrote
back in 5th grade.

Similarly, imagine you are trying to teach about angular
momentum, or about the Poincaré group in connection with
special relativity, or about Pauli spin matrices in
connection with the Dirac equation ... and the student
already knows all the math, because he used Clifford
algebra in some flight simulator game he wrote back in
9th grade.

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

The catch is, this requires the teacher to know about the
electronic game industry; to know about classes and instances;
to know about robots, sensors, and actuators; to know about
vectors, matrices, and quaternions; to know about flight
simulators and autopilots; et cetera.

There is precisely zero chance that students are going to
figure this stuff out on their own.

If some state task force sends around a memo saying we
want everybody to learn programming, and we want this
to promote understanding of math and physics ... it ain't
gonna work that way.

We've seen this movie before. The _PSSC Physics_ book was
-- and IMHO still is -- the best high-school physics book
ever written, but it demanded too much of the teachers.
The sponsors provided a lot of support, including teacher-
training, classroom videos, experiment-kits, et cetera ...
but it wasn't enough.

If you want an existence proof, showing on a small scale
that it is /possible/ to teach 5th graders to write programs,
that is easy to do. OTOH, if you want to do this on a large
scale, in a reliable, sustainable fashion, that is gonna
require a vast effort. My advice: Go big or go home.
A half-vast effort is not worth the trouble.

Somebody should do an analysis of the available books.
For example:
http://www.amazon.com/Building-Robots-With-Lego-Mindstorms/dp/1928994679
I mention this book only as an existence proof; I am
not familiar with this book or any of the others books
in this general area.

Once upon a time, back before NCLB "improved" things,
some public elementary schools had a specialist music
teacher. More recently, I've seen fancy private schools
where there is a music teacher ... and also a specialist
robotics teacher. I'm not sure, but the specialist approach
/may/ be a way to get the programming-for-kids program off
the ground. In the long term, it is less desirable than
having programming _integrated_ into the rest of the
curriculum, but it might be an expedient transition state.
The specialist explains it to the kids, and then the kids
explain it to the other teachers, so eventually everybody
is on board. Maybe.