PDA

View Full Version : Best Language for a 7-Year-Old?



Ubuntist
May 28th, 2013, 09:04 AM
I'm thinking that my 7-year-old nephew might find programming fun. I'm trying to find the best language to introduce him to. The only one that comes to mind is Logo, though I know next to nothing about it. Are there any other languages that I should consider? What's needed is a language in which it's easy to do something fun.

MG&TL
May 28th, 2013, 09:50 AM
http://python.org, all the way, IMHO. Python has modules for almost everything built-in,but it'll easily extend beyond a seven-year-old's needs when the time comes: it has almost all language features available in some way.

There's a choice between python 2 (which is older, has a slightly different syntax, and a few more libraries available) or python 3 (which is newer, has a slightly different syntax, and a few fewer libraries, although the gap is closing). My advice would be to go with python 3, as it's newer and will be 'future-proof'. There's a beginner's tutorial here: http://docs.python.org/3/tutorial/

Ubuntist
May 28th, 2013, 10:54 AM
Thank you. I am familiar with Python and quite like it, but it hadn't occurred to me for this purpose, because it's not clear to me that it's easy to code something that my nephew will enjoy. Is there a library that would make it really easy to draw things on the screen or do something similarly entertaining?

sudodus
May 28th, 2013, 11:01 AM
Alice is a alternative for object oriented programming. My oldest child tried, but maybe a bit too advanced for a 7 years-old child. Try it!

http://www.alice.org/index.php

Nytram
May 28th, 2013, 12:32 PM
Probably the easiest language to learn and do something fun with IMO would by Python along with Pygame. Pygame is a collection of libraries for Python designed to make the writing of video games easier. Having said that, I think 7 years of age is a few years too young to start programming, unless you try something simple such as Logo as you mention.

Personally, I'd recommend something like GameMaker if you have access to Windows, my nephew used to use it to create simple games, and he was around the same age as your nephew, or maybe slightly older.

buzzingrobot
May 28th, 2013, 01:38 PM
I won't recommend a specific language, but will suggest placing priority on something that will allow your nephew to see results immediately. That means an interpreted language. Something that doesn't impose a steep learning curve before the user can do much of anything. That mean *not* Perl. (Regular expressions and a 7-year-old? Nah.)

A teaching tool that shows immediate feedback, preferably by allowing manipulation of images, is probably what you're looking for.

MG&TL
May 28th, 2013, 02:52 PM
Thank you. I am familiar with Python and quite like it, but it hadn't occurred to me for this purpose, because it's not clear to me that it's easy to code something that my nephew will enjoy. Is there a library that would make it really easy to draw things on the screen or do something similarly entertaining?

It really depends on what he enjoys and how long his attention will last. Pygame is probably your best bet if you want to do something like screen drawing.

In the end, if it has to be 'entertaining' all the time, your nephew might not enjoy programming until he is older, as it is by nature frustrating until you complete the task you set yourself. But I'm sure you already knew that. :)

King Dude
May 28th, 2013, 05:04 PM
For a seven year old? I think Python in your best bet.

Paqman
May 28th, 2013, 06:51 PM
Take a look at Scratch. It's good for teaching the basic concepts without getting bogged down in syntax. Start simple and only add complexity a little bit at a time. A 7-year old might be able to get on with Python after a bit, but it's probably not the best place to start with most kids.

Dry Lips
May 28th, 2013, 07:03 PM
Is this an average 7 year old, or an incredible gifted one? If he is a normal boy, then perhaps he should focus on learning to read, write and addition/substraction? It wouldn't hurt to wait a couple of years when it comes to programming, no?

lykwydchykyn
May 28th, 2013, 07:14 PM
I'll second the recommendation for Scratch. I tried to teach my sons Python at around 7 or 8, but found they were hampered by the need to type so much. They took to Scratch immediately and have done tons of neat things with it.

Now, a few years later, my oldest is getting into Python more or less on his own, because he's started finding Scratch too limiting. But he understands programming in general a lot better from having worked with Scratch.

Kdar
May 29th, 2013, 02:43 AM
I was also thinking of Python.... and then maybe Perl and Bash...

tentbob
May 29th, 2013, 03:39 AM
I recommend Python also, I started programming when I was five and I am now 13 and Python is what I learned on. The syntax is incredibly easy to understand and you can have lots of fun with the pygame library. Teach him Python then go on to something more advanced such as Java or maybe C# if he will understand more advanced math. Anyway teach him to have fun with it! I learned by reading documentations for EVERY programming language I know and it gets intensively dull. I quit programming until I found out about pygame and began that when I was 8 and loved making any program since. :D

Moose
May 29th, 2013, 05:42 AM
I started on C++ when I was 10, moved on to Python when I was 12. I am 14 now and I can fluently code in either one. It doesn't really matter what language they get into first, just try to be as patient as possible, because at the end of the day, the lad is only 7. :P

Also I forgot to add, if you want your child to become a professional programmer when he is older, or if he is even interested in it already, don't start him on something as easy as scratch. Because when he gets older and decides to be more serious about it, he's going to be in for a big wake-up call. ;)

monkeybrain2012
May 29th, 2013, 08:24 AM
A seven year old should play outside. If you want him to learn programming it is better to start with general concepts instead of a language. I have a friend with a Ph.D in math who teaches Turing machines to a class of 10 year olds with a lot of pictures and visual cues etc, the idea is to teach the concept of algorithms and show some simple implementations..

mastablasta
May 29th, 2013, 02:50 PM
scratch - the rapbery pi make PiMag where they have tutorials and programmes for kids. Even if you do not use the Pi you can still use the same langauiges that are found in those tutorials.

to the naysayers.... i started with Spectrum Basic when i was 5. Unfortunatelly education&life later pointed me in a different direction. i would really like to learn python now and already read a book about it. but unfortunatelly i just can't find the time to learn it.

s.fox
May 29th, 2013, 02:55 PM
Is this an average 7 year old, or an incredible gifted one? If he is a normal boy, then perhaps he should focus on learning to read, write and addition/substraction?

I agree. I think also perhaps logic puzzles would be a good area to focus on.

lykwydchykyn
May 29th, 2013, 04:57 PM
Also I forgot to add, if you want your child to become a professional programmer when he is older, or if he is even interested in it already, don't start him on something as easy as scratch. Because when he gets older and decides to be more serious about it, he's going to be in for a big wake-up call. ;)

There are generally two schools of thought on learning programming:

- Start with the hardest, lowest-level languages so that you understand what's really happening at the computer level, then work up to higher levels of abstraction armed with that understanding.

- Start with the easiest, most abstracted language that you can actually accomplish something in, and work down to the lower layers of abstraction when you run into limitations.

The correct approach is.... both. Or either. Depends on the person, really. Some people will happily spend months generating the fibonacci series or writing guess-the-number games in the console just to learn abstract concepts about C. Others won't follow through without the gratification of writing a program that actually does something useful. Comes down to learning styles and what motivates people to learn.

In either case, unless this 7-year old can type reasonably well, teaching most languages is a waste of time for at least a couple years.

stalkingwolf
May 29th, 2013, 05:37 PM
there is a game in edubuntu that introduces them to programming. as well as many other things. i recently gave a laptop to a friends 11 year old with edubuntu on it. he hasnt looked back. he loves tux racer and found something and made his own screen saver.

Ubuntist
May 30th, 2013, 10:47 AM
Thank you all very much. I do appreciate all of the views and suggestions and am going to look into them.

Paqman
May 30th, 2013, 11:45 AM
Cool, just remember that with teaching any new complex skill the general principle is to always be moving from the known to the unknown, and from the simple to the complex. It sounds trite, but it is worth filtering everything you plan on doing through that. Often as adults we focus on objectives, when teaching you need to be just as focussed on where your student is NOW and how to get to that objective. Break complex skills or concepts down into bite-sized chunks, each of which provides some tangible reward for mastering. Make it fun!

Bottom line is you know better than us what will work and what will motivate him and generate enthusiasm.

And don't take it personally if he gets bored with it, or just isn't as interested as you'd like him to be. It may be that your approach is wrong, or it may just be that he'd rather do something else.

alexfish
May 31st, 2013, 03:56 AM
Hi All

Think this one may be worth a try ,

could take you from 5 To 50 +

http://www.basic-converter.org/

Have fun

BR

Alex

codingman
May 31st, 2013, 04:08 AM
Perl or Python are perfect. C++ if he is *gifted*.

Mikeb85
May 31st, 2013, 05:39 AM
I'd go with Ruby. Whitespace and structure aren't as important as Python, there's more ways to do things, and everything is quite intuitive. Should be perfect for a kid to learn on. Installing Gosu (2d game library) would also be fun, you can have a game window and graphics in only a few lines, and a complete game in ~100 lines.