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... :-)
My father had subscriptions to Atari magazines that used to come with programs in them and he would sit me down with a magazine and I would type the games straight out of the magazine to play them. It was an Atari 400 with a tape drive on it for storage (remember that loud screaming noise that sounds like it would be on an industrial song track). I was 5 or 6 at the time. Later he would teach me how to change different things and teach me what they meant.
I program for a living now and always let him know that I owe it all to him. Feels good when he comes to me with programming questions now. Kinda brings a little tear to my eye...
The Nomad
"Men of lofty genius when they are doing the least work are most active."-da Vinci
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.
He showed me statements. I figured out how to write a scientific calculator in BASIC. It never became my thing until daddy gave me a Pascal book and Turbo Pascal 4 (?). It was a dream! I reinvented bubble-sort, and stuff like that. I was sold. I knew I was going to go into computers.
That's why I enrolled after highschool in the computer science classes in a not too remote University. I learned about Linux and BSD, became a OpenBSD fan... I managed to get through my eductaion and get a job as a programmer. I launched Java in the company that took me (and it was a big commercial success), and now... after 6 years... I quit that company. I left to become a teacher... I'll be teaching computers to high schoolers... and so the circle ends.
Ahhh...the great dumpster continuum. Many a free computer will be found there. -- sowth (748135)
way to start on computers, as it is simple and imaginative. If you can find a PC Logo Emulator/program I'd start with that :-) and I'm sure there is one available out there.
You know what also would probably be an easy way to get someone in on programming? Straight up line number GW-Basic or AppleBasic. Simple, and teaches basic programming concepts fairly well (If statements, loops, etc with simple input and output). Beats trying to teach the principles of OO design at an early age. Little baby steps would be key...
...in bed
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
Yes, it is amusing... but one of my greatest memories ever dealt with downloading a topless picture of Cindy Crawford off of a BBS. I think it took a good 15-20 minutes to download and my brother had previously installed a program that let you view the image as it came in. Oh man it was killer.
Now the earliest I remember would be playing some tape based games off of my brothers Commodore 64. I don't remember the games that well, and I know my brother hated to let me use his computer, but I think it was worth it.
My dad (also a computer programmer) enrolled me in a programming class at the YMCA when I was 7 years old! He then got me a Tandy computer that plugged into the TV and used a cassette player for storage. That got me writing small programs.
Ever since then (and my impending video addiction with the Nintendo systems a few years later to present) always kept me hooked on computers. My small programs became larger hobbies and eventually my career.
So I guess my point is to start the kids young, they can handle it. Dust off a copy of BASIC and show the kids what you can make a computer do. It doesn't take much.
END OF LINE
LOGO is waaaaay too turtle-centric. If you really want to screw up your kid's brain, teach the 'em BASIC. I don't mean Visual Basic, either. QBASIC is the only way to go. If they learn that, they'll be stuck drinking Mountain Dew forever. ; )
I got started using DOS on my dad's 386 "lunchbox" computer when I was 5 or 6. My dad taught me all the important commands, like "cd", "mkdir", "del", "format" (that one was *really* fun), "edit", and "cp". He was very patient, and even brought home PC World from his office each month, which was much better than it is now.
DOS is (almost) gone now, but I suspect the GNU tools & BASH might be be best for kids just getting into computers. Forget Windows...they'll just use IM & surf the web. Java is far to high level, and C++ is too complicated. A few years messing around with gcc and Dr. Dobb's journal should do the trick.
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.
I became addicted to Doom and Wolfenstein back in the day and only in between playing doom did I mess around with the computer to do other things and gradually gained more and more knowledge. Also when I was much younger my dad wouldn't let me touch his computer so when I was finally around one that I could I did everything I could imagine(except that you sick bastards).
I know what's on your hard dr
It started with a toaster.
At 6 years of age, I received a toaster (with a cord cut off) and I rabidly rip it apart down to the heating elements of which I made slinky toys out of them. Many more appliances were "gifted" to me for adventurous disassembly efforts with glee.
At 8, I received my very first ATM card, I learned to deposit an empty envelope of $1000 and managed to withdraw $100 max. on the same hour! Bank later called and said "we made an error, pay it back."
At 10, Captain Crunch cereal featured a toy whistle. I learned that free phone calls can be made at payphones.
At 11, blue box was made using those Japanese 250-in-1 electronic kit box. Radio Shack becomes my best friend.
At 12, TRS-80 Model I was purchased. I started work as a BASIC programmer for designing a paypoint station in accepting Visa/Mastercard at gas pumps using 8' drive TRS-80 Model II with a sporting 640KB memory... Hooha! Mastered 300 baud communication using 250-in-1 electronic kit.
At 13, Exposed to PET computer, Commadore and a 6502 microprocessor. Mastered assembly language. Actually memorized the entire instruction matrix.
At 14, designed a payroll, general ledger, account receivable program on HP-1000 with those huge disk pack array.
At 16, tweaked and enhanced several BBS software. Ran a BBS station.
At 18, left for college with my various computers. Wired dorm room for wireless alarm (using Tandy car alarm transmitter and a pager, tied to serial port of computers).
At 19, left to work for an undisclosed company who requires mastery of 236 network protocols and other unintended usages. Been there ever since.
I doubt this type of solo introduction would be effective with kids today, but starting them out with an easy language which is not very in depth, such as QB, and having the ability to produce some sort of low level game would probably help hook them (unless they are just completely uninterested).
In the end, and no matter which way they get started, it is going to boil down to their own motivation, and their wanting to learn it.
I am now a second year college student majoring in Computer Science, and program in C and C++. :)
I remember that I saw an ad for the Commodore VIC20 in the summer of 1983, and I showed it to my father and said, "Dad, I want a VIC20". He said, "Okay, you can have a computer, but first you'll learn how it works".
A few weeks later I got the first module of some course on TTL for my birthday, consisting of a circuit board, a few LEDs, capacitors, and resistors, and (most importantly) four NAND gates on a 7400 chip. I had to put it together from those pieces (which was a lot of fun; I had tinkered with electronics before, so that this part wasn't a problem).
Every week, a new module appeared, covering issues like Karnaugh maps, JK flip-flops, binary counters, etc., eventually leading up to a module built around a simple ALU that appeared a few weeks before Xmas. In other words, I had a pretty good idea how a computer worked before I'd ever seen one.
I'll be eternally grateful to my father for taking this approach. (In case you're wondering, he's a carpenter; he always wanted to be an electrical engineer but had to take over his father's woodworking shop for reasons beyond his control).
As for the question of how to introduce kids to programming these days, I still think it's a good idea to have kids tinker with TTL chips so they won't be tempted to think of a computer as a black box. When it comes to actual programming, I would propose a dual approach consisting of a high-level language (e.g., Python) plus a low-level one (MIX would be great, but C seems more realistic).
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 am in college for a game design major. There are 2 sets of courses. One leaning more towards art, and one more towards programming. I switched to this major, and am having to take alot of freshman classes this year (I'm a sophmore), so I can speak from kind of a "already knowing how to program" kind of stand point.
I would have to say that Python would be a rather easy language, but with all of the neccesarry parts, to teach the child. Its very easy to get a game programmed. It only took me about 20 minutes on my first try to make a simple program that opened a window, created a border, and let me move a sprite around the screen with the keys on the keyboard.
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.
give him a non gui *nix box.
make sure it has some text/curses based games and let em loose on that. Also, have some *nix manuals lying around.
If they figure out how to get access to the outside world/install X, then all power to them (feel free to give them hints)
the general idea is they learn gradually through exploration
---- Put Sig here:
I don't know about that - I really wasn't interested in the Apple ][ until Sabotage (paratrooper on the PC) came around. After playing that, I wanted to learn to write something like that and learned BASIC. BASIC was too slow, so I learned Apple ][ Assembly. It cascaded from there. I sucked at algebra, myself, but was a god at Geometry, so that made up for it. Quite honestly, I use so little math in my day-to-day coding it doesn't really matter.
A friend of mine from HS was encoraged to learn computers because her dad worked with Seymore Cray. She was never quite the programmer my group was (very few people were - how many 12-14 year olds do you know that are writing code professionally?), but she was the only female geek I knew in that era. Her dad encouraged creativity - think of something you want on the computer, then try and create it. He would then help her design and help her when she got stuck writing code.
My first experience with a computer was when I was five. My dad had an Atari 800. (He ended up selling it because he couldn't afford a disk drive! This was when disk drives cost hundreds of dollars.) I remember one night he typed in a program that acted like an etch-a-sketch.
:-)
I few years later, my parents bought me an Atari ST. I was hooked on computers from that point on. One day I was reading an article in Atari Explorer magazine about programming. The article presented a simple "Hello, world" type program in BASIC. I decided to play around with it and see if I could change it slightly. (This was back when every computer came with a copy of BASIC.)
I ended up teaching myself BASIC over the summer.
Anybody remember when computer magazines used to publish type-in programs?
I know nowadays a lot of people don't like BASIC because of goto and what not. But I think it is a good language to teach some basic principles (what a variable is, what a loop is, etc).
I'm currently learning python. I've wondered if it would be a good first language for someone. I'm not sure it would be. For one, I'm not sure if someone who learns it would appreciate all the things it does for you. Second, when they learn another language, I'm not sure what the learning curve will be like. It might take them a while to get used to the new ideas. On the other hand, maybe starting fresh and not carrying some of the baggage of older languages would be good for a new generation of programmers.
I've never used Pascal, but I've heard it's a good language for learning programming.
Now, I've heard some people say that OO is the way to go and should be taught to newbies. But even with OO you still use parts from procedural programming: you still use variables, still use loops, still call functions, etc. I see no harm in using a simpler language to teach the fundamentals before moving on to objects.
Maybe what we need is a version of knoppix set up for teaching programming.
Python links:
Main python site: http://www.python.org/
Dive Into Python book: http://diveintopython.org/
Pascal:
A free Pascal compilerhttp://www.freepascal.org/
Basic:
I don't have a link for a version of basic. But I know there are some on the web. And Win 95 & 98 have a copy (buried) on the setup disk. Look in the other\oldmsdos folder.
More:
http://thefreecountry.com/ Has links to free compilers & more for various languages.
Old computer magazine archives:
http://www.atarimagazines.com/
Coder's Stone: The programming language quick ref for iPad
Electronics. Heathkit ET-340 trainer. Assembly. Being able to plug in hardware to make the platform do what I wanted.
;)
Then the Vic-20. There was a space rocket missile type game in the handbook. I modified it a LOT. Called it "Dense Pack" after a politico-social concept of the time. (once you ran out of missiles you were dead
I don't think you can force this on a kid. Nor should you. But offering the right teaser is still fair! lol
Even the new scrip language in O-Office1.9 is a start. There's several Turtle-like things around.
or like I did, give my son an old phone to tear apart...
My mom worked for an AlphaMicro Systems dealer in Colorado in the early '80s, and she brought a CBM, and later, a PET, home for her and us to all use. I remember playing some very basic games on it, word processing, and even getting into programming a bit on that huge box.
My brother and I later got further into programming when the VIC-20 and C-64 came out, but I will always think of the PET as my first computer.
The best thing, aside from the thrill of the computing experience, was seeing the autographed photo of William Shatner, holding a PET, with the inscription "Glad to have you on the team" on it.
"Twenty years ago, it seems there were much more clear and concise paths one could take to learn programming. Now I'm at a loss as to what language and resources I should use."
He hits it on the nail - when i started off on the ZX Spectrum way way back in 1983, it was very very easy to get into programming.
1. Buy zx spectrum
2. Buy Your Sinclair magazine
Your Sinclair was just packed full of Sinclair Basic programs for you to type in - through that, you learned about programming. It really was kind of an open source way of learning about programming and it was just BASIC , but at least it gave my former 12 year old self a leg up and a way in to murky world of coding.
Fast forward to today and i dont see a "Your PHP" or "Your Python" kind of weekly magazine. Dr Dobbs magazine comes close, but that's really seriously high level.
Yeah, i know - PHP and Python have tons of websites, but in reality , a printed magazine on the newstands would make an impact. Maybe we , as in the Slashdot crowd or the more general open source community, should seriously think of going back to "old media" and think about doing a printed monthly magazine with nothing but code in it in order to give the youngsters of today a bit of inspiration.
maybe we've been too self-centred and too self-obsessed with the whole "internet" thing that we've forgotten where we've come from.
we need to reach out and get the kids that dont use the internet involved. maybe that's what might happen over the next few years - new media re-discovers the old media. a kind of influx of new media types into the world of real world publishing.
just my 2 euros.
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.
I trace my introduction and facination with computers back to ye 'ole Tandy Color Computer I and Extended Color BASIC... back then, if you wanted the computer to do anything remotely useful you had to program it yourself. The manual was quite well tuned to beginners and children.
:)
It was quite fun doing things such as piggy-backing RAM chips on the motherboard to "upgrade" your memory, or adding LED's to the serial and cassette cables to indicate status and activity.
These are the kind of things that hook a child for a lifetime.
Sadly, I can't imagine Microsoft Visual Basic having the same effect, as it isn't as "needed" and always just "there" at the prompt as part of the OS like coco BASIC was.
I personaly started on a PET, but that's not really important. The real question is 'Where to start?' Regarding programming the answer is simple, the begining. Start with concepts and leave variable types, apis and syntax for later. Psuedo code is your friend. While this may not seem particularly satisfying it doesn't take long to lay the ground work, controls structures, methodolgy and that lot.
/simple/ language. Avoid languages with beastly syntax and apis. Pascal was a teaching language for a reason, it was/is very simple. I personaly moved from 'playing' with basic directly to C.
After the core concepts have been taught, and perhaps in parallel, choose a
I remain to this day of the opinion that C is a simple and powerful language where the fundamentals count. I admit that there are some concepts that can be a bit 'hairy' when dealing with C, pointers for example, but they can be taken in stride. I'm not suggesting that C is the only way to go but syntacticly it's simple, the api is small and straight forward (mostly), types are 'reasonably' understandable and the syntax has been largely adopted/adapted by most newer high-level langagues.
One drawback to C is that while it teaches pragmatic programming, things break if you get careless, without apis it's not flashy. You're teaching concepts though so that should be less important. If you're looking for something with more exciting immediate gratification look to another language.
I'd recomend PHP if that's what you're looking for. Again, it's a relatively simple language, and it's typeless which avoids a stumbling block. It can be combined with HTML to give some 'graphical' results.
Why PHP instead of Java? I think Java's api is a bit overwhelming to start with, but that's my opinion. Why not C++? 1) It needs an external api for graphics. 2) In my opinion it's inheritence/overloading syntax *bites*.
Basicly take things in step. Start with concepts. Move to application of concepts. Next, 'practical' application of concepts. Advanced concepts and techniques will come with time/experience. Don't rush things, no good comes from it. A strong background will make learing other langauges and more advanced concepts, OOP for example, less of a task.
That's 'Where to start?' from my perspective. Of course this is all my opinion, and it's based on my experience, so it may be a bit skewed. Take it for what you will.
I am invisble, and you can't see me.
I really wanted the Sony (2 x double density disk drive), but it was deemed too expensive by my parents. They bought the darn PC after quite a time of nagging from my side. It even had floppy disks and quite good graphics and sound for that time.
But the most important thing: it came with a MSX DOS & BASIC handbook. The thing booted in BASIC and I became used to loading the first games from that. The first BASIC programs (starting with the print statement in a loop), but in a few years I was even doing assembly stuff. Z80 is a fun and easy processor to program.
The problem back then was finding people with the same interest. There were a few that did some basic C64 stuff and even a few MSX owners around the place, but nothing fancy. The only advanced refference I got later was an MSX 2 reference book, but it was stolen out of the library by a misserable sod, who happens to be my friend until this day. I stole it back and got it laying around somewhere.
Currently the problem is getting a nice programming environment. HTML is just data, and JavaScript is awkward and ugly to program. No programming tools are installed with Windows as well (and Windows scripting is just too much). I wouldn't recommend scripting and OO is a bit much to start off with.
The good thing is the internet. LOGO is still around, and is probably a great thing to start off with (it's free you know). I've got LEGO mindstorms and that learn children the basics really easy, using flow diagrams, but it is pretty expensive (~250 dollars for the one you can program). Anything that is easy to learn and visual may sufice though. And make sure they've got plenty of refferences - get the school involved or something.
If everything fails, fall back to BASIC, even using an MSX emulator if you must. Don't forget to unlearn it though once they get the basics. Visual Basic is the worst PL on the planet.
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.
Well, were you as amazed by typewriters then as they are by computers now?
I gotta throw my lot in with the other guy here. Mom's Smith-Corona manual typewriter was already an Antikythera-class artifact by the year I was born, but even though I was exposed to various early microcomputers while growing up, I was never inclined to take the Smith-Corona's complexity for granted. The guys who designed those old typewriters were not exactly the slow kids in class. (Do some Googling sometime about how IBM implemented a multicharacter typeahead buffer in the Selectric with a tube full of ball bearings.)
Later, I read a comment by Jim Williams of Analog Devices about an old-school Tektronix oscilloscope, the kind you could heat your living room with: "The thing just radiated intellectual honesty." Same deal with the Smith-Corona. Both instruments belonged to a time when what something did was intimately obvious from what it was... and how it worked was readily apparent from how it was made. Even a modern-day '1337 haX0r can still learn from the design ethos behind those old clunkers, and find reasons to be amazed by them.
Dahlmann tightly grips the knife, which he may have no idea how to use, and steps out into the plain.
GVR is like karel, but with more python coolness. They also maintain a list of a fes karel-related links on their site.
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
and a lot of those types of games. Eventually my dad moved me over to duke nukem and bunch of other weird 2d sidescroller games.
If you want them to learn programming, I'd say start with html. It may not be object oriented (as everybody is friggin obsessed with) but they can see the results immediately and it only takes a month to memorize all the basics. Then you can move them on to css/dhtml and javascript. See, HTML is a gateway language!
Well, assuming you have a spare computer to set up as their sandbox. In my house, the kids have admin access on the kids' computers, even the 3 year old. When they screw up, they don't get to play their games for a few days until I have time to get it running again. Eventually, they'll be responsible for fixing it themselves.
They've got limited accounts on my and my fiance's computers, though.
Get them a pony. This will teach them to deal with an animal that's cooperative enough that you can do something with it, but independent enough that it's not easy. This prepares them for management.
Absolutely - Mindstorms is fantastic for this. Last year we ran an event at a school for an introduction to programming for 13 year olds. Ths school has lots of computers - but they're mostly used for word processing, web design, etc, etc. No programming. The Mindstorms kit is brilliant for this age group for getting across the fundamental idea that it does exactly what you tell it. We pre-built a Roverbot type line-follower (to avoid wasting too much time on hnting for the right bricks) and built up from just making it move and turn into a line following race between teams by the end of the day. We knew we had them hooked when they were asking to stay in at break time to tweak it to make it go faster.
This is just my 2 cents. I started on a TI-99 back in 83 I think. I was 5. I played a few basic ANSI graphic games but I remember one Sunday morning I came into the family room as saw my dad typing in BASIC from a computer magazine. I remember having a radio shack tape recorder to save the program too. Well, after about 2 hours of typing either he or I tripped over the power supply and I remember him cussing about losing everything he just typed. Next thing you know I'm retyping everything from the computer magazine, later that day I was playing an ANSI game flying a helicopter to save people from a burning building. Then in the late 80's my Dad regained his interest and picked up an Amiga 500 with a Star Color printer and 1200BPS modem. I spent a lot of time on BBS's, they didn't seem to have a purpose but I was fascinated with what an E-mail was and that I could talk to another computer. The modem went in a box for a couple years. Fast forward to High School, the 500 was still kicking and pretty well. I met a couple kids who asked if I had a modem once they learned I had a 500, they showed me what BBS's has become. I took a programming course in High School. I was on the football team, we all took it. We went through GW Basic, but a lot of us couldn't wait to show off and see if we could learn C. Fast forward passed building computers and all that junk. In 96 I walked into Best Buy, asked for a job, they asked me what I knew about. I looked around, not really sure and said computers. So they interviewed me, one question was "What is a Pentium Processor?" I remember saying "It's a dual 32 bit processor which has [whatever the raw processing power was]". I was hired, then I found out I knew a lot more about computers than I thought. Back in 96 was when all the kids who grew up learning on the computers were just entering the part-time workforce, we were good, a lot better than kids you run into at these box shops now. Fast forward again, I landed a career with a Fortune 100 company, still working with computers. I thought the way to go was networking, as of right now, I'm a consultant and do a TON of intergrating and programming. I also started my own consulting business scripting in CGI/PHP to coding in Java/VB/C++. So what is my answer? Well, it's simple. When I was 13 my dad bought me an RC plane. I flew it a few times and crashed it, I wasn't interested in it again. I'm 27, 2 months ago I suddenly started buying RC planes again because it was something I did when I was younger and I have some great memories. So, I say expose a kid to computers at an early age. They might not to take it, but there is a good chance as they get older they might really want to learn exactly what it was they experienced at a younger age. Also, tell them not to do it, when you tell a kid not to do something, they automatically are interested in it. I remember that anytime I was told something if for High School or College kids, I instantly wanted to do it. So tell them it's for the big kids, all little kids want to be like the big kids. So, if you want them to learn programming, who cares where they start, it's where they end up that matters, you can't force a person to become a person, they have to do it on their own. I would suggest if you want to get them into programming, have them write a basic program in your language of choice that actually accomplishes something. I interview people all the time who took programming in college but didn't have practical use for it. They had no interest in learning what a class was, or proper syntax. They need to program something where they can directly see not only a result, but a use. I can teach a kid 'Hello World!' in any language, but the gratification of that doesn't last very long and just gives us web sites that popup annoying practicaly joke alerts over and over. Find something your kid is interested in and have them write a program for that. Learning to change a tire, now that's practical. Kids don't want to learn it? Weird, how'd this tire go flat
Trying to learn a language through a book that teaches the parts of programming can be a pain. I'd suggest that you instead find an existing program that you can modify to work on.
For me, I learned most of my C (which I later transalted to C++) coding on a MUD. I didn't code the MUD from scratch, but editted one that already existed.
Find some open source code that does something you're interested in and start hacking away. It's much easier to pick up things one item as a time through editing something that's already there than to try and think of (and implement) a whole new package to program from scratch, especially when you're still a novice.
paintball