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."
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.
I'm going to bet practically everybody else here had a very similar beginning... :-)
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.
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
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.
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:
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.
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.
I learned for the same book. It's perfect for people without prior experience.
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.
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
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