Re: Programming languages for the very young
From: John Doty (jpd_at_w-d.org)
Date: 01/27/04
- Previous message: Alan Balmer: "Re: Mars Rover Not Responding"
- In reply to: Julian V. Noble: "Re: Programming languages for the very young"
- Next in thread: Jerry Petrey: "Re: Programming languages for the very young"
- Reply: Jerry Petrey: "Re: Programming languages for the very young"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Date: Tue, 27 Jan 2004 13:59:02 +0500
In article <4015A531.8179BB21@nowhere.virginia.edu>, "Julian V. Noble"
<jvn@nowhere.virginia.edu> wrote:
> Only a few of the many students who took PHYS 551 (and saw me do amazing
> things in front of the class in real time) took the time to try Forth.
> The attitude of the CS department was, shall we say, not conducive to
> motivating the average student to learn such an off-beat language.
Logo might actually be a better choice here. You can do "amazing things in
real time" with it, but it's better insulated from the messy hardware
details than Forth is. If you're concentrating on teaching the physics
rather than the operation of the machine, I'd go with Logo.
It's a real shame that Logo is seen as a language that's only for the very
young. While it may be the easiest language to get started in, it's a
pretty sophisticated language, interactive and good at encouraging
well-factored code.
As for other languages, there's no excuse for ever teaching something as
crude and backward as BASIC in K-12 or university. Perhaps VB is
appropriate in a trade school.
I think C is essential at some point: it's the lingua franca of compiled
languages. You don't have to like it, but you ought to know it.
C++ is absolutely the worst choice for introducing students to OO. They
don't get it. The complex frills of the language completely hide the
simplicity of the OO concept. Objective-C is much better: a minimalist OO
extension of C that reveals enough of the underlying machinery for
clarity, yet does not tangle the programmer in it.
So, if I were king, here would be my decree:
Teach Logo in elementary school. Continue to *use* it as a tool in
subjects that require computation through high school and university.
Teach Forth in middle school. The purpose is to teach how the hardware
works. Let 'em make robots flail around. Continue to *use* it as a tool in
electronics classes.
Teach C in high school. Gotta have it. With a Forth background, C makes a
lot more sense, because the kids will understand how computer memory
works. The biggest difficulty students have in learning C is understanding
what it is that a pointer actually does.
Teach Objective-C to high school honors students and university students.
Introduce OO without excess baggage.
Finally, close the circle with Lisp. Logo was, after all, an offshoot of
Lisp. After teaching them programming, you teach them to think about
programming.
You don't need to teach anything else. Any student who's been through this
mill should be able to easily pick up additional languages, from assembly
to Mathematica.
-- | John Doty "You can't confuse me, that's my job." | Home: jpd@w-d.org | Work: jpd@space.mit.edu
- Previous message: Alan Balmer: "Re: Mars Rover Not Responding"
- In reply to: Julian V. Noble: "Re: Programming languages for the very young"
- Next in thread: Jerry Petrey: "Re: Programming languages for the very young"
- Reply: Jerry Petrey: "Re: Programming languages for the very young"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Relevant Pages
|
|