Slashdot Mirror


Introducing Children to Computers?

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."

119 of 886 comments (clear)

  1. Linux, the open OS. by garcia · · Score: 4, Interesting

    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.

    1. Re:Linux, the open OS. by sevinkey · · Score: 2, Funny

      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!

    2. Re:Linux, the open OS. by Rorschach1 · · Score: 3, Insightful

      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.

    3. Re:Linux, the open OS. by Pfhreakaz0id · · Score: 4, Interesting

      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!!!

    4. Re:Linux, the open OS. by jawtheshark · · Score: 3, Interesting
      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 Persia... The one he knows from his Gamecube. Worlds of difference. They know they can't do it... Heck he was absolutely high on the fact he could have colour on his GameBoy advance... Then I showed him my Sega Game Gear, which is about 10 years older that the GBA. I don't think he understood the meaning of it yet.

      Our worlds are so different.

      --
      Ahhh...the great dumpster continuum. Many a free computer will be found there. -- sowth (748135)
    5. Re:Linux, the open OS. by calibanDNS · · Score: 5, Insightful

      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.

    6. Re:Linux, the open OS. by 0racle · · Score: 2, Insightful

      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 more then its surprising that any OS ever works.

      --
      "I use a Mac because I'm just better than you are."
    7. Re:Linux, the open OS. by NMEismyNME · · Score: 4, Funny

      "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".

    8. Re:Linux, the open OS. by Anonymous Coward · · Score: 2, Funny

      All you young whipper-snappers who are still in the days of the C64, should be fans of:

      http://www.viceteam.org/

      Works great under linux...I play with it all the time! ;-)

      But hey, I'm quite a bit before the c64...my first experience with "computers", was a high school computer science class in Grade 11 in 1973...we had a keypunch machine! What's that, you say? It is (was? :-)) a machine that punched rectangular holes in cardboard cards (something known as Hollerith code ;-))...decks of thousands of them. One program line per card. Usually in FORTRAN, or perhaps Ibm360 assembly, or some other god-forsaken torture. But we loved it dearly, and couldn't wait the two WEEKS it took for the printouts to come back. You /.ers are soooo spoiled :-). Monitors!? You've got monitors? And you just type in your program on a screen editor, and then run it right away? Gawd, what luxury! :-)

    9. Re:Linux, the open OS. by harborpirate · · Score: 2, Informative

      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). But the TI allowed me to write my own games. Sure, the TI BASIC interpreter was slow as hell, and the calculator didn't have enough memory to code anything really cool, but I did manage to write at least 10 games for the thing. A number guessing game, a blackjack program, even a highly simplified version of Armor Alley (which really was more like an airborne Moon Patrol than anything else). Still, it featured a climactic battle against an evil enemy helicopter, which was pretty neat considering I didn't know hardly anything about programming at the time.

      I plan on using the calculator as a tool to introduce my son to programming. He's 2 and a half now, but someday he'll get interested in games. And when he does, I'll be sure to quickly dispel the "magic" that surrounds their creation, and show him how he can even create his own.

      As for your brothers-in-law, you may want to look for a BASIC interpreter, and write (or "find") a couple simple BASIC games that they can modify. Sure, they aren't rocket science, but the fact that you can toy with their innards and make them do other things is what gets people started. All they need after that is a BASIC manual, and maybe some helpful pointers. If they have the right mindset, they'll get excited about it, you won't be able to stop them! (Just wind them up and watch them go, as it were.)

      I think the lack of amazement at computers these days is twofold:
      1) Computers are everywhere. Everybody has one. They're just ordinary tools to people now.
      2) Computer programming has gotten very high level, and very "untouchable" to the average person. Consoles make this problem even worse. You can't just sit down and code Quake Eighteen in a couple nights. Heck, even the mods take a person with a lot of programming skill a long time to complete.

      Good luck. (And if you're really desperate, start looking for a TI-82 on ebay :)

      --
      // harborpirate
      // Slashbots off the starboard bow!
    10. Re:Linux, the open OS. by Flammon · · Score: 2, Interesting

      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 about the demo scene, where you into that? It always seemed like the Finnish guys ruled. Ok enough of that reminiscence, I need to complete my PHP/MySQL project and start my new Ruby app.

    11. Re:Linux, the open OS. by p00ya · · Score: 2, Interesting

      My brother and sister taught me how to program BASIC on the family C64 when I was four-or-so. Mostly I was just interested in playing games, the best of which were written in assembly, but it was fun to hack the games written in BASIC (once I knew the demand function for lemonade, I was suddenly a great businessman). PEEKs and POKEs would have been the most advanced I ever got in those days.

      As for learning now, I'd recommend sticking with something high-level. Something high-level like Java is good, because you can produce applications that look like the other applications you use everyday with very little experience, which can be highly satisfactory. Starting off with assembly and getting "hello world" printed to a console will be novel, but too far from the non-hacker kid's general experience with computers to give the impression that programming can be genuinely useful in practice.

      If the kid was a real nerd/hacker, they'd already know some flavour of assembly by the time they're 14. So chances are you're dealing with someone who will benefit most from learning how to use computers and programming more effectively to help them day-to-day; not someone who wants to know the best way to balance a tree on a sequential-access medium.

    12. Re:Linux, the open OS. by The+Fourth · · Score: 2, Interesting

      It all started with the movie Wargames. The concepts of modems, AI, war-dialing that movie had it all. For me it started with my puny 16k Funvision (aka Dick Smith Wizard) computer and basic cartridge. I of course moved on to Amiga, then PC and am now a Systems Engineer.

      The hook for me was knowing something that others didn't. Friends had ColecoVisions and C64's playing these awesome games like Elite... I had thousand line text adventure games coded by me, all stored on the B side of my Pseudo Echo Cassette. Today one's a pharmacist and the other welds trains back together, I'm still writing games...

      You do it because you want to, you can't force it.

    13. Re:Linux, the open OS. by Weirdofreak · · Score: 3, Informative

      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.

  2. On the "computer programming" question by koreaman · · Score: 3, Insightful

    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)

    1. Re:On the "computer programming" question by IllForgetMyNickSoonA · · Score: 4, Insightful

      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.

  3. BASIC by gaber1187 · · Score: 3, Interesting
    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... :-)

    1. Re:BASIC by PaintyThePirate · · Score: 4, Insightful

      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.

    2. Re:BASIC by Khomar · · Score: 2, Interesting
      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 too late for me. I was hooked. I started with a statistics based baseball game and then moved onto a windows based teachers gradesheet program. I went on to get a CS degree and have become a decent application designer/developer. It all started with my dad giving me a little push to see what I could do. Go Dad!

      I would argue that you might need to give kids that little push (in one way or another). With all of the advanced games and applications out there, they may see little need or desire to even learn how to create on their own.

      --

      I believe in de-evolution. God made the world perfect, man fell, and its been going downhill ever since!

  4. When I was young... by trisight · · Score: 2, Interesting

    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 know that I owe it all to him. Feels good when he comes to me with programming questions now. Kinda brings a little tear to my eye...

    --

    The Nomad
    "Men of lofty genius when they are doing the least work are most active."-da Vinci
  5. The most important thing (imho) by wcitechnologies · · Score: 3, Interesting

    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.

    --
    Electrons are free; it is moving them that becomes expensive.
    1. Re:The most important thing (imho) by savagedome · · Score: 3, Funny

      At that stange of life

      I recommend a spell checker too.

  6. karel by utexaspunk · · Score: 4, Informative

    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 that's what we used in high school before learning pascal, and it made the structures seem very logical.

  7. About 12... by jawtheshark · · Score: 2, Interesting
    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 why I enrolled after highschool in the computer science classes in a not too remote University. I learned about Linux and BSD, became a OpenBSD fan... I managed to get through my eductaion and get a job as a programmer. I launched Java in the company that took me (and it was a big commercial success), and now... after 6 years... I quit that company. I left to become a teacher... I'll be teaching computers to high schoolers... and so the circle ends.

    --
    Ahhh...the great dumpster continuum. Many a free computer will be found there. -- sowth (748135)
  8. Logo is a good... by tekiegreg · · Score: 2, Interesting

    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...

    --
    ...in bed
    1. Re:Logo is a good... by bloosh · · Score: 4, Informative
      I teach Berkeley Logo 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.

  9. Pr0n! by Tackhead · · Score: 4, Insightful
    > if nothing else works, tell them there's porn on the internet ;)

    There's porn in this .tar file. Here's a spec for the .tar file format. If you can write a program that extracts the .tar, you can keep the pr0n!

    If you replace "pr0n" and "tarfile" with "game" and "disk", that's pretty much how I got started.

    I asked what the computer was for. They told me it could be programmed. I RTFM'd, and figured out how to use the thing to "program" a game whose source code was in the form of ink spots on dead trees.

    From there on, it wasn't too hard to figure out that I could make the game better by changing some of the numbers (probability of hitting a target, radius of a targeting circle, etc).

    By the end of the day, I realized I was having more fun programming the thing than I ever did playing the game.

    It's been 20 years now, and I'm not hooked. I could quit any day I want to. I just don't want to.

  10. Parallax Basic Stamp by mainlylinux · · Score: 3, Interesting

    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/ Dan

  11. Re:Duh by slungsolow · · Score: 2, Interesting

    Yes, it is amusing... but one of my greatest memories ever dealt with downloading a topless picture of Cindy Crawford off of a BBS. I think it took a good 15-20 minutes to download and my brother had previously installed a program that let you view the image as it came in. Oh man it was killer.

    Now the earliest I remember would be playing some tape based games off of my brothers Commodore 64. I don't remember the games that well, and I know my brother hated to let me use his computer, but I think it was worth it.

  12. Quest for Glory... by FortKnox · · Score: 4, Insightful

    ... 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.

    --
    Good quote, too many chars. Seriously, the slashdot 120 char limit sucks!
  13. Start 'em young by J-Doggqx · · Score: 2, Interesting

    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 handle it. Dust off a copy of BASIC and show the kids what you can make a computer do. It doesn't take much.

    --
    END OF LINE
  14. F5 by kngthdn · · Score: 2, Interesting

    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 office each month, which was much better than it is now.

    DOS is (almost) gone now, but I suspect the GNU tools & BASH might be be best for kids just getting into computers. Forget Windows...they'll just use IM & surf the web. Java is far to high level, and C++ is too complicated. A few years messing around with gcc and Dr. Dobb's journal should do the trick.

  15. Cold, Hard Reality by Mignon · · Score: 5, Funny
    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.

    1. Re:Cold, Hard Reality by Tragek · · Score: 2, Insightful

      It's sad but nearly true. I think people should almost be forced to take a legal studies course before touching a computer. At least that way they know partially WTF is actually being said in an EULA. I try to read them, but, the way they screw with the language screws with my brain in a way nothing but Brainfuck does.

  16. Whoa, Cowboy! by ackthpt · · Score: 2, Insightful
    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.)

    --

    A feeling of having made the same mistake before: Deja Foobar
  17. Computer ??? by lexsco · · Score: 4, Funny

    you were lucky. There were 150 of us using abacus in middle of 't road.

  18. Lego Mindstorms by LWATCDR · · Score: 5, Interesting

    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.

    --
    See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.
    1. Re:Lego Mindstorms by Unordained · · Score: 2, Informative

      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 functions, so once you learn how to use the small pieces, you can start moving up to higher-level concepts. All in all, it's a good way to learn programming. And while you're at it, you're likely playing with lego Technic, which introduces kids to all the wonders of mechanics, physics, building nice modular things, etc. Kind of a two-fields-in-one toy.

      I think some amount of programming should be required for everyone -- people are absolutely incapable of describing what they want or how they want it even in daily situations; between that and horrible reading/comprehension skills, it's amazing we ever get any sort of specs, or work at all, out of our users. One of our professors always like to start out his intro-to-CS class by asking people to describe, precisely, how to get from the school to the shopping center; it served to explain the low-to-high concepts in programming, functions, code re-use, algorithms, everything.

      As a kid, my brother and I battled out our differences on AT-robot, using assembly-like instructions to lead our killer robots to victory. It's a lot more fun when you're competing in an iterative process against someone you know; at first we'd build robots tailored to defeat a specific opponent, then when that started to not work as well, robots that were more general-purpose. I had learned the concepts of assembly before going to college and having an actual course in it (x86-based), which was handy. Interrupts, registers, call stacks, moving memory around manually, it was all there.

    2. Re:Lego Mindstorms by grumpycat · · Score: 2, Interesting
      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.

      I don't think that's true. Buy them a Gameboy Advance, a FLASH cartridge and download Dragon Basic. They can advance onto GCC (or even ARM assembly for time-critical code) over time.

      The GBA has C64-era (Amiga maybe) graphics (sprites, rotation, scrolling) and programming for it can be very rewarding (press LEFT, the blob moves left). Dragon Basic is apparently very capable for beginners.

      Grumpy.

      GBADEV

    3. Re:Lego Mindstorms by Yolegoman · · Score: 2, Informative

      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 favor and set up NQC (Not Quite C) for him. It's simple enough, you can actually call real functions with parameters, and the child learns basic programming skills at the same time.

      I think the Lego Mindstorms set is awesome, heck, I have 3. But the programming environment included is really, really lame.

      - Yolego

  19. Doom did it for me... by farsideofthemoon · · Score: 2, Interesting

    I became addicted to Doom and Wolfenstein back in the day and only in between playing doom did I mess around with the computer to do other things and gradually gained more and more knowledge. Also when I was much younger my dad wouldn't let me touch his computer so when I was finally around one that I could I did everything I could imagine(except that you sick bastards).

    --
    I know what's on your hard dr
  20. Personally, I will keep my kids away from them by hsmith · · Score: 2, Insightful

    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.

    1. Re:Personally, I will keep my kids away from them by ian+rogers · · Score: 2, Funny

      Get your kids a laptop. Then they can sit around and be lazy, but be outdoors at the same time.

  21. Oregon Trail by Origami+Unicorn · · Score: 2, Funny

    Honestly, I have no better memory of my introduction to computing than Oregon Trail for the Apple II. I fondly think back on shamelessly killing hundreds of pounds of buffalo, only to bring fifteen back and have Sarah die of a cholera.

  22. The making of a hacker by Dark+Coder · · Score: 2, Interesting

    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.

  23. quick and easy: HTML and JavaScript by mblase · · Score: 2, Informative

    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.

    1. Re:quick and easy: HTML and JavaScript by Daniel+Dvorkin · · Score: 2, Insightful

      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, which is to start up a particular application and then do something with that application which produces instant results on screen. HTML is the perfect middle ground between writing code (vs. just using an application) and the instant gratification most people expect from the standard apps.

      --
      The correlation between ignorance of statistics and using "correlation is not causation" as an argument is close to 1.
  24. Infocom and Games magazine by MilkmanIAC · · Score: 2, Insightful

    While it might be tough to get any kid these days enthused about typing 4 pages of Basic to get a little sprit based "Game", I'd think that you might have a shot at getting a child on the right track with something like Zork II. (A WELL!!! Took me months to figure out that one) Typing is such a core skill, and you don't want someone to learn how to type in chat rooms, or email.

  25. Python by __aadidx2690 · · Score: 5, Informative

    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 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. 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.

    1. Re:Python by uber-human · · Score: 3, Interesting

      I learned for the same book. It's perfect for people without prior experience.

    2. Re:Python by Noksagt · · Score: 4, Informative

      Python is a wonderful choice: it is easy to learn & quick to code in, but can be scaled up to larger projects. For the younger children who need to understand even more basic computer concepts, it can also be scaled down:

      PyLogo is Logo implemented in Python

      Guido van Robot is similar, but so much cooler.

      Finally, livewires has an excellent Python tutorial.

  26. Wanna-be programmer was discouraged by xtermin8 · · Score: 2, Insightful

    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.

    1. Re:Wanna-be programmer was discouraged by Creepy · · Score: 2, Interesting

      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 because her dad worked with Seymore Cray. She was never quite the programmer my group was (very few people were - how many 12-14 year olds do you know that are writing code professionally?), but she was the only female geek I knew in that era. Her dad encouraged creativity - think of something you want on the computer, then try and create it. He would then help her design and help her when she got stuck writing code.

  27. Bally Basic by Saxerman · · Score: 2, Insightful
    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 flashing and scrolling text along with beeping sound effects. Family members were dutifully impressed and delivered gushing praises on my young and impressionable mind.

    Now my family seeks my approval to de-louse their machines of (ad/mal/spy)ware. Since they are family I only charge them 60$ an hour... unless they switch to Linux in which case I offer my services for free.

    --

    A steaming cup of soykaf would be real wiz right now.

  28. Ham Radio - Simply Put... by ka6wke · · Score: 2, Informative

    It was ham radio that got me into computers. Something about hooking my Vic20 up to my Hallicrafters HT32B, and Drake 2A to send and receive morse code was all that it took. I know people are saying there's nothing good that comes out of ham radio, but they are wrong, dead wrong. It's been a driving force in my education and my career. My kids are showing an interest in ham radio, and I hope it'll stay around for them to learn from. .mark

  29. I don't worry about this kind of stuff. by hey! · · Score: 2, Insightful

    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.

    --
    Post may contain irony: discontinue use if experiencing mood swings, nausea or elevated blood pressure.
  30. QuickBasic... by Paralizer · · Score: 2, Interesting
    I started programming in QuickBasic around 8 years ago. I remember making a program which asked simple questions like, "Enter your name:", and it would reply, "Hello ." For some unknown reason, it fascinated me. I started reading through the documentation which was provided with QBasic, learning as much as I could. Within months I created a nice little tile-like maze game.

    I doubt this type of solo introduction would be effective with kids today, but starting them out with an easy language which is not very in depth, such as QB, and having the ability to produce some sort of low level game would probably help hook them (unless they are just completely uninterested).

    In the end, and no matter which way they get started, it is going to boil down to their own motivation, and their wanting to learn it.

    I am now a second year college student majoring in Computer Science, and program in C and C++. :)

  31. Re:Step one by ackthpt · · Score: 4, Insightful
    This is very true. How can you expect anybody to figure out how a computer works when all the inner workings are hidden from them, or they aren't even accessible. This is why I like Linux. Even though most of the time I use the GUI, I know that I could do everything by the command prompt if I wanted to. This is what's gone wrong with TV's. You should be able to perform everything with the buttons on the TV, but most of the time, the remote control is needed. If you lose the remote, then you lose a lot of functionality.

    Have you noticed the obfuscation (well, actually you're indicating a familiarity with aspects of it) of television? I've had the creeping dread that media entertainment is heading away from the consumers choice to the conglomerates direction of what we get and how we receive it. You think you have choices, but do you really?

    It's like computers. Most desktops are GUI, thanks to Windows, and are inexplicable. There's crap I want to turn off, or change or am not even aware of 90% of the time. Sometimes I bring up task manager and start killing processes to see what they were actually doing and how necessary they were.

    Most classes on computers, at the outset, do nothing to challenge thinking about why things are the way they are, it is expected the student accept it as a fact and procede. Seems like being handed a credit card at birth and not realising until you're 40 years old that you could actually save up money to buy things, rather than borrow all the time and manage debt. It's seems like there's a debt of knowledge regarding things today , some critical thinking should be a part of any training these days. One thing is certain, things change and what will be in a few years is little like what is today.

    --

    A feeling of having made the same mistake before: Deja Foobar
  32. Short and simple... by 198348726583297634 · · Score: 5, Insightful

    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.

    1. Re:Short and simple... by djdavetrouble · · Score: 3, Interesting

      I don't want my daughter (3 1/2) to come near a computer until she is well into her teenage years. Then, she can learn about computers on some sort of Unix variant. Until then, I want her to be a child and play, read, color, run, jump, etc.


      I understand where you are coming from, but most of us cut our teeth on computers around 3rd grade. My friends and I could write basic programs, and operate the TRS-80 better than our folks. For me the computer turned out to be the only thing that made me any money, all thanks to my engineer dad who was excited about the first personal computers and found a way to buy a Trash-80. I wasn't athletic, didnt sing or dance, hated drawing and painting, but loved to sit for hours fiddling with that piece of junk. My friends were into computers too and when we weren't doing kid stuff outside it was a great wholesome way to pass the time. It certainly is better than getting a playstation or xbox for your young impressionable kids.

      A more sensible approach would be to expose her to it and see if she shows an interest or apptitude for programming or computers, then nurture that if it appears. One of the most adept network admins that I know grew up in a hacker/unix family and was exposed very early to some pretty advanced stuff. If she likes dancing and acrobatics or riding her bike better, then nurture that instead. Besides, by the time a girl is a teenager she won't be the least bit interested in 'unix variants', more like Corey variants and make-up shade variants.

      --
      music lover since 1969
    2. Re:Short and simple... by Miriwen · · Score: 4, Insightful

      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.

    3. Re:Short and simple... by ChoyLeeFut · · Score: 2
      Besides, by the time a girl is a teenager she won't be the least bit interested in 'unix variants', more like Corey variants and make-up shade variants.

      Excellent point. I look at basic computer skills the way I look at basic music skills and the way I look at basic language skills. There are certain ages where you get the ideal depth of development. For example, a child exposed to two languages equally before puberty (ie, bilingual) will most likely speak both languages post-puberty without an accent in either language. But take someone who speaks one language fluently before puberty but has an interest in other language post-puberty, and there's an excellent chance that person will never lose their accent while speaking those other languages. Reason being that certain basics (in this case phonetics) are completely ductile in the early years, but get hard-wired during puberty. Of course the same can be said for physical activities, like sports or martial arts.

      I remember taking piano lessons for about 5 years. I think I started around age 9, because I remember getting completely fed up with "that classical sh*t" (as I remember telling my mom, which surprised her to the point of laughter) at age 13. I managed to get my Royal Conservatory of Music Gr.6, my teacher told me not to bother with the Gr. 7 test and so groomed me for the Gr. 8 test. But my heart wasn't in it, I hadn't practiced and so failed with flying colours. Yes folks, I was becoming a teenager with my own sense of self and things I was interested in. Like my Heathkit Electronic Workshop and Amateur Radio. :-)

      [Sidebar: A few years ago my own son was 6 and desperately wanted to play the piano. So he eventually got piano lessons. He ended up doing well at his lessons (his teacher even complimented him on how much he must have been practicing) but quickly lost interest in doing any practicing at home (even just playing each of a handful of tunes once) and still continued to do well at his lessons. He just wanted to muck around on the electric piano that we had (mostly in demo mode). In the end, we stopped with the music lessons. Still, I can't help but wonder how he would have done, given that I'd done the piano lesson thing, as did my sister, as had our parents (both RCM accomplished) before us. I have fond memories of Dad playing some light jazz on the piano before heading off to work in the mornings.]

      In short, expose your kids to everything, and nurture those creative things they're really interested in, be it art, computers, sports, comedy or whatever.

      --

      The postman hits! The postman hits! You have mail.

  33. PHP is the "new" basic at many places by NitroWolf · · Score: 5, Informative

    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.

    1. Re:PHP is the "new" basic at many places by Hynee · · Score: 2, Insightful
      I totally agree. In the first case, it's like BASIC, in that it's interpreted. The first think you can learn is echo ''. It's like BASIC's print command (I can't remember what it's called), and it won't confuse beginners by requiring brackets around the input, just quote marks.

      Variables can be easily understood, because they have a $ sign in front of them ("Dollar means value, son").

      There's no GOTO, but you could probably introduce loops with the backwards do .. while loop. It would be easier to understand, because you start it with just a simple command, and do the hard concept stuff at the end. Try
      $i=1;
      do {
      echo $i;
      echo '<br>';
      $i = $i+1;
      } while ($i < 10);
      The browser is then your compiler.

      The hard part would be explaining why you need to put <br> at the end of your lines--but you can always do it from the command line. And you'd want to disable all filesystem functions for an education environment.
      --
      Damn, I already moderated this topic. Now I'll have to log in with my sock puppet to comment.
  34. Squeak and e-toys by Junks+Jerzey · · Score: 4, Informative

    Squeak 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.

  35. Re:Yes, introduce them to IP piracy at a young age by doorbender · · Score: 2, Informative

    but lets just forget that MS infringed on apples IP that apple copied from xerox

    the differance between copied and infringed is that when jobs looked at xeroxs PARC os(es maybe) they told him xerox didn't care about the technology because they were in the copier business.

    there is nothing new under the sun. meaningles meaningles everything is meaningles

    sometimes i have to respond to flamebait

    --
    "He's a real midnight golfer"
  36. Don't use a computer you care about! by Dwonis · · Score: 4, Insightful
    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.

  37. I've been teaching programming using Flash by jbum · · Score: 5, Interesting
    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 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.

    1. Re:I've been teaching programming using Flash by Downbass · · Score: 2, Interesting

      I'll second this. Flash may be a proprietary technology that has the ability to irritate the hell out of people on websites, but it's probably the best learning tool for budding programmers out there at the moment. As well as the basic animation, graphics, tweening, etc, there's real programming depth there now. With the newer versions of Flash and Actionscript 2.0, Flash has become more or less completely object-oriented, and most of the syntax is similar to that of C++ or Java. So not only is it a commercial skill that is viable in the jobs marketplace, it also teaches the basics of how to use fully-fledged object-oriented programming languages. The trick, of course, is to have it accessible to all without having to acquire it through warez channels... Macromedia, are you listening?

  38. Python by Beowulf_Boy · · Score: 2, Interesting

    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.

  39. Alan Kay is amazing by Poivre · · Score: 2, Informative
    Alan Kay has been thinking about how to introduce children to computers for longer than I have been alive (and I'm not THAT young). I would have to plug Squeakland for introducing kids to the world of computing: http://www.squeakland.org/

    I heard his talk entitled, "Introductions To Computing Should Be Child's Play" and he did a demo of Squeak, and it made me feel as giddy as a schoolgirl.

  40. Females are so different by Specabecca · · Score: 4, Interesting

    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.

  41. the way I intend to do it... by bonezed · · Score: 2, Interesting

    give him a non gui *nix box.

    make sure it has some text/curses based games and let em loose on that. Also, have some *nix manuals lying around.

    If they figure out how to get access to the outside world/install X, then all power to them (feel free to give them hints)

    the general idea is they learn gradually through exploration

    --
    ---- Put Sig here:
  42. My experience/rant by slapout · · Score: 2, Interesting

    My first experience with a computer was when I was five. My dad had an Atari 800. (He ended up selling it because he couldn't afford a disk drive! This was when disk drives cost hundreds of dollars.) I remember one night he typed in a program that acted like an etch-a-sketch.

    I few years later, my parents bought me an Atari ST. I was hooked on computers from that point on. One day I was reading an article in Atari Explorer magazine about programming. The article presented a simple "Hello, world" type program in BASIC. I decided to play around with it and see if I could change it slightly. (This was back when every computer came with a copy of BASIC.)
    I ended up teaching myself BASIC over the summer.

    Anybody remember when computer magazines used to publish type-in programs? :-)

    I know nowadays a lot of people don't like BASIC because of goto and what not. But I think it is a good language to teach some basic principles (what a variable is, what a loop is, etc).

    I'm currently learning python. I've wondered if it would be a good first language for someone. I'm not sure it would be. For one, I'm not sure if someone who learns it would appreciate all the things it does for you. Second, when they learn another language, I'm not sure what the learning curve will be like. It might take them a while to get used to the new ideas. On the other hand, maybe starting fresh and not carrying some of the baggage of older languages would be good for a new generation of programmers.

    I've never used Pascal, but I've heard it's a good language for learning programming.

    Now, I've heard some people say that OO is the way to go and should be taught to newbies. But even with OO you still use parts from procedural programming: you still use variables, still use loops, still call functions, etc. I see no harm in using a simpler language to teach the fundamentals before moving on to objects.

    Maybe what we need is a version of knoppix set up for teaching programming.

    Python links:
    Main python site: http://www.python.org/
    Dive Into Python book: http://diveintopython.org/

    Pascal:
    A free Pascal compilerhttp://www.freepascal.org/

    Basic:
    I don't have a link for a version of basic. But I know there are some on the web. And Win 95 & 98 have a copy (buried) on the setup disk. Look in the other\oldmsdos folder.

    More:
    http://thefreecountry.com/ Has links to free compilers & more for various languages.

    Old computer magazine archives:
    http://www.atarimagazines.com/

    --
    Coder's Stone: The programming language quick ref for iPad
  43. lured into digital life by rhendershot · · Score: 2, Interesting

    Electronics. Heathkit ET-340 trainer. Assembly. Being able to plug in hardware to make the platform do what I wanted.

    Then the Vic-20. There was a space rocket missile type game in the handbook. I modified it a LOT. Called it "Dense Pack" after a politico-social concept of the time. (once you ran out of missiles you were dead ;)


    I don't think you can force this on a kid. Nor should you. But offering the right teaser is still fair! lol

    Even the new scrip language in O-Office1.9 is a start. There's several Turtle-like things around.

    or like I did, give my son an old phone to tear apart...

  44. high level is a bad thing? by d34thm0nk3y · · Score: 3, Insightful

    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!

  45. Don't let 4 year olds at your computer. by Bahumat · · Score: 2, Funny

    How'd I get started in the digital realm?

    True story. It's 1986. I've just turned four years old. My parents visit college friends of theirs, who happen to own a computer. I'd never seen a computer before this.

    Ten minutes later I formatted the C:\ drive.

    And I've been breaking computers ever since!

    --
    "To pass through the jungle; silence, courtesy, ferocity, as the occasion demands." -- Kamau, "Proper Passage"
  46. The Commodore PET! by notchcode · · Score: 2, Interesting

    My mom worked for an AlphaMicro Systems dealer in Colorado in the early '80s, and she brought a CBM, and later, a PET, home for her and us to all use. I remember playing some very basic games on it, word processing, and even getting into programming a bit on that huge box.

    My brother and I later got further into programming when the VIC-20 and C-64 came out, but I will always think of the PET as my first computer.

    The best thing, aside from the thrill of the computing experience, was seeing the autographed photo of William Shatner, holding a PET, with the inscription "Glad to have you on the team" on it.

  47. I'll own up to my sad life by aztektum · · Score: 2, Funny

    Sheesh I was reading through all these "My first computer was a and I started programming with it." I feel a little alone seeing as how my first computer I immediately used to find pictures of naked girls.

    --
    :: aztek ::
    No sig for you!!
  48. your sinclair magazine by Krafty+Koder · · Score: 2, Interesting

    "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.

  49. Python works by uber-human · · Score: 3, Interesting

    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.

  50. Pun Alert by Bingo+Foo · · Score: 2, Insightful
    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.

    --
    taken! (by Davidleeroth) Thanks Bingo Foo!
    1. Re:Pun Alert by Reteo+Varala · · Score: 4, Funny

      I'm not a big fan of instructors either, but beating them with a blunt object is NOT the ANSWER!

  51. Amazed? by E+IS+mC(Square) · · Score: 2, Insightful

    >> I wish kids were as amazed by computers as I was at that age.

    Well, were you as amazed by typewriters then as they are by computers now?

    Computer was *new* that time; and because of that, your mind was unformatted. They now come into this world with pre-packaged multi-booting systems.

    1. Re:Amazed? by John+Miles · · Score: 2, Interesting

      Well, were you as amazed by typewriters then as they are by computers now?

      I gotta throw my lot in with the other guy here. Mom's Smith-Corona manual typewriter was already an Antikythera-class artifact by the year I was born, but even though I was exposed to various early microcomputers while growing up, I was never inclined to take the Smith-Corona's complexity for granted. The guys who designed those old typewriters were not exactly the slow kids in class. (Do some Googling sometime about how IBM implemented a multicharacter typeahead buffer in the Selectric with a tube full of ball bearings.)

      Later, I read a comment by Jim Williams of Analog Devices about an old-school Tektronix oscilloscope, the kind you could heat your living room with: "The thing just radiated intellectual honesty." Same deal with the Smith-Corona. Both instruments belonged to a time when what something did was intimately obvious from what it was... and how it worked was readily apparent from how it was made. Even a modern-day '1337 haX0r can still learn from the design ethos behind those old clunkers, and find reasons to be amazed by them.

      --
      Dahlmann tightly grips the knife, which he may have no idea how to use, and steps out into the plain.
    2. Re:Amazed? by Omestes · · Score: 3, Interesting

      I think the thing that got me, wasn't that they were new, since even old computers were new to me when I had no real contact with them, but that old computers were blatantly open, no gui, no man pages, no helpful hints on what to do, just a flashing prompt. Now computers look like their meant to do specific thing, I have a media player icon, I have a word icon, I got a Doom3 icon, thats what I can do.

      On my first computer (a c64) all you had was the little flashing ascii cursor, from there it was up to you, you had to figure out what the hell to do with it. I still remember the first time I got my c64 to load something, when I figured out the load "*" 8,1 command. My heart lit up as I waited for the loading text to go away, revealing Qix. This was even better because my parents didn't even know how to do this, for once I knew more than them. And that was the beginning of them be really confused everytime I get within 10 feet of a computer.

      Samething when figured how to get my c64's modem to init to a BBS I found in a free newspaper. Possibility. Discovery. Control. All the things the children need to be stimulated. Granted I never really got into programming, and can program C as well as I could in high school, which isn't saying much.

      Basically all you need to do is get the kids hooked on the open ended possibility of it.

      And yes, I actually was quite enthrawled with my mom's old Underwood, it was scary, and I still remember using it with reverence when my c64's dot matrix died, and my parents refused to see that I didn't break it, and it needed a ribbon instead.

      Dropping kids on a bash prompt wouldn't be a bad idea, IMHO, especially after letting them get used to some random windowing system. How can Windows or OS X get you intreged how it all works, when the works are well hidden?

      --
      A patriot must always be ready to defend his country against his government. -edward abbey
    3. Re:Amazed? by BorgCopyeditor · · Score: 2

      Sure, having different typefaces in the same document must have been cool, but the real question is whether it could produce superscript "th". ;-)

      --
      Shop as usual. And avoid panic buying.
    4. Re:Amazed? by hob42 · · Score: 2, Interesting

      Well, assuming you have a spare computer to set up as their sandbox. In my house, the kids have admin access on the kids' computers, even the 3 year old. When they screw up, they don't get to play their games for a few days until I have time to get it running again. Eventually, they'll be responsible for fixing it themselves.

      They've got limited accounts on my and my fiance's computers, though.

    5. Re:Amazed? by Omestes · · Score: 2, Insightful

      But you are a prior geek, and know A) how to get to the Unix underpinnings, B) know that Pico is there, and C) due to previous knowledge know the basic structure of the *nix enviroment. Most of my Apple freinds don't even know that the Unix is there, much less how to get to it. I think they are actually kinda scared when I open up the terminal and start hacking out nasty looking text.

      The thing is that a kid would be more prone to mess around in the windowing enviroment, since it is more intuitive, and more obvious (as compaired to the terminal icon hidden 3 directories deep). Also people like the simple solution, and most things on an Apple (thanks to the "Just Works" philosophy" can be done at a GUI level with no need to ever even think of bash. While using a GUI might be good for little kids, there has to be a motivation for them to graduate into the wonderful world of text (*nix san windowing, programming, scrpiting).

      Actually. With OS X, try to get the kids to learn applescript, and from there they can hit up Python, and others... Hmmm... Apple script seems to be a good starting point, rather powerful, rather simple. HTML is also a good starting point, for the same reasons, and kids like making pretty things. Windows users who want their kids to become geeks should give them a couple pages on the server, and open up notepad.

      --
      A patriot must always be ready to defend his country against his government. -edward abbey
  52. Re:Or take it a step further by Bastian · · Score: 2, Informative

    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 Mac), or an obscure Playstation game called Carnage Heart.

    Both feature a drag-and-drop approach to programming. In Mind Rover, this is done via a flowchart, and you program the robots to do just about anything there has ever been a competition to pogram robots to do except soccer. (blow out a candle, battle to the death, etc.)

    Carnage Heart, on the other hand, is really a turn-based strategy game with mechanics reminiscent of Axis & Allies or Risk. I personally prefer the way its programming is done, though, simply because the programming is very grid-based - strict 2D control flow with absolutely no subroutines or GOTOs. This limitation means it isn't going to take a kid very far towards learning to use modern programming languages, but it turns the game into a very interesting mental exercise as you work out nifty tricks for packing as much logic as you can into a rectangle that can only hold 10x10 instruction units.

  53. Re:TI Calculators by uber-human · · Score: 2

    The language is very simple, but lacks speed. http://www.ticalc.org/

  54. Where to start... by DanteBlack · · Score: 2, Interesting

    I personaly started on a PET, but that's not really important. The real question is 'Where to start?' Regarding programming the answer is simple, the begining. Start with concepts and leave variable types, apis and syntax for later. Psuedo code is your friend. While this may not seem particularly satisfying it doesn't take long to lay the ground work, controls structures, methodolgy and that lot.

    After the core concepts have been taught, and perhaps in parallel, choose a /simple/ language. Avoid languages with beastly syntax and apis. Pascal was a teaching language for a reason, it was/is very simple. I personaly moved from 'playing' with basic directly to C.

    I remain to this day of the opinion that C is a simple and powerful language where the fundamentals count. I admit that there are some concepts that can be a bit 'hairy' when dealing with C, pointers for example, but they can be taken in stride. I'm not suggesting that C is the only way to go but syntacticly it's simple, the api is small and straight forward (mostly), types are 'reasonably' understandable and the syntax has been largely adopted/adapted by most newer high-level langagues.

    One drawback to C is that while it teaches pragmatic programming, things break if you get careless, without apis it's not flashy. You're teaching concepts though so that should be less important. If you're looking for something with more exciting immediate gratification look to another language.

    I'd recomend PHP if that's what you're looking for. Again, it's a relatively simple language, and it's typeless which avoids a stumbling block. It can be combined with HTML to give some 'graphical' results.

    Why PHP instead of Java? I think Java's api is a bit overwhelming to start with, but that's my opinion. Why not C++? 1) It needs an external api for graphics. 2) In my opinion it's inheritence/overloading syntax *bites*.

    Basicly take things in step. Start with concepts. Move to application of concepts. Next, 'practical' application of concepts. Advanced concepts and techniques will come with time/experience. Don't rush things, no good comes from it. A strong background will make learing other langauges and more advanced concepts, OOP for example, less of a task.

    That's 'Where to start?' from my perspective. Of course this is all my opinion, and it's based on my experience, so it may be a bit skewed. Take it for what you will.

    --
    I am invisble, and you can't see me.
  55. Philips MSX-2 VG8235 by owlstead · · Score: 2, Interesting

    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.

  56. Text Based is Still the Way by BrianMarshall · · Score: 2, Informative
    I started in a High School Computer club, learning Basic (for terminals) and Fortan (by punching cards and submitting batch jobs), using computer time donated by the local technical college in the late '70s. They had a medium-sized main-frame made by Xerox.

    Times have changed. But I think text based is still the way to get into programming.

    Even young kids can learn how to code HTML and make their own web pages. (Not that this is really programming, but it is a step in the right direction.)

    Then, Linux and C/C++. Give them a good tutorial (book or online), and show them how to do "Hello, World!" using gcc.

    The ones who are going to love it will pick up the basic idea in an hour or a day or few days. Then you give them K&R and... they either love it or they won't bother. Some people love it. They get to do what they love (or waste time, writing about it on SlashDot).

    Possible Interesting Projects:

    - funny programs where the computer complains that it feels funny, and starts going insane and asking the user funny questions and using the input to ask even more insane questions. Another variation of this is the program that looks like the computer is logged out, so you have to enter your password again... actually, if you tell your kid about this one, they will think it is so cool that within a few weeks, they will have been expelled from school.

    - text-based role-playing games ("you come to a door on your left. Do you open it? y/n")

    - game-of-life - checker board where each square might be empty or contain a fox and/or a mouse. Or modeling a forest fire or an election or the emotions in the stock market or the spread of a disease and the effect of using the vaccine, or...

    - micro game of life - try to make a tiny system that behaves chaotically with 1 or 2 or 3 primary variables - "I say yes, you say no, you say stop, I say go" (actually that isn't chaotic; it is pretty predictable) or 3 girls deciding which movie to go to - try to do a three-body-problem where each of 3 objects tries to act in accordance to what the others are doing. Try to make chaotic behavior.

    --
    "When the going gets weird, the weird turn pro" -- HST
  57. Re:Yes, introduce them to IP piracy at a young age by nacturation · · Score: 2, Funny

    If you're really lucky, you can teach them the tenants of communism...

    Wow, I didn't realize that communism rented out to tenants. How much do they pay in rent? Or is paying rent not one of their tenets?

    --
    Want to improve your Karma? Instead of "Post Anonymously", try the "Post Humously" option.
  58. Logo all the way by Anthony+Liguori · · Score: 2, Insightful

    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.

  59. Not just any class... by raehl · · Score: 2, Funny

    Enroll them in a management class, and then they can hire students in the computer programming class to be interested for them.

  60. IENJINIA by magoghm · · Score: 3, Interesting

    You can take a look at http://www.ienjinia.com/. It is designed for teenagers rather than for kids but my 9 year old son likes it a lot.

  61. CARDIAC: The Cardboard Computer by Noksagt · · Score: 2, Informative

    Bell Labs made CARDIAC a cardboard computer similar to the one you describe. I actually bought one just a couple of years ago. Here's the contact info I used:
    Comspace Corporation
    117 Engineers Drive
    Hicksville, NY 11801
    Phone:516-942-8191
    Fax:516-942-8193
    Email :comspace@aol.com
    Webpage (hadn't been updated for a while):
    http://hometown.aol.com/comspace/

    As of 2003, CARDIAC was 19.95 or a plastic version (for overhead use) was 22.95 + shipping

  62. Punch cards/FORTRAN on a DEC-10 by ccmay · · Score: 2, Funny
    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

    --
    Too much Law; not enough Order.
  63. Do Nothing. by raehl · · Score: 5, Insightful

    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.

  64. Re:Squeak! by blackburnrovers · · Score: 3, Informative

    Squeak is a great development tool, but for young people, the Squeakland team led by Alan Kay is doing fantastic things. I teach my 8th grade programming class using Squeak and also taught a 4th grade computer club Squeak. It was a breeze for them, and they loved it.

  65. Re:Yes, introduce them to IP piracy at a young age by leonbrooks · · Score: 4, Informative
    And make sure while they use Linux you explain to them how lots of big co[r]porations such as Sun and MS paid $$$ to develop the technology that you now enjoy in cloned form for free.
    Oh, very good. We're talking about the same MS that directly cloned Apple's interface right down to fixed-sized elevators, and DEC's operating system right down to the spelling mistakes? The same MS who bought in or stole almost all of their major applications because the home-grown ones didn't fly? Who ripped off SpyGlass Systems, Blue Mountain Greeting Cards and a looong list of other software houses?

    And is this the same Sun Microsystems whose Unix is one of the more difficult (in relative terms) to port Linux code to due to the differences between them?

    Here, put on this conical hat and go stand in the corner.

    It would be handy to have an option to rename such as you from "Anonymous Coward" to "Brainless Coward".
    --
    Got time? Spend some of it coding or testing
  66. Guida van Robot by Noksagt · · Score: 2, Interesting

    GVR is like karel, but with more python coolness. They also maintain a list of a fes karel-related links on their site.

  67. Re:Perl by pickup22 · · Score: 2, Funny

    Young kids love to pound randomly at the keyboard so they'll be right at home with Perl.

    --
    God, I wish I could think of a sig!
  68. Re:Do Something by crazyphilman · · Score: 4, Funny

    "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!

    --
    Farewell! It's been a fine buncha years!
  69. I started on reader-freakin-rabbit by Brained+Child · · Score: 2, Interesting

    and a lot of those types of games. Eventually my dad moved me over to duke nukem and bunch of other weird 2d sidescroller games.

    If you want them to learn programming, I'd say start with html. It may not be object oriented (as everybody is friggin obsessed with) but they can see the results immediately and it only takes a month to memorize all the basics. Then you can move them on to css/dhtml and javascript. See, HTML is a gateway language!

  70. POV-Ray and Marathon by cjameshuff · · Score: 2, Informative

    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/), 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.

  71. Get them a pony by Animats · · Score: 2, Interesting
    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.

  72. My First Use of a Computer: MS Paint by Satertek · · Score: 2, Insightful

    Microsoft Paint for Windows 3.1 at my Dad's office. Not sure how old I was, but I would guess around 6.

    Before we got an IBM PC we had a Commodore 64 on which I played games like Fischer Price School Bus Driver and Firehouse Rescue and a Dinosaur game (whose name escapes me at the moment). After we got a PC (RadioShack brand (Tandy) 386...oh ya). I grew up on all the Learning Company games in the Super Solvers, Reader Rabbit series Treasure (Mountain, Snowstorm, Cove, Galaxy) series. But mostly, as I wasn't old enough to have alot of money, I lived off Shareware and Demos from Epic, Apogee and Sierra. Jazz Jackrabbit, Raptor and the Sierra Demo discs are what I remeber most of.

  73. First time by Xerxes2695 · · Score: 2, Funny

    The first time I used a computer was in the 1st grade. Within a week, I had thrown a handful of magnets into the box of floppys with all our homework on them, crashed several boxen, and added a recording that said "F@*k Mrs. Teacher" to the startup folder of one.

  74. new generation, new world by deltacephei · · Score: 2, Insightful

    It's great to stoke the flames of nostalgia and reminisce of our original geek awakening moments, mine was filling out those FORTRAN grids and then typing my ten liners onto cards by hand. Unix was the coolest damn thing ever and I was way stoked to get a hold of a user's guide in highschool. Whoa! I was maybe a bit cooler than those other kids! (yeah, well, maybe not!)

    But reality check here. The world is way different. Computing is everywhere and kids are saturated with it. One progeny has had required computer classes at the local elementary since the first grade. Are they teaching programming? No! It seems the fundamentals of powerpoint presentations are far more important to the generally computer illiterate teachers. The Intel gifts of donated windows boxes to schools reminds me of the handing out of free cigarettes to WWII GIs. Gotta dig those tiny mice though.

    Kids care about games, music, email. And they already understand that Dad's computer is way better than the semiretired machine sitting on their desk. They see computers as media delivery machines, not something that can be tinkered with.

    The fundamentals of discrete math would be a place to start, followed by scheme or squeak, or both. Logic needs to be in place as soon as possible.

  75. Lego Mindstorms? by Paul+Johnson · · Score: 2, Informative

    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.

    --
    You are lost in a twisty maze of little standards, all different.
    1. Re:Lego Mindstorms? by ICantFindADecentNick · · Score: 2, Interesting

      Absolutely - Mindstorms is fantastic for this. Last year we ran an event at a school for an introduction to programming for 13 year olds. Ths school has lots of computers - but they're mostly used for word processing, web design, etc, etc. No programming. The Mindstorms kit is brilliant for this age group for getting across the fundamental idea that it does exactly what you tell it. We pre-built a Roverbot type line-follower (to avoid wasting too much time on hnting for the right bricks) and built up from just making it move and turn into a line following race between teams by the end of the day. We knew we had them hooked when they were asking to stay in at break time to tweak it to make it go faster.

  76. My thoughts by Piquan · · Score: 2, Insightful

    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 (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. 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

  77. Kids and computers by Rhathid · · Score: 2, Interesting

    This is just my 2 cents. I started on a TI-99 back in 83 I think. I was 5. I played a few basic ANSI graphic games but I remember one Sunday morning I came into the family room as saw my dad typing in BASIC from a computer magazine. I remember having a radio shack tape recorder to save the program too. Well, after about 2 hours of typing either he or I tripped over the power supply and I remember him cussing about losing everything he just typed. Next thing you know I'm retyping everything from the computer magazine, later that day I was playing an ANSI game flying a helicopter to save people from a burning building. Then in the late 80's my Dad regained his interest and picked up an Amiga 500 with a Star Color printer and 1200BPS modem. I spent a lot of time on BBS's, they didn't seem to have a purpose but I was fascinated with what an E-mail was and that I could talk to another computer. The modem went in a box for a couple years. Fast forward to High School, the 500 was still kicking and pretty well. I met a couple kids who asked if I had a modem once they learned I had a 500, they showed me what BBS's has become. I took a programming course in High School. I was on the football team, we all took it. We went through GW Basic, but a lot of us couldn't wait to show off and see if we could learn C. Fast forward passed building computers and all that junk. In 96 I walked into Best Buy, asked for a job, they asked me what I knew about. I looked around, not really sure and said computers. So they interviewed me, one question was "What is a Pentium Processor?" I remember saying "It's a dual 32 bit processor which has [whatever the raw processing power was]". I was hired, then I found out I knew a lot more about computers than I thought. Back in 96 was when all the kids who grew up learning on the computers were just entering the part-time workforce, we were good, a lot better than kids you run into at these box shops now. Fast forward again, I landed a career with a Fortune 100 company, still working with computers. I thought the way to go was networking, as of right now, I'm a consultant and do a TON of intergrating and programming. I also started my own consulting business scripting in CGI/PHP to coding in Java/VB/C++. So what is my answer? Well, it's simple. When I was 13 my dad bought me an RC plane. I flew it a few times and crashed it, I wasn't interested in it again. I'm 27, 2 months ago I suddenly started buying RC planes again because it was something I did when I was younger and I have some great memories. So, I say expose a kid to computers at an early age. They might not to take it, but there is a good chance as they get older they might really want to learn exactly what it was they experienced at a younger age. Also, tell them not to do it, when you tell a kid not to do something, they automatically are interested in it. I remember that anytime I was told something if for High School or College kids, I instantly wanted to do it. So tell them it's for the big kids, all little kids want to be like the big kids. So, if you want them to learn programming, who cares where they start, it's where they end up that matters, you can't force a person to become a person, they have to do it on their own. I would suggest if you want to get them into programming, have them write a basic program in your language of choice that actually accomplishes something. I interview people all the time who took programming in college but didn't have practical use for it. They had no interest in learning what a class was, or proper syntax. They need to program something where they can directly see not only a result, but a use. I can teach a kid 'Hello World!' in any language, but the gratification of that doesn't last very long and just gives us web sites that popup annoying practicaly joke alerts over and over. Find something your kid is interested in and have them write a program for that. Learning to change a tire, now that's practical. Kids don't want to learn it? Weird, how'd this tire go flat

  78. The magic moment by Dunkirk · · Score: 2, Insightful

    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.

    --
    Acts 17:28, "For in Him we live, and move, and have our being."
  79. not fake wood -- plastic! by bourton · · Score: 2, Insightful

    I think the (learning) vehicle should be transparent, and real. Look at plastic. When plastic first came out, everyone strove to make it look like something it wasn't: wood, leather, stone... fake, fake, fake. People based it on what they knew in their present world view. For a long time, people were stuck with the glaring image of plastic trying to be something it wasn't. It was hard to see beyond the imperfection. What plastic really had to offer, was a new aesthetic. A new way. It took a while for that to happen. Now, look at computers. Why have your child learn to count by clicking fake apples into a fake box? The child is much better off with real apples and real boxes. Now take it home. Real computers... new ways of learning. What do computers do that apples and boxes don't? Total immersion, virtual reality, computer games and... and... and... who can imagine where we will go from there! Let's not burn our energies on fake wood.

  80. How to learn a programming language... by raehl · · Score: 2, Interesting

    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 that's already there than to try and think of (and implement) a whole new package to program from scratch, especially when you're still a novice.