Re: Programming languages for the very young

From: John Doty (jpd_at_w-d.org)
Date: 01/27/04

  • Next message: JatJatIan: "Re: Mars Rover Not Responding"
    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
    

  • Next message: JatJatIan: "Re: Mars Rover Not Responding"

    Relevant Pages