Re: Forth for Kids
- From: "Jeff M." <massung@xxxxxxxxx>
- Date: Thu, 30 Apr 2009 08:40:32 -0700 (PDT)
[Note: I've rearranged the order of some of the quotes to better fit
the flow of my reply. My apologies to the John in advance if doing so
upset the flow of his].
On Apr 27, 8:45 pm, jjwav...@xxxxxxxx wrote:
I think that it is important to define the word “kid”.
I know this thread has grown beyond my original intent, but as the OP,
my definition of "kid" (for the sake of the question asked) was "under
10 years old", but likely "at least 6". Although, I admit, I hadn't
given much thought to what the lower-bounds of that range should be.
On the high school (advanced placement) level, the goal is to teach
programming and the language is specified. When my wife first started
teaching the official language was Pascal.
When I was in High School, I do remember learning Pascal. Perhaps I
just had a bad teacher, but my HS experiences programming were less
than sub-par. I [felt that I] knew more about programming than the
teacher did, and learning to write programs that did:
Input: 5
*
**
***
****
*****
Just didn't appeal to me very much. I saw no practical use to them at
all. I think it's very important - at all ages, when learning anything
- to see a glimmer of light through the tunnel: a goal that you are
reaching towards. At that age, I was praying to grow up and program
video games. Dumping asterisks to the display certainly didn't feel
like it was guiding me along that path.
..., in the 1980s there was an assumption that using computers
would involve learning to program them. So we all were intent on
figuring out ways to introduce computer programming to 8 year olds.
I remember at age 7 being sat in front of a TRS-80 and being forced to
learn BASIC. "Computers are the future, son! Learn it!" But, I was
also given practical problems to solve. I was (like all kids) learning
my math, but was told that if I could write programs to solve my math
problems, that would count just as well as if I had solved the
problems myself.
I don't know if this was good or bad on the part of my parents, but
certainly by the age on 9, I was light-years ahead of my counterpart
students. The concept of a variable in a math equation was second
nature to me. I was doing algebra, although I did not know it, long
before I was scheduled to begin learning it. I'm sure there were many
other "lessons" that programming at an early age exposed me to, but
that one in particular sticks out in my mind.
I think that the main way people learn programming by work at tasks
that appeal to them in an environment that lets them see what is
happening.
I very much agree with this statement. This is why my first attempt at
something that taught kids to program targeted the GameBoy Advance.
Kid + games seemed like a no-brainer to me.
What that experience taught _me_ was that there is no end to child
ingenuity. I had completely forgotten my own experiences as a child in
this regard. A 12 year old has no concept of a queue or stack. But
often times, when presented with a problem to solve, they will
reinvent the wheel to solve it. That is a very wonderful thing to
watch! More importantly, I think it shows that it is *not* important
to teach kids algorithms and/or complexity. Teach them to invent their
own!
I think that both Jeff Fox and Mikael Nordman made interesting
observations. I think I want to emphasize Mikael’s observation:
These days when 8 year olds have no problem of controlling
programmable strategic simulation games with high res graphics,
there is little novelty in programming a led to blink.
I disagree with this. I do think that pretty 3D graphics and 7.1 Dolby
sound coding has it's place in learning. However, I have a wealth of
experience in this area. What attracts kids (of *all* ages) to tools
that make graphics, etc. "easy" is the notion of getting something for
nothing. They very quickly become disenchanted when they suddenly
realize that not only is real work involved, but that the scope of
their dream way outside their immediate reach: they can't model,
texture, or don't understand vectors, matrices, or quaternions.
As I stated above, I think when learning to program, a kid needs 2
things. First, they need an attainable goal.. something they can do
solo. Second, that goal has to be a reasonably obvious step in a
direction to learning more and guiding them towards something "big"
that they would like to accomplish.
Certainly making a box light up on a computer screen isn't interesting
to a kid at all. But, actually soldering an LED and then turning it on/
off from a program on a PC would be. But it can't stop there. It has
to be taken to the next step. Create a timer, add audio: a terribly
loud sound. And have the kids program their own alarm clock that can
wake their parents up in the morning.
(Admittedly, I think this is beyond the age group I defined above, but
perhaps not?).
There are Forth packages to implement turtle graphics. There are a lot
of true believers (like me) who find computer programming an excellent
tool for intellectual development.
I do believe that turtle graphics is the wrong way to go. I agree with
making programming visual somehow, but if you want the results to be
graphical, then I think the bar has definitely risen (as Fox and
Nordman stated). But I do think that for kids, it doesn't need to
include 3D, pixel shaders, or raytracing. Perhaps simple 2D sprites? I
don't know the answer, but I love exploring the problem. ;)
This is my concern about using computer programming for intellectual
development.
I'm sorry. I don't understand this concern. Can you explain this more?
Jeff M.
.
- Prev by Date: Re: Factor combinators in Forth and lambda blocks
- Previous by thread: Re: Factor combinators in Forth and lambda blocks
- Index(es):
Relevant Pages
|