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

9 of 886 comments (clear)

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

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

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

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

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

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

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