views:

343

answers:

15

Possible Duplicates:
How to get kids into programming
Suggestions on starting a child programming.

Is there a really simple programming language that I can use to teach my 6 year old son concepts of programming, syntax and logic?

+1  A: 

SmallTalk. It was created for educational use.

I have to agree that six years old sounds a bit young though... if they don't want to learn, don't try to force them.

Mark Byers
A: 

Yes, there is Plain English Programming Language

Sarfraz
+1  A: 

Well, Python has very English like syntax that makes it relatively easy to pick up. Python IDLE works in a read-eval-loop mode, so you don't have to go through compiling or anything. You can type code in line-by-line and get instant feedback. It also has an interactive help mode. If he needed to know what some function does, and you weren't there to help him, he could just type help(someFunction)

There was a comment about how it can become confusing when you mix tabs and spaces in Python. In response to that comment, most editors have an option to automatically replace tabs with X spaces. In IDLE, it's as simple as Format->Toggle Tabs to make it so whenever you press the tab key, it inserts 8 spaces instead of a tab.

Labview is completely visual. It's mainly used to program robots. It's extremely logic oriented. However, there's quite a big price tag on it.

Wallacoloo
I'm not sure a 6-year-old could handle the tab weirdness. And by that I mean, at that age he probably has no clue what the difference between a tab and a space is, so when he gets an error related to whitespace but doesn't *see* an error, it will be confusing.
Bryan Oakley
@Bryan: I don't think that it will be worse than getting him to understand braces delimited blocks.
voyager
@Bryan: I edited my post to explain how you can have IDLE not use tabs.
Wallacoloo
A: 

I think the framework is important too. Your kid should be able to create a game without too much ado. Python + pygame springs to mind.

Otto Allmendinger
Framework? What has that to do with learning about programming? Thats about patterns of organisation and structure when you can program.
PurplePilot
For a kid it is also about fun
Otto Allmendinger
I agree, every time i crank Symfony up its ROFL time, but i am sure a 6 year old would get the point. ;-)
PurplePilot
+1  A: 

I suggest python via Snake Wrangling for Kids:

“Snake Wrangling for Kids” is a printable electronic book, for children 8 years and older, who would like to learn computer programming. It covers the very basics of programming, and uses the Python 3 programming language to teach the concepts.

Fake Code Monkey Rashid
+2  A: 

Take a look at Small Basic from Microsoft.

By providing a small and easy to learn programming language in a friendly and inviting development environment, Small Basic makes programming a breeze. Ideal for kids and adults alike, Small Basic helps beginners take the first step into the wonderful world of programming.

I think the quote sums it up, really! :)

Rob
I learned with Visual Basic 3.0 back in the day and really recommend it, unfortunately VB.NET is a bit too complicated for this purpose nowadays
Alex
@Alex, I started with QuickBasic 4.5, and then moved to VB when it came out, but yeup, VB3 was fantastic!
Rob
Oh man, the countless hours I spent "hacking" gorillas and nibbles to change the colors and stuff... good times! :)
Alex
A: 

Try Scratch.

Don Roby
This looks extremely promising - moreso than the others. Not sure why it isn't getting more votes.
Brent
+2  A: 

Logo. Designed specifically by Seymour Papert to teach children how to program how to deal with recursion etc. etc. all without using those words to put people of. Particularly when linked to turtle graphics to give a readily available and recognisable output and feedback.

Because it was designed to cover all the fundamentals in programming it does not necessarily major in anything, but the ides is to give the children all the core fundamentals.

PurplePilot
+2  A: 

Check out www.pythonturtle.com

Amir Rachum
+6  A: 

I'm probably the only one here with this opinion, but I think 6 is too young to start a child on programming. Those years are critical for development of a whole host of skills including social skills that are not computer-related (that, indeed, may be antithetical to computer use) and intellectual ones that actually will contributed to computing skills later on (I'm talking about math and problem solving skills).

I've started introducing my kids to programming at the ages of 8 and 10, but I don't expect them to take a serious interest in it until their middle school years (starting at age 11/12). In general my kids spend much, much less time in front of a computer than their classmates. They both lead their classes academically and are well socially adjusted.

Larry Lustig
+1, but I wouldn't expect a child to take a serious interest in any particular topic unless they were naturally curious about it!
Mark Simpson
+1 Very good answer.
Helper Method
It's a good point, but it doesn't answer his question at all.
Mark Byers
It's not a question in the sense of having a correct answer (that is, by Stackoverflow standards) but rather than a solicitation of opinion. My answer is a polite (I hope) way of saying that I don't think there is a solution to the poster's question — that I don't think such a language exists.
Larry Lustig
A: 

Personally I think Tcl is perfect as a beginning language, especially for young people. It has an interactive console for instant gratification, and tk is by far one of the easiest GUI toolkits on the planet. One or two lines of code to see a window on a screen. Just a couple lines of code to create a canvas and draw rudimentary shapes, etc.

I know many people don't like Tcl, but I think that's more out of ignorance than anything else. And I mean that in a good way -- if you don't understand Tcl but know more traditional languages, it's hard to see the beauty in such a simple yet powerful language. The whole definition of the language fits in a single man page, so it's easy to grasp the fundamentals.

Finally, as a teaching tool it lets you recreate just about any language construct you wish. You can not only show them for and while loops, you can create repeat/until loops, or anything other types of looping to emulate other languages.

Bryan Oakley
A: 

I started learning programming in the hey-day of Pascal, a language which many would say is designed for learning. Here's a quote from Wikipedia:

Criticism

While very popular (although more so in the 1980s and early 1990s than now), implementations of Pascal which closely followed Wirth's initial definition of the language were widely criticized for being unsuitable for use outside of teaching.

Take that for what you will =)

polygenelubricants
A: 

turbo pascal? :) gwbasic? and nextly python :)

oltre_la_mente
+1  A: 

Guido van Robot is a logo like application that uses Python.

voyager
Yes, this looks like it would teach logic principles quite well.
Wallacoloo