What is the earliest age to teach kid programming?

How would you teach Python to a 10 year old, so that they understand and are engaged?

  • I've got the daunting task of tutoring a 10 year-old in programming. He is fascinated by science and mathematics over sports, but has an ADHD-style personality (I'm not sure if he's diagnosed, but he is VERY hyperactive and has a low attention span). I've chosen Python as the first language because it's a good language for beginners, and I am proficient, so I can teach it comfortably. Here are my main concerns, though: Where the heck do I start?! If I start with learning basic operators and syntax, this kid's mind will stray quickly out of boredom. I want him to be excited about programming and to understand how fun, powerful, and mentally stimulating it can be; not to see it from the get go as a bunch of convoluted syntax. How should I demonstrate the possibilities that programming offers in a way that will make him interested long-term? Should I simply talk about where it's used (video games, NASA, web applications), or should I show him how he can apply it to his life right now (show him how he can use it to do his math homework)? What would be the order of lessons? Operators/basic syntax => types => defining basic functions => using functions and return values...etc? Or should I go about it a different way? Are there any good resources out there for teaching young kids how to program? I would have loved to have started when I was 10; I hope I can give that to this kid without intimidating or boring him. Also, I hope this thread proves helpful to parents who want to teach their kids in a fun and age-appropriate way. Any experience, tips, ideas, lesson plans, and resources are greatly appreciated!

  • Answer:

    Try http://www.codecademy.com A lot of resources and a interactive course! :...

Oscar Bralo at Quora Visit the source

Was this solution helpful to you?

Other answers

Here are some tips.  They are classroom-oriented, but you may find some helpful info as well:   Good luck!

Sarah Thomas

For many kids (but not all kids), it is definitely true that a "textbook" approach -- starting with basic operations and syntax -- will put them to sleep. This seems to be a fact not just for kids but for people of all ages: I think the best way to get someone excited about something is to show how it's relevant to something that they already care about. (Tangentially: I think this is probably why so many people hate math.) So what does your kid like? Does he like videogames? One of my first forays into "programming" as a kid in the 90s was designing maps for DOOM. I recently met a couple of young kids who were extremely excited about Minecraft. Does your kid play Minecraft? I believe there are python modules that interact with Minecraft. I think there are also some programs out there that allow you to design Minecraft maps, etc. Does he like the internet? Does he want to make a webpage where he can write about his favorite things and share it with his friends? HTML isn't really programming but it's still an easy and good way to get started with computers and the Internet. Another one of my early forays into "programming" was learning some basic HTML and making simple Geocities/Angelfile webpages where I wrote about my favorite videogames. Does he like to draw pictures? A classic early computer science education language is http://en.wikipedia.org/wiki/Logo_(programming_language), also known as turtle graphics. There is a turtle module for python: http://docs.python.org/2/library/turtle.html Also, definitely take a look at the programming language http://scratch.mit.edu/. For kids, I think it's best to keep it simple and unsophisticated. There is no need to really teach them the full power of programming just yet. Just getting them interested and started with something simple that they can play around with and have fun with is enough. You should be building their confidence and interest; trying to go too fast can make them lose confidence and lose interest. If they get really interested and want to investigate programming more deeply or more formally, then that's great. But if they don't, that should be fine too. The most valuable things to teach them, I think, are simply the awareness of the power and versatility of computers as tools, some basic conception of how computers work, and the idea that computers are not intimidating but actually quite simple.

Anonymous

There's a book. Hello World, written by a father and son team, last name is Sande. Good stuff.

Eric M. Seitz

For a ten year old nothing beats playing games, and better yet creating their own games. http://inventwithpython.com/ <--- FREEEEEEEEEEE!

Farshid Palad

1. Don't just "teach Python", introduce the world to him with Python in it. For a 10 years old there is a lot to learn, like math English, plant, animals and Python. 2. Solve easy problem with him, don't  show him python as a powerful black box. 3. Show him how powerful a loop is. :-)

Yuhao Huang

I'm neither a child expert nor a professional programmer(learning basic Java as of now). I'm practically a child myself. I'd rather stay in my room programming on a friday night rather than going out and hanging out with people. My approach when I started to learn Python was kind-of like Kevin's. I started with games. Games are great. Who doesn't love games? I started writing simple games(hangman, guess the number, tic-tac-toe, little Alien-blaster text based games) and eventually worked my way up to making games with full blown sound, music, and animations. Especially with your problem being with a kid, games are great because they keep the kid entertained with the project.

Anonymous

Related Q & A:

Just Added Q & A:

Find solution

For every problem there is a solution! Proved by Solucija.

  • Got an issue and looking for advice?

  • Ask Solucija to search every corner of the Web for help.

  • Get workable solutions and helpful tips in a moment.

Just ask Solucija about an issue you face and immediately get a list of ready solutions, answers and tips from other Internet users. We always provide the most suitable and complete answer to your question at the top, along with a few good alternatives below.