Forgot your password?
typodupeerror
Programming Software Technology

Introducing Children to Computers? 886

Posted by Cliff
from the next-generation-of-IT-workers dept.
Years ago, kids could be gradually introduced to computers through learning languages like LOGO and educational computer games. Many of us started our computing careers at our parent's workplace, logged in to a word processor to type away, only to become fascinated with the whole computing thing. So Slashdot, let's hear how you were lured into the digital life. What was it that drew you to a life of programming? How old were you when you first used a computer? What pieces of modern software do you think would be a good way to introduce today's kids to the world of computing?
Two of our readers had a few related questions: "A family friend has asked me to help teach her 13-year-old the art of computer programming. I initially thought this would be easy to approach but times have changed since I cut my teeth on text-only, ROM-based, BASIC interpreters. Twenty years ago, it seems there were much more clear and concise paths one could take to learn programming. Now I'm at a loss as to what language and resources I should use. Everything is so high-level that I'm having trouble finding convenient, simple tools that promote the fundamental tenets of programming, allowing newbies to jump in and see immediate results, without getting bogged down in corporate-centric APIs. It seems nowadays most programmers end up spending more time learning the development environment (and thus being confined to specific platforms) than core, transferrable programming knowledge. I'd like to ask my fellow Slashdot dwellers what tools, languages and approaches they have used to help introduce new people to programming?", and from sagefire.org: "My daughter is a huge fan of TuxPaint and ChildsPlay. We use Linux and MacOSX (and occasionally Windows) on different computers. We like to have stuff for her installed wherever we go. The two I mentioned go a long way, but we would love to pick the collective Slashdot brain on this one."
This discussion has been archived. No new comments can be posted.

Introducing Children to Computers?

Comments Filter:
  • Linux, the open OS. (Score:5, Interesting)

    by garcia (6573) * on Monday January 03, 2005 @06:08PM (#11248499) Homepage
    My first memory of using a computer was plugging a HUGE game cartridge into the back of my family's Vic20 and being in some castle (like Dracula's Castle or some shit). It was a text adventure game that I really never mastered. I think I was about three years old.

    My father started me writing programs in BASIC before I was four (as that was what he was doing and of course I wanted to know how). I could read most things by then and this was not much more than just copying what he did anyway. I mostly remember playing around with simple things like PRINT, GOTO, and INPUT. Nothing very complex although I suspect (but don't know for sure) that my father never did anything terribly complex in BASIC.

    We progressed through the Commodore stages (C64, C64C?, C128D) and when I was in 7th grade we upgraded to a Packard Bell 386SX-16 with a whopping 2MB of RAM and a 40MB HD. This is where my love of computers really started... I sat down my first day and discovered the DOS prompt (PBs at the time had a simple GUI menu that basically sucked) but quickly found myself unable to load anything from the 3.5" disks.

    LOAD "*",8,1 was giving me "Bad command or file name" repeatedly... Dejected, I sat down and read the DOS 5.0 manual from front to back (several times actually). I spent time writing crap in Q-Basic (and eventually QuickBasic) and then moved on to Turbo C++ (which I must say had a far less interesting manual than DOS believe it or not ;))

    What I enjoyed most of all (and I have posted about that on Slashdot before) was thumbing through the old-school Computer Shopper looking to build my dream machine and making sure I priced it the best I could.

    I miss the days of old-school computing when everyone knew at least some part of what was going on inside their machines and the OS even allowed you to! I missed that part of computers until I moved to Linux in 1996.

    I'm just glad that with Linux I can continue to allow it to remain that way. I can forever live in the world that I had grown up in. So to answer your question about what I would do to introduce a child to a computer... Linux!

    Linux allows you to get right down there in the trenches with your machine. You get to see what the hell is going on when it boots up. Sure, most people don't care (because they don't have to) but we all grew up watching DOS boot before Windows. We knew how to edit config files and save on what little memory we had so that we could run NewGameFoo.

    I enjoyed learning about computers and playing around and finding out how they ticked. It scares me that NO ONE will know how soon as Windows does NOT really allow you to know. Everything is behind a shroud of secrecy and hard to find registry settings that are buried in deep trees of information.

    At least with Linux a child gets the best of both worlds. A modern operating system GUI with nearly all the comforts of Windows while still being able to learn if they want to.

    But that's just me. I learn by doing not by example. Using a computer that is open to explore was the best option for me.

    YMMV.
    • LOAD "*",8,1 was giving me "Bad command or file name" repeatedly...

      Oh man does that bring back memories! Took me an hour to figure out that I just have to type in the program's name!
    • by Rorschach1 (174480) on Monday January 03, 2005 @06:28PM (#11248769) Homepage
      I started out the same way, with the Vic-20 and later the C-64 and C-128. But how do you get today's kids started without just dumping them at a BASH prompt?

      With the Commodores and Apples, there was no question about where to start - you turned on the computer and there's your BASIC interpreter. Yeah, BASIC is for the most part an awful language, but it at least teaches the kids the necessary logic and thought processes that go into programming.

      My 8-year old son is a lot like I was at that age, and I suspect that he'll really take off in that department if he can get started. He's already taken an interest in modifying a silly game I wrote in C when I was 15 - he likes it mostly because of its quirks and bugs, and is fascinated by the idea of being able to change it himself. C is a tough language to start out in if you've never programmed, though.
      • I think you started a good topic. I'm 28... My girlfriend is 23, and her brother is 12. I only say this because I started at 12 myseld. In the days where you tweaked bootdisks to play games, the days you tried to take all of the machine as much as you could.

        However the 12 years old of today... They want to do what we wanted: program games. However for us the threshold was PacMac or Space Invader.... for them the threshold is Need For Speed Underground 2. Hey, I showed him the orginal Prince or Pers

        • by calibanDNS (32250) <brad_staton@[ ]mail.com ['hot' in gap]> on Monday January 03, 2005 @07:11PM (#11249252)
          This is just too true. My wife's two youngest brothers are 13 and 14. They love there XBox (and Halo 2), and got incredibly upset when I told them that it wasn't really that revolutionary. They really believed that Halo was the first FPS with online game play, so I showed them some great FPSes on the PC (Doom 1&2, Quake 1-3, HL, and Unreal). They couldn't believe that people had been playing online for years. Then I showed them mods and how to download and choose your own model and skin. I swear, they almost lost it. They immediately wanted me to show them how to make models and skins, which I'm not talented at. I tried to explain 3D modeling to them, but it didn't go over very well.

          In general, they just want their computers to boot up and let them download all of the free music that they can find. They're not interested in learning how to make the computer to do what they want, just how to make it get the songs that they want.

          I wish kids were as amazed by computers as I was at that age. My first programming experience was on my TI-82 calculator, where I wrote a couple of games and other programs. I had a C64, but at the time didn't have enough exposure to the computing world to understand what it was capable of. I really wish that I still had that old thing, as it was awesome and would be great to show to my brothers-in-law.
          • Lucky me, I kept my TI-85. First of all, its a great calculator, and very durable because of the plastic cover. My parents complained when I asked (make that begged) them to get me one in high school, but I think if they knew the use I'd gotten out of it, they'd be proud of the investment. Its outlasted many other calculators that I've had since that time.

            It also pretty much launched my career in comp sci. I loved video games and computers as a kid (built my first computer, a 486, from some cast off parts)
        • by NMEismyNME (725242) on Monday January 03, 2005 @07:59PM (#11249682)
          "because I started at 12 myseld"

          You know it's time to get out of the house when instead of reading "myself" you read "mysqld".
    • by Pfhreakaz0id (82141) on Monday January 03, 2005 @06:38PM (#11248896)
      As a person who has spent some time programming and troubleshooting windows, I'll throw out my favorite saying "The more you learn about Windows, the more you are amazed it works at all".

      Seriously, I remember troubleshooting a boot/registry problem and I got this freeware/shareware program to log all registry activity. It would even do it for a whole boot. At the time, a win2k boot had between 120,000 and 150,000 registry read/writes!!!

      • by 0racle (667029)
        Isn't that true about anything though. Go get some really detailed explanations of the Mercury Gemini or Apollo capsules, or the space shuttle, its amazing that anything that complex can be made to work right just about every time. Hell, look at the details of child birth, and the millions of things that can go wrong if every tiny little detail doesn't happen perfectly the first time. Its amazing that there are children born at all.

        Windows doesn't do anything special that its surprising that it works any m
    • by 198348726583297634 (14535) on Monday January 03, 2005 @06:46PM (#11248994) Journal
      As a father myself of two adorable li'l monsters, I've decided that they won't play with computers at all until later in their childhood. Computers and TV both seem to encourage a lot of button-pushing, while I'd rather they learn to think and make things in their world. Putting together a unix-alike will be child's play once their little brains are appropriately wired to see the world as the great big machine it is.
      • by Miriwen (736197) on Monday January 03, 2005 @11:36PM (#11251070)
        Easy, start kids at the beginning. Hand 'em an old C64 or Amiga system and let them learn how to use it. It might give them an appreciation for functionality in software, as opposed to flashy graphics and glamor, as well as avoiding getting them locked into a DOS standpoint of CLI commands. At the very least, start a kid on a non-graphical interface, so they learn to actually use the system. How to set up the startup scripts, manage memory, maybe even some programming skills. Once they're ready, bump them up to a Linux system and let them go. Graphical systems are fine, but they teach very little in the way of actually using and running a computer system.
    • by d34thm0nk3y (653414) on Monday January 03, 2005 @07:06PM (#11249203)
      The summary says high level language like it is a bad thing. If the kid is actually interested in programming why not have it play around with the Python interpreter. You gotta love instant gratification!
    • by Flammon (4726)
      Eerie. I felt like I was reading my own diary. The dates, the computers the mags, everything matches up quite nicely with my life, right down to the very close Slashdot Id. You must have read Chips n Dips in the good ole Rob Malda blogging days? How about Slackware, was that your first distribution? Don't tell me you installed it from 12 floppies. You probably played Space Quest but that's too easy. How about Bard's Tale? You're probably familiar with AT&V, AT&Z and the whole AT command set. How abo
    • by Weirdofreak (769987) <weirdofreak@gmail.com> on Tuesday January 04, 2005 @09:02AM (#11252706)
      I'm a member of the newer generation - I'm 15 (but not yet used to it, I still say 14 before realising my mistake). I didn't have a telly until five or six years ago, so my entire childhood recreation consisted of the various computers we had around and books (I didn't have any friends either).

      The first computer I remember was a Northstar. I don't remember it having anything other than a text editor, but apparantly it also had games such as Hunt the Wompus that I never found. Well, I was only three or so at the time. However, it did have a Little Red Button. When pushed, this Little Red Button would erase every file on the disk. I never quite grasped that, for some reason.

      We also had a DOS of some description. With it were games such as Hocus Pocus, Recue Rover and something where you had to avoid monsters and spell words. We only had demos of them though. It also had a version of BASIC and a simple text editor that I never used. We eventually sold it for ten pounds or so. I was young enough and poor enough to think that that was a lot of money, so it seemed fair at the time. I now know that it's very little money, so it still seems fair.

      Then came an Archimedes, running RISC OS 3. We still had the Northstar at that point, but it was unplugged to make way for this new one, which was put on top of the main body. With plenty of room to spare. The monitor was moved to the top of a filing cabinet. Eventually I started doing some BASIC in it, probably because my brother did so first. I was, to put it mildly, crap. I didn't understand the concept of a variable. I could INPUT A$ or GET A and PRINT it, but I didn't know how to do maths with them, even when I saw it being done. Nor could I use loops, although I could just about handle IF A$ = "Foo" THEN GOTO 50. I didn't know what GOSUB meant, or PROC and ENDPROC, and I thought ENDIF was a magical (and I really do mean magical) form of END which somehow worked out what conditional you wanted to END on. We still have it, and some time ago I started toying around with it again. BASIC was less confusing, although I'd now hate to work with it, and I also discovered its command prompt (which I remember thinking was superior to the Windows 98 one because it had a scrollbar and a help command).

      Then we got a Windows 95. My time was spent playing Chessmaster 3000 and Civilization II. Eventually the Archimedies made way for The '98 that we still have and where I got reinterested in programming. I started with HTML about five years ago, and then tried to learn Javascript. My original tutorial was sucky, but when I found a better one (Thau's, at Webmonkey), I became passable at it. This of course led to the desire to learn real languages, specifically Perl because my brother knew it. After trying several times to learn from the Camel Book I gave up (I should have skipped over that first chapter, information overload) and found Beginning Perl online as a PDF. Eventually I started making GUIs with it using Tk (my brother was at that point using it to make a program for somebody else, but they never finished it), but I stopped because I was spoiled by HTML/Javascript, and Tk simply isn't as powerful. Or if it is, Mastering Perl/Tk isn't a very good manual. I still only consider myself 'good' at Perl, but that's because the more I learn, the more I realise I have yet to learn.

      I made an attempt to learn C++, but I got more information overload. I've since tried again, and got slightly further, but the tutorial I was using simply doesn't cover enough libraries - it explains Terminal I/O, numbers, functions, strings, OOP and then File I/O, but not how to actually do anything useful. I can do simple stuff (such as a program I wrote a few months ago to find the number of odd numbers in the Nth row of Pascal's triangle), but no regexes or cool things like that. It really diesn't explain anything further than basic string usage, so until I get around to looking it up I won't be able to do very much.

      Some time ago I got my own computer.
      • Trying to learn a language through a book that teaches the parts of programming can be a pain. I'd suggest that you instead find an existing program that you can modify to work on.

        For me, I learned most of my C (which I later transalted to C++) coding on a MUD. I didn't code the MUD from scratch, but editted one that already existed.

        Find some open source code that does something you're interested in and start hacking away. It's much easier to pick up things one item as a time through editing something
  • by koreaman (835838) <uman@umanwizard.com> on Monday January 03, 2005 @06:08PM (#11248505)
    Enroll them in a class. If they have the money, it's the best way. Nothing beats a trained instructor

    (If s?he gets a crappy teacher though, you've wasted your money)
    • Whoa, Cowboy! (Score:2, Insightful)

      by ackthpt (218170)
      Enroll them in a class. If they have the money, it's the best way. Nothing beats a trained instructor

      I suggest evaluating that class/instructor yourself, first, or take the class at the same time as your kid. Bad teachers abound, don't just assume people you get on with just fine are good at teaching, some of my friends couldn't and shouldn't teach. (I know, I've sat through some of their courses.)

    • by IllForgetMyNickSoonA (748496) on Monday January 03, 2005 @07:16PM (#11249300)
      Insightful? I beg to differ! Being allowed to explore the computer (ZX Spectrum with 48K of RAM and 16K of ROM, integrated BASIC) all by myself was the main reason I fell in love with it in the first place. Every little success I achieved by doing so gave me a great feeling and made me want to learn more. I sure am happy my parents didn't look for a "trained instructor" to teach me what I taught myself.

      Look, you are obviously a technically informed kind of person, if not even an IT pro. How about sitting down with your kids, giving them a few first hints, maybe a good book too, and see how they'll do on their own? Having trained instructors teach you sure is an extremely valuable thing once you reach a certain level from where moving further forward by means of self-education gets really damn hard. However, for the basics, a trained instructor would more probably scare the kids away, instead of attracting them to the subject.
    • Pun Alert (Score:3, Insightful)

      by Bingo Foo (179380)
      Enroll them in a class. If they have the money, it's the best way.

      No, find them a club instead.

      Nothing beats a trained instructor

      ...except a club.

    • Enroll them in a management class, and then they can hire students in the computer programming class to be interested for them.
    • Do Nothing. (Score:5, Insightful)

      by raehl (609729) <raehl311@yaho[ ]om ['o.c' in gap]> on Monday January 03, 2005 @08:18PM (#11249829) Homepage
      Asking "How do we get kids interested in computers?" on a website like Slashdot is like asking "How do we get kids interested in working on cars?" in an automotive magazine.

      You don't. Your kids will pick what they want to be interested in as a natural result of what they do in life. My parents tried to get me interested in all sorts of things they thought would be good for me - soccer, football, tennis, math team, piano lessons, foreign language, blah blah. The only two things I ever became really "good/involved" at are computers (my full-time career) and paintball (hobby), both of which my parents discouraged (paintball in general, computers in the "don't spend so much time on computers!" sense). I still resent this quite a bit as I would be better at the activities I ultimately chose to be involved in if I hadn't had to waste time appeasing my parents' desire for me to be interested in the activities they thought I should be interested in.

      How did *I* get involved in computers? My dad got a computer with a modem, and I was quickly discouraged from spending time on it because I was spending nearly all of my free time on the computer (time not at school or with friends, when we were not messing around with computers), and this was viewed as "bad". I eventually forced them into getting a second phone line, but the next 8 years that I lived at home would be a constant battle between me and them over how much time I spent on the computer.

      Ultimately, I escaped to college and a computer engineering major and then got to spend all the time on the computer I wanted. But those 8 years of fighting my parents over it put me quite a bit behind the kids who'd had unfettered, and even encouraged, access to their machines.

      So if you have a computer in your house, and your kid is not ALREADY spending all of their time in front of the computer, they're not interested in computers. Nobody had to figure out for you how to get you interested in computers, you figured it out yourself. It will be the same for whatever your kid decides to be interested in. No matter how much you as a computer geek want your kids to be interested in computers, chances are your kids are going to become very interested in something that is NOT computers, whether it be sports, guitar, chess, student government, whatever. Do your kid a favor and support whatever it is your kid spends all their time doing. If you have to "show" them how to be interested in it, they're not interested in it, and you're wasting both of your time.
      • by crazyphilman (609923) on Monday January 03, 2005 @09:30PM (#11250380) Journal
        "Ok, son, whatcha got going on, there?"

        "I think I've got root. Nmap says it's an NT box; it doesn't seem to have a firewall running. Looks like a law office."

        "Aaahhh! Nice one! You gonna nuke it?"

        "Nah, I wanna mess with 'em a little. Wanna send a nasty email to a competing law office? Maybe we can get a West Side Story brawl going."

        "Hang on, your mom's gonna wanna get in on this. HONEY! GET IN HERE! JOEY'S NAILED A LAW FIRM"

        (goth mother comes in)

        "A law firm? You're kidding? What are they running, 2000?"

        "Naw, ma, NT 4."

        "Get out of here!"

        "Honest! Hey, check it out, someone's trying to log on. Should I enable his account?"

        "Go for it. Hey, pop up a message, let me type."

        (Mother sneaks into the seat).

        "BEHOLD, LAWYER, FOR I AM THE ANGEL GABRIEL AND I HAVE COME TO WARN THEE, THOU ART BILKING THY CLIENTS AND SHALL SURELY PAY! IF THOU WISHEST TO GAIN THE KINGDOM OF HEAVEN, GIVETH THY BMW TO RICHARD STALLMAN AND DONATE YOUR TIME TO THE FREE SOFTWARE FOUNDATION!"

        "Umm, mom, wasn't that a little over the top? Besides, he doesn't know how to respond."

        "Right... Umm..."

        "LAWYER! JESUS HAS INSTRUCTED ME THAT IF YOU STRIP TO YOUR UNDERWEAR, LEAN OUT THE WINDOW AND SCREAM PRAISE THE LORD ONE DOZEN TIMES, THEN QUIT YOUR JOB AS MINION OF SATAN, WE'LL FORGIVE YOU... BUT ONLY THIS ONCE."

        "Yeah... MUCH better..." (rolls eyes)

        Hey, the family that plays together STAYS together!

  • BASIC (Score:3, Interesting)

    by gaber1187 (681071) * on Monday January 03, 2005 @06:09PM (#11248518)
    I got started when my cousin, who had a TRS-80 and a 386 gave me a book called "It's Basic". I started programming on Apple II's in our classroom and then got really interested in building a computer for as cheap as possible. Well, with 512 MB hard drive and 4 megs of RAM and a 486 DX 66 MHz running only DOS 5, I ran into one problem after another trying to get everything to work. Needless to say, I learned a lot and ended up getting a job at a local internet service provider based on my experience when I was 16.

    I'm going to bet practically everybody else here had a very similar beginning... :-)

    • Re:BASIC (Score:5, Insightful)

      by PaintyThePirate (682047) on Monday January 03, 2005 @06:26PM (#11248744) Homepage
      Yea, I had a similar start. When I was about six years old (1992), my dad gave me his old IBM PC/2. Interestingly enough, I was subscribed to a children's magazine back then, Contact, that had a BASIC game each issue, filling up one page with code. I went through the magazine each month, typing the code onto the IBM, eventually modifying it, and finally, writing BASIC programs on my own. You can't force a kid to be a geek. He/she has to be curious and willing to learn by nature. In my opinion, the best solution is to simply give the kid the tools he or she needs to get started, and see what happens from there.
      • Re:BASIC (Score:3, Interesting)

        by Khomar (529552)

        In my opinion, the best solution is to simply give the kid the tools he or she needs to get started, and see what happens from there.

        My dad took a little more direct tactic. When we got our new computer when I was in the fifth grade, he proclaimed that he was not going to buy any games. If we wanted games, we would have to make them ourselves, so I started working on very primitive games using BASIC. My dad later changed his mind(?) and purchased games for us for Christmas, but by then, it was already t

    • Bally Basic (Score:3, Insightful)

      by Saxerman (253676) *
      My family picked up a Bally Home Arcade machine when I was five or six. It was released around the same time as the Atari 2600 and was a primitive precursor to the 8bit computers that would follow. Unlike the consoles of the day it included a keyboard and it's own programming language. It included a large "Bally Basic" programming book which I would end up reading though on and off for the next two months. The spark struck during my birthday party when I showed off a a fancy "hello world" program with f
  • Computers we're always part of my life... even in pre-school, we had 3-4 computers we could 'play' (do some pre-school math) on...

    Coleco, Tandy1000, 386... now that I think about it, I always had a computer nearby. Programming came naturally from a 'want-to-know-how-it-works' mentality.
  • When I was young... (Score:2, Interesting)

    by trisight (306703)
    My father had subscriptions to Atari magazines that used to come with programs in them and he would sit me down with a magazine and I would type the games straight out of the magazine to play them. It was an Atari 400 with a tape drive on it for storage (remember that loud screaming noise that sounds like it would be on an industrial song track). I was 5 or 6 at the time. Later he would teach me how to change different things and teach me what they meant.

    I program for a living now and always let him kno
  • I was seven or eight, playing with a TI-99 running LOGO, and a real robotic turtle.

    Never quite have equalled that experience either...

  • by wcitechnologies (836709) on Monday January 03, 2005 @06:11PM (#11248542)
    In my humble opinion, the most important thing that we need to teach children at a young age is to TYPE. Just as everyone doesn't remember learning a first language but always struggles with a second, teaching kids to type is much, much easier than teaching teenagers to type. At that stange of life, your mind is designed to soak up new information like a sponge. I learned in 1st grade, then grew up watching my peers (from other schools) struggle through intermediate school.
  • karel (Score:5, Informative)

    by utexaspunk (527541) on Monday January 03, 2005 @06:11PM (#11248545)
    I first started using computers when my dad brought home our Kaypro 4MHz 8088. I learned DOS by watching over my dad's shoulder, and then trying to play games between when I got home from school and when he got home from work.

    as far as teaching programming goes, try karel the robot [mtsu.edu] that's what we used in high school before learning pascal, and it made the structures seem very logical.
    • Guida van Robot (Score:3, Interesting)

      by Noksagt (69097)
      GVR [sourceforge.net] is like karel, but with more python coolness. They also maintain a list of a fes karel-related links on their site.
  • My good ol' Commodore. That thing was great.

    I was already into computers by the time my grade school started me on Logo and some other Apple stuff (Hyper Studio anyone?). Of course, I didn't know my career would be in computers or anything. To me, they were just these "awesome" machines that let me play games and do homework.

    It wasn't until my Freshman year when I was exposed to programming languages (other than QBasic) that I decided this is what I was going to do with my life.
  • About 12... (Score:2, Interesting)

    by jawtheshark (198669) *
    It was the DOS days. Daddy bought a brand new IBM PS/2. I wanted to know how to calculate things on it and he showed me good old GW-BASIC (That is indeed Gates-William-BASIC, I started off as a Microsoftie).

    He showed me statements. I figured out how to write a scientific calculator in BASIC. It never became my thing until daddy gave me a Pascal book and Turbo Pascal 4 (?). It was a dream! I reinvented bubble-sort, and stuff like that. I was sold. I knew I was going to go into computers.

    That's wh

  • Logo is a good... (Score:3, Interesting)

    by tekiegreg (674773) * <tekieg1-slashdot@yahoo.com> on Monday January 03, 2005 @06:14PM (#11248589) Homepage Journal
    way to start on computers, as it is simple and imaginative. If you can find a PC Logo Emulator/program I'd start with that :-) and I'm sure there is one available out there.

    You know what also would probably be an easy way to get someone in on programming? Straight up line number GW-Basic or AppleBasic. Simple, and teaches basic programming concepts fairly well (If statements, loops, etc with simple input and output). Beats trying to teach the principles of OO design at an early age. Little baby steps would be key...
    • Re:Logo is a good... (Score:4, Informative)

      by bloosh (649755) on Monday January 03, 2005 @06:34PM (#11248858)
      I teach Berkeley Logo [berkeley.edu] to 7th graders. It works with Linux, Windows, Mac OS X, etc.

      I think Logo is great for kids of that age because it provides them with instant gratification at the early stages. Once they get past seeing what the commands do at the Logo prompt, I have them write short programs using a text editor.

  • My three-year-old likes the web-based Sesame Street [sesameworkshop.org] games. I was surprised how quickly he learned to use the mouse. He can double-click a shortcut and open the web page, select a game, and play.

  • My first computer was a Sinclair ZX81 (TS1000 here in the USA). 1K of RAM (800-odd bytes free for programs and data), a monochrome display, a membrane keyboard, a 1KHz Zilog Z80 processor... I loved it. Taught myself BASIC by reading, reading, reading... mostly simple game listings from the UK mag C&VG (Computer and Video Games). Years later in a fit of pique I took an axe to it and tossed the remnants to the winds.
  • Parallax Basic Stamp (Score:3, Interesting)

    by mainlylinux (825237) on Monday January 03, 2005 @06:15PM (#11248605)
    Check out the Basic Stamp from Parallax. There are kits that use it to teach logic, programming, electricity/electronics, etc. Price is good (radio shack has the whole kit for $79 bucks - it's called the "What's a microcontroller" and it comes with everything you need to do a bunch of nifty experiments). User forum support is pretty good too: http://www.parallax.com/ [parallax.com] Dan
  • My first home computer was a Mac. I learned a lot from HyperCard and MS-BASIC.

    I'd say the closest thing to HyperCard now is the web, but the underlying structure requires a broad range of knowledge, from markup (HTML), graphics (Photoshop or other image program), code (Javascript, PHP), and persistence (MySQL). It's not at all easy for a beginner, but it's the modern RAD environment that most closely resembles HyperCard.

  • This is going to be an American-geared question, but when are we going to start including computer skills in our education system? Why is it not something that we there not standards that children know when they graduate high school? And what should those standards be?
  • Which meant bringing home a teletype and accoustic modem and setting it up in the basement. Giant rolls of yellow paper and the constant ka-thunk, ka-thunk, ka-thunk, ka-thunk as it printed. Occasionally, we would be allowed to play exciting games like horse racing...where you picked a horse and it would give you the race announcements.

    Ah, timesharing on an old GE computer.

  • Quest for Glory... (Score:5, Insightful)

    by FortKnox (169099) on Monday January 03, 2005 @06:17PM (#11248626) Homepage Journal
    ... or, back in the day, it was "Hero's Quest." That old sierra game is what really sprung me into computers and programming. Played around with basic at home, and pascal in high school.

    Anyway, with the question. First thing a child should know is how to get around on the computer. This includes command prompts and everything. Once they are truely mastered at this, I'd find some free compilers and teach a little bit of basic. If they have a school with an MS partnership, they could pickup visual basic pretty quickly.

    Don't be an elitist and try to teach the kid C or C++ or anything overly complex. Give them a bitesized language before introducing them to the big stuff. Would hate to see the kid drown cause you put too much in front of her.
  • I used to be a speed demon at typing
    LOAD * ,8,1
  • We didn't have 3.8 GHz machines that could run 200 fps on the latest fully rendered first person shooter.

    We didn't have 24 inch LCD monitors with better resolution than you can see.

    We didn't have high speed internet connections that make a T1 seem slow.

    We didn't have no computers. Heck, electricity was still pretty new.

    We did go outside and use our imaginations.

    But seriously, watching my kids pick up computer skills is astounding. I have no idea what they'll come up with given the unlimited time and
  • Start 'em young (Score:2, Interesting)

    by J-Doggqx (809697)
    My dad (also a computer programmer) enrolled me in a programming class at the YMCA when I was 7 years old! He then got me a Tandy computer that plugged into the TV and used a cassette player for storage. That got me writing small programs.

    Ever since then (and my impending video addiction with the Nintendo systems a few years later to present) always kept me hooked on computers. My small programs became larger hobbies and eventually my career.

    So I guess my point is to start the kids young, they can hand
  • F5 (Score:2, Interesting)

    by kngthdn (820601) *
    LOGO is waaaaay too turtle-centric. If you really want to screw up your kid's brain, teach the 'em BASIC. I don't mean Visual Basic, either. QBASIC is the only way to go. If they learn that, they'll be stuck drinking Mountain Dew forever. ; )

    I got started using DOS on my dad's 386 "lunchbox" computer when I was 5 or 6. My dad taught me all the important commands, like "cd", "mkdir", "del", "format" (that one was *really* fun), "edit", and "cp". He was very patient, and even brought home PC World from his
  • by Mignon (34109) <satan@programmer.net> on Monday January 03, 2005 @06:18PM (#11248641)
    What pieces of modern software do you think would be a good way to introduce today's kids to the world of computing?

    Today's world of computing? Give the kid an EULA from Microsoft, a C&D from Disney, and a subpoena from the FBI. I'm not completely joking, either.

  • for making me want to figure out how to program. But I probably owe special thanks to Ken Arnold for writing curses [daemon-systems.org] and giving me a way to move things around on my terminal in a least some facsimile of what I saw in games at the arcade.

    And course, had a C compiler not been available in System III, IV, V and BSD, then I would've just sat there playing games instead of learning how to program. Which is why I think every OS should have a development environment included (kudos to Apple for thinking a commer
  • I remember when my father first brought home a computer from work - a state-of-the-art (for its time) Acorn Archimedes. I cut my teeth on that machine - it had a friendly UI, powerful command line, BASIC built-in, and would be perfect for a youngster today to play around on.

    They're dirt cheap on eBay these days - an A3020 would set you back only about £30. It has the OS and a load of applications in ROM, so there's no risk of accidentally 'breaking' the computer, there's plenty of information availab

  • by lexsco (594799) on Monday January 03, 2005 @06:18PM (#11248649)
    you were lucky. There were 150 of us using abacus in middle of 't road.
  • Lego Mindstorms (Score:5, Interesting)

    by LWATCDR (28044) on Monday January 03, 2005 @06:18PM (#11248653) Homepage Journal
    What more can I say. Let's face it kids today are not going to write a video game to be proud of today like they could back in the Apple/64/Atari day.
    However something like mindstorms is fun and accessible. Also a good way to get your feet wet programming.
    • Re:Lego Mindstorms (Score:3, Informative)

      by Unordained (262962)
      Absolutely. You can actually accomplish "stuff" with mindstorms, despite limited abilities (3 inputs, 3 outputs.) To a certain extent, the constraint is a good thing; we keep the new lego X-Pod kits on the coffee table for guests to play with, as having only a few pieces forces you to figure out what to do with them rather than being daunted by a large pile of bricks and no ideas for something to build. The mindstorms commands are relatively simple (atomic), like assembly instructions. You can build functio
    • Re:Lego Mindstorms (Score:3, Informative)

      by Yolegoman (762615)
      The only thing I have against Lego Mindstorms is that the included programming environment SUCKS. The "functions" (MyBlocks) are really just reusable code blocks. You can't pass parameters to them. Furthermore, it's damn near impossible to update a "MyBlock", once you declare a MyBlock, it's saved to the user profile and you can only change it on a per-program basis. And the programming structure in the Lego Mindstorms software is incredibly unlike any other coding language I have ever seen.

      Do your child a

  • Summer after 4th grade (1981) I took a summer course: 4 days, using an Apple ][+, learning LOGO. We also had an Atari 800. I still have my first project printed out on 13" white/green lined formfeed dotmatrix: it drew a pacman ghost.

    The following year in 5th grade I had a TI 49 and a Commodore PET at my disposal. All we had were tape/catridge games, so I didn't learn much except how to look at other people's source code, which didn't make any sense at my age. The teachers knew nothing at the time.

    6th
  • My father was into sci-fi - BIG TIME. He loved almost any movie where space was represented. I was 6 years old when he started taking me to the planetarium.

    A few months later (and against my mother's wishes I believe), he took me there when they had showed 2001: A Space Odyssey. My dad had to shut me up as I was bawling through the 'HAL disconnect' scenes. It was then my parents knew something wasn't right. :)

    At 9, I got involved with electronics projects until the magical day the TRS-80 came to my local
  • Actually, I think it was really an 'Execuport' portable teletype that my dad brought home one weekend in 1972 so he could work (he was one of the authors of Gecos.) We dialed in at a blazing 300 baud.

    Simply put, he showed me how to play games on the thing and I was hooked. (Star Trek, Adventure, etc...) I demanded he bring that 60 pound execuport home again and again. He got very strong arms and I taught myself Basic so I could write my own games. I then went on to get my first job (at age 16) program
  • by hsmith (818216) on Monday January 03, 2005 @06:22PM (#11248694)
    Simply because i want them being active and playing outdoors. Yes I have a degree in CS, but the last thing i want are my children constantly playing on the PC or sitting infront of a TV.

    I understnad their importnace, but i also understand they can be abused and used in a way to foster lazyness.
  • by Dark Coder (66759) on Monday January 03, 2005 @06:23PM (#11248711)
    It started with a toaster.

    At 6 years of age, I received a toaster (with a cord cut off) and I rabidly rip it apart down to the heating elements of which I made slinky toys out of them. Many more appliances were "gifted" to me for adventurous disassembly efforts with glee.

    At 8, I received my very first ATM card, I learned to deposit an empty envelope of $1000 and managed to withdraw $100 max. on the same hour! Bank later called and said "we made an error, pay it back."

    At 10, Captain Crunch cereal featured a toy whistle. I learned that free phone calls can be made at payphones.

    At 11, blue box was made using those Japanese 250-in-1 electronic kit box. Radio Shack becomes my best friend.

    At 12, TRS-80 Model I was purchased. I started work as a BASIC programmer for designing a paypoint station in accepting Visa/Mastercard at gas pumps using 8' drive TRS-80 Model II with a sporting 640KB memory... Hooha! Mastered 300 baud communication using 250-in-1 electronic kit.

    At 13, Exposed to PET computer, Commadore and a 6502 microprocessor. Mastered assembly language. Actually memorized the entire instruction matrix.

    At 14, designed a payroll, general ledger, account receivable program on HP-1000 with those huge disk pack array.

    At 16, tweaked and enhanced several BBS software. Ran a BBS station.

    At 18, left for college with my various computers. Wired dorm room for wireless alarm (using Tandy car alarm transmitter and a pager, tied to serial port of computers).

    At 19, left to work for an undisclosed company who requires mastery of 236 network protocols and other unintended usages. Been there ever since.

  • by mblase (200735) on Monday January 03, 2005 @06:23PM (#11248714)
    I started teaching myself HTML almost as soon as Netscape 0.9 hit the FTP sites. The online guides were helpful, and View Source, as much then as now, was the best way to look at good and bad code and reverse-engineer it for my own purposes.

    Once JavaScript was added to the Netscape browser, I began learning it in earnest. It was an ideal "gateway language" for me because it required no compilation, no debugger, nothing more than an OS-standard text editor and the free web browser I was using.

    I could build scripts one line at a time, debugging them as I went without much incident. Then as I got the hang of it, I'd start using functions and subroutines, then external includes, objects, and all the other things that make "real" programming what it is.

    HTML and JavaScript are still ideal, in my opinion, for teaching someone who doesn't know much about programming what you can do and what it should look like without taking a lot of time or software to produce results.
    • Yes, absolutely. Whenever the idea of HTML as a teaching language comes up, there are usually lots of people who scream, "But it's not a real language!" They're missing the point. It's not a Turing-complete programming language, no; but it is, in fact, a programming language, in the sense that you feed the computer input, or code, and get back an output which is both noticeably different from the input and clearly related to it. This is a rather large step up from the way most people use computers, whic
  • Python (Score:5, Informative)

    by naaff (313265) <(nicholas.north) (at) (gmail.com)> on Monday January 03, 2005 @06:26PM (#11248742) Homepage

    My 13-year-old brother recently decided that he might like to learn how to program. He has been fascinated by computers for a long time -- mostly due to computer games.

    I've been programming since I was 8 -- about 18 years now -- and I started with BASIC on a VIC 20. I don't think BASIC is the way to go these days, so when I started to teach my brother I thought first of Python. Python has a lot of advantages for beginners and is an excellent tool for teaching programming. It works great for procedural, object oriented or even functional styles.

    So far he loves it! At first we were using Dive Into Python [diveintopython.org] as a guide, but he wanted something that he could handle more on his own. Dive Into Python is much better for programmers looking to pick up Python. After a bit of searching I settled on Michael Dawson's Python Programming for the Absolute Beginner [amazon.com]. I gave him that book for Christmas and he has loved it!

    The cool thing about Dawson's book is that the example programs are all games. It starts really simple (guessing games and the like) but by the end of the book Dawson has you using graphics and animation (thanks to Python's great package support). If you're looking to help someone learn programming then I'd have to really recommend Python as a start and a book like Python Programming for the Absolute Beginner as a guide.

  • by xtermin8 (719661) on Monday January 03, 2005 @06:26PM (#11248746)
    I remember logo, I also remember being discouraged from learning about programming computers because I wasn't good at algebra, and wasn't good at rote memorization. I regret not learning. Its easier for people to see why they failed to learn than why they had success. You might specifically ask nonprofessionals (perhaps women in particular) what would have encouraged them, rather than asking professionals, who often had natural inclinations to take up programming anyways.
    • I don't know about that - I really wasn't interested in the Apple ][ until Sabotage (paratrooper on the PC) came around. After playing that, I wanted to learn to write something like that and learned BASIC. BASIC was too slow, so I learned Apple ][ Assembly. It cascaded from there. I sucked at algebra, myself, but was a god at Geometry, so that made up for it. Quite honestly, I use so little math in my day-to-day coding it doesn't really matter.

      A friend of mine from HS was encoraged to learn computers
  • by hey! (33014) on Monday January 03, 2005 @06:34PM (#11248854) Homepage Journal
    Remember how clueless your parents were? Still managed to raise a geek, right?

    So, just concentrate on raising a bona fide geek, the rest will take care of itself. No sense ramming soon to be obsolete skills down their little throats; ideas matter more and attitudes even more so.

    True story from a couple of days ago. The Dear Little Ones were whining to play on the computer. "We won't be happy unless we get to play on the computer." Well, you can't take that kind of guff from the DLOs, so I said they were going on a ranger lead nature hike at the local park. Oh, the humanity. Well, as soon as the DLOs hit the trail, they had a blast. They learned how to tell rabbit scat from deer scat. They learned how you can sometimes tell coyote tracks from dog tracks. Then we capped it off with a short cut over a rocky hilltop and slippery descent down the far side.

    They switched to wheedling more nature hike time on the drive home. Which is great: you build memories that will last a lifetime, you give them physical exercise, and you make them enthusiastic about science all at once.

  • by NitroWolf (72977) on Monday January 03, 2005 @06:46PM (#11248995) Homepage
    A strange as that may sound to some, PHP is the "new" basic being taught at many community (and 4 year?) colleges.

    My local community college switch just this year from teaching QuickBASIC to PHP as the starter language. At first I was like... WHaaaaa?

    Then I got to thinking about it, and realized that PHP can be as simple or as complex as the user wants it to be, and it really *is* a good starter language, and a spectacular path towards C++. The web browser is something most people are already familiar with, and what can be better than designing programs that communicate with your web browser if you want, or they can do other things, obviously... but the web browser is pretty close to a basic prompt, and you can do some neat things that would be entertaining for kids (maybe not 3 or 4 year old kids, but 7 or 8 and up).

    If you're like me, your first reaction is going to be the "Whaaaaaa?" to it, but stop and think about it and give it some serious consideration before dismissing the idea... it really does have some merit.
  • Squeak and e-toys (Score:5, Informative)

    by Junks Jerzey (54586) on Monday January 03, 2005 @06:47PM (#11249004)
    Squeak [squeakland.org] is a fairly popular approach at the moment. I don't know of any schools that use it directly, but I've run into free camps that promote it. Squeak is a platform-independent Smalltalk, but when teachers say "Squeak" they mean the e-toys framework for building little interactive applets. IMO it's an interesting little system, but fairly awkward to pick up.

    For older kids, the game-oriented BASICs give quick results--things like Blitz Basic, Pure Basic, and Dark Basic. Almost certainly you want to steer kids away from stuff from the dark ages, like the Linux command line, makefiles, gcc, etc. I know, I know, lots of geeky types are going to hate that suggestion. But stop, take a step back, and just see the reactions you get to that stuff. It's not that it's unusable, just that it feels so awkward and out of place in the modern world. Show someone DrScheme, for example, and then show someone Emacs and makefiles. Your student will be horrified at the latter two.
  • by Dwonis (52652) * on Monday January 03, 2005 @06:48PM (#11249022)
    Probably the worst thing you can do is use a computer that you care about. It's absolutely critical that the child be allowed to experiment and try new things without worrying that he/she might break things irreparably.

    Older computers that had only tapes/floppies were better in that way, since it was pretty hard to ruin media that was either in the drive with write-protect enabled, or in the desk drawer.

    You probably also want to have programs (read: games) available that can be changed easily.

    I haven't tried Macromedia Flash, but I'd look into it.

  • by jbum (121617) on Monday January 03, 2005 @06:49PM (#11249024)
    One of the nice thing about early 80s PCs was that the individual pixels were large. So you could accomplish a lot with a simple program like this one (which I often entered into floor models at the local radio shack):

    10 COLOR RND(15)
    20 SET(RND(20),RND(20))
    30 GOTO 10

    Sadly, it is harder to find programming environments for kids that provide this kind of simplicity these days.

    Last year I started teaching high school aged kids to make simple videogames using Flash. My class is called "Make your own videogame in Flash Actionscript". Essentially, my class is an introduction to programming, and something of a "stealth math class." I would much prefer to be using BASIC on old VIC-20s, but Flash isn't too bad for this activity.

    I'm aware of the huge anti-Flash sentiment on Slashdot - one I generally share when I see it needlessly used on websites. However, I think Flash is pretty good for teaching kids to program.

    Since it's vector based, the equivalent code to produce the effect of the above (raster based) BASIC program is too large (see http://krazydad.com/bestiary/index2.html [krazydad.com] for my implementation), so I have had to rethink how I approach things. I have to start with programs that are simple in Flash, not programs that were simple for me in 1981.

    Still, I have to spend a couple classes getting past some unnecessary high-level concepts integral to Flash (like "timelines" and "the stage") but eventually we do get down to programming.

    When a kid writes that first program in which they can control something on the screen, they invariably yell "Yes!!" or "Alright!!" This is why I like teaching programming.

    The reasons I chose Flash, over something like LOGO (or Squeak) are:
    • It provides a hands-on enviroment for the kids to paste in their own artwork and manipulate it without yet knowing how to code.
    • It's possible to make some very simple games that look good without a huge amount of coding.
    • The kids can share their games with others by publishing them on a website.
    • It's a real-world technology that may get them a job or money.

    • If you fear that teaching your kids Flash leaves them too many chances to stray from nice safe animutations to actually doing something useful (I'm being sarcastic here), another thing you could try is one of the many programming games that are out there.

      Free ones like GNU Robots and Core Wars are a good no-cost option, but I imagine that with their lack of flashy graphics, they would fail to capture the interest of most kids nowadays. I would suggest instead tracking down Mind Rover (out for both PC and
  • Python (Score:3, Interesting)

    by Beowulf_Boy (239340) on Monday January 03, 2005 @06:50PM (#11249041)
    I am in college for a game design major. There are 2 sets of courses. One leaning more towards art, and one more towards programming. I switched to this major, and am having to take alot of freshman classes this year (I'm a sophmore), so I can speak from kind of a "already knowing how to program" kind of stand point.

    I would have to say that Python would be a rather easy language, but with all of the neccesarry parts, to teach the child. Its very easy to get a game programmed. It only took me about 20 minutes on my first try to make a simple program that opened a window, created a border, and let me move a sprite around the screen with the keys on the keyboard.

  • by Specabecca (830521) on Monday January 03, 2005 @06:57PM (#11249109)
    I grew up in a geeky home with both a dad and older brother consumed with computers.. yet it was not something I wanted to be a part of until I hit college. Females take to computers in a whole different way. I didn't care how to do the little tasks here and there, like fixing little problems that I deemed 'computer janitor' type jobs that periodically sprung up when I was doing basic gaming and word processing. What I wanted to know was the big picture. I needed things explained to me in terms I could understand/ relate to. Something like 'computer story time' would have sparked my interest when I was little, breaking down how the various components communicate with one another and what their jobs were inside the computer first on a broad scale, then breaking it down into finer pieces as time passes. Starting a task like 'ok, we are going to install a new nic into the computer' and explaining WHY you are doing it before you do it, what it does, etc and then displaying the results in a meaningful fashion might useful too. Long story short, fixing something because it is borken just didn't excite me. It doesn't excite a lot of females. Fixing something with a story, with a purpose, with results you can prove to her after the fact.. now that's exciting.
  • by Krafty Koder (697396) on Monday January 03, 2005 @07:16PM (#11249306)
    "Twenty years ago, it seems there were much more clear and concise paths one could take to learn programming. Now I'm at a loss as to what language and resources I should use."

    He hits it on the nail - when i started off on the ZX Spectrum way way back in 1983, it was very very easy to get into programming.

    1. Buy zx spectrum
    2. Buy Your Sinclair magazine

    Your Sinclair was just packed full of Sinclair Basic programs for you to type in - through that, you learned about programming. It really was kind of an open source way of learning about programming and it was just BASIC , but at least it gave my former 12 year old self a leg up and a way in to murky world of coding.

    Fast forward to today and i dont see a "Your PHP" or "Your Python" kind of weekly magazine. Dr Dobbs magazine comes close, but that's really seriously high level.

    Yeah, i know - PHP and Python have tons of websites, but in reality , a printed magazine on the newstands would make an impact. Maybe we , as in the Slashdot crowd or the more general open source community, should seriously think of going back to "old media" and think about doing a printed monthly magazine with nothing but code in it in order to give the youngsters of today a bit of inspiration.

    maybe we've been too self-centred and too self-obsessed with the whole "internet" thing that we've forgotten where we've come from.

    we need to reach out and get the kids that dont use the internet involved. maybe that's what might happen over the next few years - new media re-discovers the old media. a kind of influx of new media types into the world of real world publishing.

    just my 2 euros.
  • Python works (Score:3, Interesting)

    by uber-human (842562) on Monday January 03, 2005 @07:19PM (#11249342)
    Being 14, I hope I can shed some light on the problem.
    I started out writing simple programs for the basic interpreter in my Ti-83 graphing calculator. Noticing I was interested, my dad got me started using Python.
    I'd say python is by far the best choice:
    -It's interpreted, so you get instant feedback
    -It's simple! I could teach my 10 year old brother to use it
    -It's not 'write only'; you can look back on old projects and understand every line of code
    -Lots of good documentation


    Give it a try and you'll see what I mean.
  • Philips MSX-2 VG8235 (Score:3, Interesting)

    by owlstead (636356) on Monday January 03, 2005 @07:37PM (#11249511)
    I really wanted the Sony (2 x double density disk drive), but it was deemed too expensive by my parents. They bought the darn PC after quite a time of nagging from my side. It even had floppy disks and quite good graphics and sound for that time.

    But the most important thing: it came with a MSX DOS & BASIC handbook. The thing booted in BASIC and I became used to loading the first games from that. The first BASIC programs (starting with the print statement in a loop), but in a few years I was even doing assembly stuff. Z80 is a fun and easy processor to program.

    The problem back then was finding people with the same interest. There were a few that did some basic C64 stuff and even a few MSX owners around the place, but nothing fancy. The only advanced refference I got later was an MSX 2 reference book, but it was stolen out of the library by a misserable sod, who happens to be my friend until this day. I stole it back and got it laying around somewhere.

    Currently the problem is getting a nice programming environment. HTML is just data, and JavaScript is awkward and ugly to program. No programming tools are installed with Windows as well (and Windows scripting is just too much). I wouldn't recommend scripting and OO is a bit much to start off with.

    The good thing is the internet. LOGO is still around, and is probably a great thing to start off with (it's free you know). I've got LEGO mindstorms and that learn children the basics really easy, using flow diagrams, but it is pretty expensive (~250 dollars for the one you can program). Anything that is easy to learn and visual may sufice though. And make sure they've got plenty of refferences - get the school involved or something.

    If everything fails, fall back to BASIC, even using an MSX emulator if you must. Don't forget to unlearn it though once they get the basics. Visual Basic is the worst PL on the planet.
  • Logo all the way (Score:3, Insightful)

    by Anthony Liguori (820979) on Monday January 03, 2005 @07:49PM (#11249604) Homepage
    My elementary school had a computer lab. A very rare thing (this is circa 1988). The had a small elective class thing for second graders that taught logo. You learned the basic commands then had some time to make your own drawing.

    Most students wrote simple circles and squares that took about 3 lines of logo. I drew a house with trees and stuff. It was a few pages of logo. It was enough that the teacher called my parents and told them I should go to a special school to learn programming.

    My parents said no. They thought it was a little too weird. However, my parents got a computer (an IBM PS/1) and within the next two years my Uncle while visiting showed me how to use Basica on it.

    That was it. I don't know why but it sparked an interest. I went out and continously checked out the two books on programming the local library had (one on Basic and one on C). I read them cover to cover and saved up 500 to buy my first used laptop around 1993. It didn't come with an operating system so I put this "hacker operating system" called Linux on it. Took me a couple years to figure out how to get X to work but I was able to use gcc which was all I cared about.

    So, at the end of the day, I think I would have gotten into programming no matter what. It may have been later than I did but I do believe it still would have happened.

    My advice? Don't try to introduce your children into computers. Expose them to everything, see what they take to, and nuture it. I know most people want their children to be successful, but I also think people are most successful when they're doing what they love to do.

    Just my thoughts.
  • IENJINIA (Score:3, Interesting)

    by magoghm (836822) on Monday January 03, 2005 @07:52PM (#11249625) Homepage
    You can take a look at http://www.ienjinia.com/ [ienjinia.com]. It is designed for teenagers rather than for kids but my 9 year old son likes it a lot.
  • by ccmay (116316) on Monday January 03, 2005 @08:15PM (#11249800)
    You little shits don't know how good you have it.

    I learned FORTRAN programming with paper punch cards on a DEC-10 mainframe back in the 70's. It was a big step up when we got paper-feed TTY terminals and could program in BASIC using a real directly-connected keyboard. Eventually I did some COBOL on a VT-52.

    It was at least a decade before I got to ANSI C on an IBM compatible, about the time all of you little nose-pickers were born.

    -ccm

  • POV-Ray and Marathon (Score:3, Informative)

    by cjameshuff (624879) on Monday January 03, 2005 @10:24PM (#11250685) Homepage
    It was Marathon, an early Mac first-person shooter by Bungie, which first got me really interested in computers...especially when I discovered the tools for modifying the graphics and physics model, and for creating maps. I loved the idea of creating a virtual 3D environment.

    Then I discovered POV-Ray (http://povray.org/ [povray.org]), a photorealistic raytracing program with publicly available source code, and which uses a scripting language to generate the scenes. Getting an actual picture as feedback when you get a working program is far more encouraging than a simple blurb of text. By this time, I'd learned Pascal and C++, but the most complex projects I did were in POV-Ray. In the process, I learned a great deal of mathematics...the images I could generate provided motivation as well as an illustration of how things worked mathematically. It's a lot easier to learn the stuff when you have a practical need for it and can see how it works.

    And perhaps best of all, when I decided the program was too limited, I was able to get into the actual source code and make my own changes and additions. I don't recommend doing this as an introduction for beginners, as the program is quite complex and has some rather messy code, but just generating images with the scripting language is a great way to start.
  • Get them a pony (Score:3, Interesting)

    by Animats (122034) on Tuesday January 04, 2005 @01:35AM (#11251598) Homepage
    Why should kids learn to program? It's a specialist skill with declining value.

    Get them a pony. This will teach them to deal with an animal that's cooperative enough that you can do something with it, but independent enough that it's not easy. This prepares them for management.

  • Lego Mindstorms? (Score:3, Informative)

    by Paul Johnson (33553) on Tuesday January 04, 2005 @04:27AM (#11252064) Homepage
    Try Lego Mindstorms. One thing that gets every kid is wanting to build a robot, and with Mindstorms you actually can, and then you can program it using the simple kit that comes with it. And once you have outgrown that you can go to the Mindstorms hacking sites and get the more advanced stuff. It will grow with a child.

    I loved Meccano and Lego when I was a kid, but the most advanced automation stuff in those days was a photo sensor and relay.

    Paul.
  • My thoughts (Score:3, Insightful)

    by Piquan (49943) on Tuesday January 04, 2005 @04:36AM (#11252082)

    I just got back from celebrating my nephew's third birthday. He takes after me in a lot of ways, and so I'm guessing he'll have fun with programming.

    For Christmas and his birthday, I got him a KidzMouse [kidzmouse.com] (icky website, great product) and some non-computer stuff. The KidzMouse was because his hands can't use his Mom and Dad's mouse, so he has to have Mom do all his mousing when he plays games. I felt that this interface might discourage him from exploring on his own; hence the KidzMouse.

    I've been thinking about him learning a lot lately. Buffy fans remember what she said to her kid sister in "Grave": "I don't want to protect you from the world. I want to show it to you." That's how I feel about my nephew. I want him to be able to experience art, and music, and science, and nature, and-- of course-- technology. I'm not going to shove anything down his throat, but by golly I'll make sure he has the tools he needs to discover them on his own.

    That's shaped my choices of gifts for him a lot. I'm trying to stay on the topic of computers here, so the KidzMouse is one example. (I also set up video conferencing, mostly because I'm tired of only seeing him once or twice a year.) I think that this is the most important thing you can do: make sure that the kid has the tools to explore, and learn whatever they want on their own.

    So here's what I see as needs. First off, an interactive environment: you should be able to give a command, and immediately see the results. Second, no file editor, no IDE, none of that mess. He should be able to concentrate on playing with the environment, instead of learning the editor (and the associated problem of saving from the editor and loading into the program). You should be ready to introduce an editor, but wait until his programs get long enough that the editor becomes a programming aid, not a necessary step.

    You can easily set up a .bash_profile or .xsession to launch a programming environment, and exit when it's done. That can spare him from bash. (Again, remove everything that's not an actual aid to programming at this stage!) But which environment?

    Python is probably the closest thing you'll get to our old ROM BASIC. It's fast and easy, and pygame sets the stage for much fun. But without a save or list facility, Python may have some problems. I'm not aware of any way to save an entire Python state, a la Lisp, but you could probably write it based on unexec [python.org]. You can use this idea to implement a "save" command, and just use exec for "load". It's probably pretty simple to write in a kludge to save functions for listings.

    The other problem with Python is that it's difficult to edit programs in the interactive mode. You can redefine functions, but you have to retype the whole thing. The one good thing about line-numbered BASIC was that you could quickly make a simple change to a routine.

    So you might prefer StarLogo or the like. Many of us started on LOGO or Pilot before we got into BASIC, and I think it's a good environment. Also look at Squeak, which I think has great potential in teaching to program. If I were in your shoes, I'd probably focus on Squeak, unless you're scared of Smalltalk. StarLogo and Squeak deal with the editor issue pretty well.

    You will need to provide him with some starting points for exploration. Our generation learned by typing in listings, and then modifying them. I can't really think of a better way. Programming books are too linear; they don't tend to encourage as much exploration. Certainly, have some books available, but I think that "let's play with this and see what we can do" is much, much more important than "let's proceed along these lessons in this order". I'm teaching a friend of mine how to program, and I'm always thrilled when he starts going down his own path instead of staying on my lesson plan. (Well, al

  • The magic moment (Score:3, Insightful)

    by Dunkirk (238653) <david@dRABBITavi ... minus herbivore> on Tuesday January 04, 2005 @08:02AM (#11252532) Homepage
    I just relayed this story to someone else. Odd.

    I was born in '69. When I was 10, everyone was getting Atari 2600's. My dad steadfastly refused to get our family one. He wanted to get a more expensive computer, which would do more than just play games. We finally got a Vic20 (as many others on this subject are talking about), and, yes, we played a lot of games on it.

    I learned a little about programming the thing, thanks to a local computer club and Byte magazine, but it wasn't until I wanted to write my own program for my own purposes that I really took an interest. Of course, at the time, I was getting into D&D. So, naturally, my first program was going to be a character generator.

    I wrote the core of the program using the "roll 3d6 3 times and take the best score for each trait" method. I think I had just over 50 lines of code for the actual dice rolling part. I showed the code to my dad, and he said that he thought he could do it in 6 lines. *That* got my attention. So we worked on it, he introduced me to nested loops, and it worked out to be 5 lines. I was hooked. Programming has been a way of life ever since.

    Later, I begged Dad for a C64. He told me that I had to run the Vic20 out of memory. It took me another year of work. The character generator took 20 minutes to load from cassette tape drive. But I finally got it over 4.5 KB in size, and Dad was good to his word. He got me a C64, a 1541, and one of the dot-matrix printers. (I never got the monitor, though.) I'm going to sell the whole kit on Ebay soon.

    There are a couple of points in the story that I think are essential.

    1) You *MUST* have your own motivation for learning how to program. A personal interest in the outcome and a definitive vision for how you want it to work are critical. Nothing else will motivate you to put up with the hassle of using computers.

    2) Like the old saying "writers write," which means that people who will be good at journalism will already be writing, in diaries or short stories or such, "programmers program." There are people who program as their job, and there are programmers: people who want to do something specific with a computer, evaluate the options, and, if nothing satisfies them, write their own solution, no matter how small or big that winds up being.

The person who's taking you to lunch has no intention of paying.

Working...