Follow Slashdot stories on Twitter

 



Forgot your password?
typodupeerror
×
Programming Software Technology

Introducing Children to Computers? 886

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

Introducing Children to Computers?

Comments Filter:
  • by koreaman ( 835838 ) <uman@umanwizard.com> on Monday January 03, 2005 @06:08PM (#11248505)
    Enroll them in a class. If they have the money, it's the best way. Nothing beats a trained instructor

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

    by Tackhead ( 54550 ) on Monday January 03, 2005 @06:15PM (#11248595)
    > 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.

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

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

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

    Don't be an elitist and try to teach the kid C or C++ or anything overly complex. Give them a bitesized language before introducing them to the big stuff. Would hate to see the kid drown cause you put too much in front of her.
  • Whoa, Cowboy! (Score:2, Insightful)

    by ackthpt ( 218170 ) on Monday January 03, 2005 @06:18PM (#11248643) Homepage Journal
    Enroll them in a class. If they have the money, it's the best way. Nothing beats a trained instructor

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

  • by hsmith ( 818216 ) on Monday January 03, 2005 @06:22PM (#11248694)
    Simply because i want them being active and playing outdoors. Yes I have a degree in CS, but the last thing i want are my children constantly playing on the PC or sitting infront of a TV.

    I understnad their importnace, but i also understand they can be abused and used in a way to foster lazyness.
  • by MilkmanIAC ( 756513 ) on Monday January 03, 2005 @06:24PM (#11248725)
    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.
  • Re:BASIC (Score:5, Insightful)

    by PaintyThePirate ( 682047 ) on Monday January 03, 2005 @06:26PM (#11248744) Homepage
    Yea, I had a similar start. When I was about six years old (1992), my dad gave me his old IBM PC/2. Interestingly enough, I was subscribed to a children's magazine back then, Contact, that had a BASIC game each issue, filling up one page with code. I went through the magazine each month, typing the code onto the IBM, eventually modifying it, and finally, writing BASIC programs on my own. You can't force a kid to be a geek. He/she has to be curious and willing to learn by nature. In my opinion, the best solution is to simply give the kid the tools he or she needs to get started, and see what happens from there.
  • by xtermin8 ( 719661 ) on Monday January 03, 2005 @06:26PM (#11248746)
    I remember logo, I also remember being discouraged from learning about programming computers because I wasn't good at algebra, and wasn't good at rote memorization. I regret not learning. Its easier for people to see why they failed to learn than why they had success. You might specifically ask nonprofessionals (perhaps women in particular) what would have encouraged them, rather than asking professionals, who often had natural inclinations to take up programming anyways.
  • by Rorschach1 ( 174480 ) on Monday January 03, 2005 @06:28PM (#11248769) Homepage
    I started out the same way, with the Vic-20 and later the C-64 and C-128. But how do you get today's kids started without just dumping them at a BASH prompt?

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

    My 8-year old son is a lot like I was at that age, and I suspect that he'll really take off in that department if he can get started. He's already taken an interest in modifying a silly game I wrote in C when I was 15 - he likes it mostly because of its quirks and bugs, and is fascinated by the idea of being able to change it himself. C is a tough language to start out in if you've never programmed, though.
  • Bally Basic (Score:3, Insightful)

    by Saxerman ( 253676 ) * on Monday January 03, 2005 @06:31PM (#11248818) Homepage
    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.

  • by hey! ( 33014 ) on Monday January 03, 2005 @06:34PM (#11248854) Homepage Journal
    Remember how clueless your parents were? Still managed to raise a geek, right?

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

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

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

  • by Daniel Dvorkin ( 106857 ) * on Monday January 03, 2005 @06:38PM (#11248901) Homepage Journal
    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.
  • Re:Step one (Score:4, Insightful)

    by ackthpt ( 218170 ) on Monday January 03, 2005 @06:38PM (#11248902) Homepage Journal
    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.

  • by 198348726583297634 ( 14535 ) on Monday January 03, 2005 @06:46PM (#11248994) Journal
    As a father myself of two adorable li'l monsters, I've decided that they won't play with computers at all until later in their childhood. Computers and TV both seem to encourage a lot of button-pushing, while I'd rather they learn to think and make things in their world. Putting together a unix-alike will be child's play once their little brains are appropriately wired to see the world as the great big machine it is.
  • by Dwonis ( 52652 ) * on Monday January 03, 2005 @06:48PM (#11249022)
    Probably the worst thing you can do is use a computer that you care about. It's absolutely critical that the child be allowed to experiment and try new things without worrying that he/she might break things irreparably.

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

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

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

  • by d34thm0nk3y ( 653414 ) on Monday January 03, 2005 @07:06PM (#11249203)
    The summary says high level language like it is a bad thing. If the kid is actually interested in programming why not have it play around with the Python interpreter. You gotta love instant gratification!
  • by calibanDNS ( 32250 ) <brad_statonNO@SPAMhotmail.com> on Monday January 03, 2005 @07:11PM (#11249252)
    This is just too true. My wife's two youngest brothers are 13 and 14. They love there XBox (and Halo 2), and got incredibly upset when I told them that it wasn't really that revolutionary. They really believed that Halo was the first FPS with online game play, so I showed them some great FPSes on the PC (Doom 1&2, Quake 1-3, HL, and Unreal). They couldn't believe that people had been playing online for years. Then I showed them mods and how to download and choose your own model and skin. I swear, they almost lost it. They immediately wanted me to show them how to make models and skins, which I'm not talented at. I tried to explain 3D modeling to them, but it didn't go over very well.

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

    I wish kids were as amazed by computers as I was at that age. My first programming experience was on my TI-82 calculator, where I wrote a couple of games and other programs. I had a C64, but at the time didn't have enough exposure to the computing world to understand what it was capable of. I really wish that I still had that old thing, as it was awesome and would be great to show to my brothers-in-law.
  • by 0racle ( 667029 ) on Monday January 03, 2005 @07:13PM (#11249278)
    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.
  • by IllForgetMyNickSoonA ( 748496 ) on Monday January 03, 2005 @07:16PM (#11249300)
    Insightful? I beg to differ! Being allowed to explore the computer (ZX Spectrum with 48K of RAM and 16K of ROM, integrated BASIC) all by myself was the main reason I fell in love with it in the first place. Every little success I achieved by doing so gave me a great feeling and made me want to learn more. I sure am happy my parents didn't look for a "trained instructor" to teach me what I taught myself.

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

    by Bingo Foo ( 179380 ) on Monday January 03, 2005 @07:21PM (#11249353)
    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.

  • Amazed? (Score:2, Insightful)

    by E IS mC(Square) ( 721736 ) on Monday January 03, 2005 @07:21PM (#11249355) Journal
    >> 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.
  • by dogugotw ( 635657 ) on Monday January 03, 2005 @07:27PM (#11249421)
    First, I don't think it is necessary for every kid in the world to know how to program. I can't tune my car and have no interest in tuning my car so why should I learn how? If a kid expresses interest in programming, go for it, otherwise, don't sweat it.

    What tool? Whatever is at hand. What drives the kid? What kind of thing do they want to build? For what it's worth, the first real programming 'language' I learned and really used was Lotus Symphony's @Macro Language. I had a problem, Symphony was the tool provided, learn to code, fix the problem.

    Today, Excel or OpenOffice both have fully functional languages that can be used to make very creative apps.

    If they're into db type stuff - html, php, apache, MySQL. Total power, lots of cool stuff you can do, tons of sample code available and a great way to break into some highly useful coding concepts.

    Bottom line for this message is to to think a bit outside of the typical 'programming' box and think about environments that include programming features. You may be surprised at what the little buggers dream up.

    Doug
  • Logo all the way (Score:3, Insightful)

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

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

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

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

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

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

    Just my thoughts.
  • Do Nothing. (Score:5, Insightful)

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

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

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

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

    So if you have a computer in your house, and your kid is not ALREADY spending all of their time in front of the computer, they're not interested in computers. Nobody had to figure out for you how to get you interested in computers, you figured it out yourself. It will be the same for whatever your kid decides to be interested in. No matter how much you as a computer geek want your kids to be interested in computers, chances are your kids are going to become very interested in something that is NOT computers, whether it be sports, guitar, chess, student government, whatever. Do your kid a favor and support whatever it is your kid spends all their time doing. If you have to "show" them how to be interested in it, they're not interested in it, and you're wasting both of your time.
  • by Tragek ( 772040 ) on Monday January 03, 2005 @08:39PM (#11249999) Journal
    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 [muppetlabs.com] does.
  • by Anonymous Coward on Monday January 03, 2005 @10:21PM (#11250662)
    i'm currently 14, and i'll tell you what i grew up with... just for fun.

    my dad works for the university, and was good as DOS 5, etc...the computers that have 4 serial ports. our family computer was a ooold (i say this now) 486 running Win3.1. my instructions were not to touch anything in the Control Panel. i went...yeah... straight for the control panel. i basically poked around until it broke. and then i fixed it before my dad caught me. we installed M$ Word from floppies (40 or so, i think).

    then we got a dell v333 running windows 98 so i could use my Lego Robotics kit. (well, not *just* for that). win98 gave me more things to break and meddle with. although, i did actually break the system a few times, i overwrote the MBR, i... well, besides physical damage, i pretty much did everything to it. needless to say, my mom wasnt happy when she had to do the budget and the computer didnt know that the harddrives existed.

    i then started linux-ing everything. my dad's laptop from work, my mom's computer... and my dad threatened me pretty much with my life. last year i picked up an old 400mhz, 192ram, 12gig HD...from a college student that'd just gotten a new HP. it's respectible, i guess, it's now my main machine running slack10... and that's where we are today.

    i think linux is a great choice. just dont give your kids root, and dont teach them then 'rm' command... :) it also helps if somebody can maintain the box. better yet, get the kid/s an old computer and make them maintain it. after they pass your test or something. i love this box, i do something stupid every once and a while and have to reinstall, but it's nice to know my computer's been on for 6 days and my mom's crashed (win2k) after being on for an hour. and now i'm the sysadmin of the house. which is good and bad.

    computers are fun, but make kids think. GUI's? nah. :) just kidding. i'm in fluxbox right now.
  • by Miriwen ( 736197 ) on Monday January 03, 2005 @11:36PM (#11251070)
    Easy, start kids at the beginning. Hand 'em an old C64 or Amiga system and let them learn how to use it. It might give them an appreciation for functionality in software, as opposed to flashy graphics and glamor, as well as avoiding getting them locked into a DOS standpoint of CLI commands. At the very least, start a kid on a non-graphical interface, so they learn to actually use the system. How to set up the startup scripts, manage memory, maybe even some programming skills. Once they're ready, bump them up to a Linux system and let them go. Graphical systems are fine, but they teach very little in the way of actually using and running a computer system.
  • by Satertek ( 708058 ) <brian@satertek.info> on Tuesday January 04, 2005 @01:42AM (#11251627) Homepage
    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.
  • by deltacephei ( 842219 ) on Tuesday January 04, 2005 @02:31AM (#11251787)
    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.
  • by Hynee ( 774168 ) on Tuesday January 04, 2005 @02:47AM (#11251837) Homepage
    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.
  • My thoughts (Score:3, Insightful)

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

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

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

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

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

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

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

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

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

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

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

  • The magic moment (Score:3, Insightful)

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

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

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

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

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

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

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

    2) Like the old saying "writers write," which means that people who will be good at journalism will already be writing, in diaries or short stories or such, "programmers program." There are people who program as their job, and there are programmers: people who want to do something specific with a computer, evaluate the options, and, if nothing satisfies them, write their own solution, no matter how small or big that winds up being.
  • by bourton ( 846200 ) on Tuesday January 04, 2005 @09:57AM (#11252968)
    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.
  • Re:Amazed? (Score:3, Insightful)

    by Omestes ( 471991 ) <{moc.liamg} {ta} {setsemo}> on Tuesday January 04, 2005 @04:43PM (#11257386) Homepage Journal
    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.
  • by Anonymous Coward on Wednesday January 05, 2005 @08:31AM (#11262477)
    Those early days may be very different from what it is now (except possibly for linux.)

    I started using TRS-80 at 14, and learned BASIC. My dad bought me a star-trek-like game, and no matter how I tried to emulate it using BASIC I couldn't.

    My Math teacher gave me a reference manual to TRS-80 Z80 assembly language before summer. I spent a month during summer trying to decipher the three little pages describing labels and a simple example of writing Z80 assembly for clearing 1024 bytes using LDIR instruction (it was a reference manual, not a tutorial) and finally, after a eureka (finally understood that a label may not be a variable and registers are like variables but not in memory) I wrote an assembly language game. All this in 6 months since I started using a computer. I think knowing algebra and logic really helped me learn fast.

    I progressed from there on my own, to learn 6502 and Apple II internals, to hand dis-assembling Atari 800 ROM and learning every detail about bootstrapping and I/O in it, and eventually writing a clone of 'invaders' in machine code that was saved to a tape using one of the routines in the ROM that I discovered, which can be auto-loaded at power up without a need for manual load.

    But now I don't see that kind of knowledge being useful for next-generation kids. I wouldn't want my kid to learn that way. In a decade, computers will be used mostly as complex appliances, and programmers will be very specialized. It isn't a problem to defer programming to later years.

    Just focus on fundamentals, especially math. Nothing beats math as a required academic knowledge.

"Protozoa are small, and bacteria are small, but viruses are smaller than the both put together."

Working...