Please create an account to participate in the Slashdot moderation system

 



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:
  • karel (Score:5, Informative)

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

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

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

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

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

    HTML and JavaScript are still ideal, in my opinion, for teaching someone who doesn't know much about programming what you can do and what it should look like without taking a lot of time or software to produce results.
  • Python (Score:5, Informative)

    by __aadidx2690 ( 313265 ) on Monday January 03, 2005 @06:26PM (#11248742)

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

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

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

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

  • by ka6wke ( 306232 ) <mark@ka6wke. n e t> on Monday January 03, 2005 @06:31PM (#11248819) Homepage
    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
  • Re:Logo is a good... (Score:4, Informative)

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

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

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

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

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

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

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

    For older kids, the game-oriented BASICs give quick results--things like Blitz Basic, Pure Basic, and Dark Basic. Almost certainly you want to steer kids away from stuff from the dark ages, like the Linux command line, makefiles, gcc, etc. I know, I know, lots of geeky types are going to hate that suggestion. But stop, take a step back, and just see the reactions you get to that stuff. It's not that it's unusable, just that it feels so awkward and out of place in the modern world. Show someone DrScheme, for example, and then show someone Emacs and makefiles. Your student will be horrified at the latter two.
  • 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
  • Re:Lego Mindstorms (Score:3, Informative)

    by Unordained ( 262962 ) <unordained_slashdotNOSPAM@csmaster.org> on Monday January 03, 2005 @06:51PM (#11249062)
    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.
  • Alan Kay is amazing (Score:2, Informative)

    by Poivre ( 66690 ) on Monday January 03, 2005 @06:52PM (#11249065)
    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/ [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.

  • by Anonymous Coward on Monday January 03, 2005 @06:53PM (#11249072)
    There's a product from Interplay from 5 or 6 years ago called "Learn To Program BASIC" which runs on the PC or Mac and has an Applesoft BASIC like language with extra commands to do game related things, mouse clicks, etc. It's an interpreter and there's a runtime interpreter you can download. It has lessons you do and of course the freestyle mode. I think it lets you write BASIC programs up to 32K in length.
  • by Bastian ( 66383 ) on Monday January 03, 2005 @07:24PM (#11249382)
    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.
  • by BrianMarshall ( 704425 ) on Monday January 03, 2005 @07:40PM (#11249543) Homepage
    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.

  • by Noksagt ( 69097 ) on Monday January 03, 2005 @08:09PM (#11249747) Homepage
    Bell Labs made CARDIAC [bellsystemmemorial.com] 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/ [aol.com]

    As of 2003, CARDIAC was 19.95 or a plastic version (for overhead use) was 22.95 + shipping
  • Re:Python (Score:5, Informative)

    by Noksagt ( 69097 ) on Monday January 03, 2005 @08:15PM (#11249801) Homepage
    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 [pylogo.org] is Logo implemented in Python

    Guido van Robot [sourceforge.net] is similar, but so much cooler.

    Finally, livewires [livewires.org.uk] has an excellent Python tutorial.
  • Re:Squeak! (Score:3, Informative)

    by blackburnrovers ( 798608 ) * on Monday January 03, 2005 @08:22PM (#11249853) Homepage
    Squeak is a great development tool, but for young people, the Squeakland [squeakland.org] 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.
  • 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".
  • by harborpirate ( 267124 ) on Monday January 03, 2005 @09:44PM (#11250458)
    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 :)
  • POV-Ray and Marathon (Score:3, Informative)

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

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

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

    by Yolegoman ( 762615 ) on Tuesday January 04, 2005 @03:22AM (#11251921) Homepage
    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 [cs.uu.nl] (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

  • Lego Mindstorms? (Score:3, Informative)

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

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

    Paul.
  • Re:Python (Score:1, Informative)

    by Anonymous Coward on Tuesday January 04, 2005 @04:48AM (#11252102)
    Does anyone have ideas on how Ruby would fare vs. Python as a first language?

    Either language would be a fine choice for a first language.

    I think Python has a few small advantages. First, there are many tutorials for Python that are aimed at new programmers. Examples include:

    The other advantange Python has over Ruby is the interactive Python interpreter. I can't explain how fantastic this is. With many other interpreted languages (Ruby, Perl), you really should write your program in a text editor and then run it through the interpreter. This is because the commands you type don't execute until you stop entering your program. The interpreter is not interactive. So every time you want to try something, you have make the change in your text editor and then run it through the interpreter.

    Python's interpreter is much nicer to work with. You type in commands, and each command executes immediately. This is very useful when you want to experiment with the language, and is ideal for beginners. I don't know why Ruby's creator didn't include this feature.

    Anyway, you'll be happy no matter which language you choose. They are both very nice. You might also consider learning PHP as a first languages. It's nice to be able to view the results of your work in a web browser, and PHP is probably the quickest way to do that. Another good choice for first language is Scheme. Check out the free online book Structure and Interpretation of Computer Programs (SICP) [mit.edu]. If you like video, there are also some video lectures [mit.edu] available.

  • by Weirdofreak ( 769987 ) <weirdofreak@gmail.com> on Tuesday January 04, 2005 @09:02AM (#11252706)
    I'm a member of the newer generation - I'm 15 (but not yet used to it, I still say 14 before realising my mistake). I didn't have a telly until five or six years ago, so my entire childhood recreation consisted of the various computers we had around and books (I didn't have any friends either).

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

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

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

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

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

    Some time ago I got my own computer.

He has not acquired a fortune; the fortune has acquired him. -- Bion

Working...