5 Tools to Introduce Programming to Kids

Arduino

It’s hard to argue with the importance of teaching students how to use computers — how to turn on, log on, search the Web, and use applications. These skills are absolutely necessary for students’ academic success as well as for their future job prospects.

Being able to use the Internet and operate computers is one thing, but it may be just as valuable to teach students how to code. Giving students an introduction to programming helps peel back the layers of what happens inside computers and how computers communicate with one another online. Programming knowledge, even at a very basic level, makes technology seem less magical and more manageable. Programming also teaches other important skills, including math and logic.

Many students don’t have access to computer science courses until college, and that’s a missed opportunity to introduce younger students to programming. There are many tools out there that provide a great introduction to computer science for K-12 students, but here are a few of our favorites.

SCRATCH

Developed by the MIT Media Lab, Scratch is a visual programming language for children age 6 and up. Since its release in 2007, over 800,000 users have joined the Scratch website and have shared over 1.7 million projects — from games to animations. That sharing aspect is an important part of the Scratch community, so the projects that are uploaded to the site are licensed under the Creative Commons attribute and share alike license so that others can download and remix them. Scratch is available free of charge and runs on Mac, Windows, and Linux computers.

ALICE

Alice is a free and open source 3D programming environment designed to teach students object-oriented and event-driven programming. With Alice, students drag and drop graphic tiles in order to animate an object and create a program. A variant of Alice, Storytelling Alice was developed by Caitlin Kelleher as part of her doctoral work in Computer Science at Carnegie Mellon University. By emphasizing animations and social interactions, this approach was found to greatly increase the level of student interest in programming.

HACKETY HACK

Hackety Hack is an open source application that teaches the basics of programming in the popular Ruby language. Hackety Hack offers an interactive tutorial that runs on Windows, Mac, and Linux operating systems. While both Scratch and Alice use a graphical programming language with “blocks,” Hackety Hack teaches the basics of Ruby syntax. The tutorial and the text editor are well-integrated, so there isn’t any flipping back-and-forth to move between the How-To guide and the actual coding. Hackety Hack gives students a solid foundation in the language so they can quickly and easily start building their own apps in Ruby.

ARDUINO

Arduino is an open-source electronics prototyping platform with both hardware and software components. Arduino’s hardware is programmed with a language similar to C++, and although it may not be the easiest of entry points for learning programming, there’s something about building things that actually move that can be pretty compelling. Projects that use Arduino to introduce children to programming include a modification of Scratch to support simple programming on the Arduino hardware. As Google recently announced that it would allow Android mobile devices to communicate with Arduino hardware, look for more opportunities to work with this platform in the future, perhaps even via the Android App Inventor, a tool that provides a visual interface for building Android apps.

LEGO MINDSTORMS

One of the most popular toys in history, Lego may be best known for its brick-building. But Lego Mindstorms also enables robotics-building. Lego Mindstorms’ kits — which can be purchased in educational and consumer versions — include sensors and motors, and the programming is command-box rather than code programming. The kits come with languages supplied by Lego, but can be modified to work with third party languages. Like several of the tools on this list, Lego Mindstorms has its roots at the MIT Media Lab.

These are just a few of the options for introducing someone to programming. What other languages or tools have you used — in the classroom or at home?

  • http://Androidized.com Lucian Armasu

     No Google’s App Inventor?

    • Halftrip

      Yes, listed under Arduino. 

  • http://twitter.com/hacketyhack Hackety Hack

     Thanks for the coverage of Hackety Hack! I’m glad you’re enjoying it.

  • MichelleMoloneyKing

    Love this blog, I am adding you to my ”great blogs” page on my blog http://www.TeacherMoloneyKing.com 

    • MichelleMoloneyKing

      oops its a site not a blog, I am still going to add you! 

  • http://pulse.yahoo.com/_JFEXTDCLWYMZKG3CCVOGEZWWA4 Lisa

    Just this week my 10 yr old daughter has asked to teach her programming….thank you so much for sharing!

  • Séverin

     I would mention Squeak EToys (www.squeakland.org) as well: Scratch is build on top of Squeak, and while Scratch is more polished, it’s also more constrainted.

  • http://www.facebook.com/ericrossrosenbaum Eric Rosenbaum

     There’s an excellent Scratch-like language for controlling Arduino called ModKit, available at http://www.modk.it/

  • Sit Kack

     Lua Love is a great 2d game engine that is cross platform (Mac, Linux, Win), http://love2d.org/  it includes all the batteries. Although it doesn’t have an integrated editor. 

  • Michael Paul GOldenberg

    For free resources for learning about computer science and some of its underlying mathematics, visit http://csunplugged.org. There are a host of free lessons in downloadable pdfs that explore the mathematics of computer science, from simple binary notation to more complicated algorithms, all perfectly doable without a physical computer. Great stuff.

  • Mortimer

    Toontalk belongs with Scratch and Alice as way for young kids to learn to program.  It’s very different from both, has advantages and disadvantages.  Main striking thing about Toontalk is that it is 100% 3D programming environment; i.e., there is no verbal programming language, everything is done by manipulating 3D objects, including programming (which involves “training” robots and setting them loose to perform what they were trained to do).

  • Anonymous

    One can use Zed Ex – a free Sinclair ZX81 emulator on Android Market to teach programming. Also one can type in JavaScript programs in the adressbox of the browser, see http://j.mp/webjsol

  • Jim Baker

     Since the arrival of Seymour Papert in the 1960′s, MIT’s Media Lab has been on the forefront of bridging the gap between young brains and little fingers and powerful computers. Please let us remember the classical kid-friendly language, Logo, that not only introduced children to Turtle Geometry but to the excitement of using an accessible coding language that could condition young minds to work iteratively between a rich visual dimension and powerful syntactic language as they brought imagined mathematical ideas to virtual reality. Two Minneapolis teachers integrated a complete elementary math program with Logo, leading students in becoming proficient in the language through applications explicitly focused on learning and applying math. It works! as research posted on the What Works Clearinghouse web site has proven. More information and a free, open source Logo app and sample lesson materials can be found at: http://www.expertmath.org.

    • Marshall Hampton

      I love Logo, but I think Scratch is really superior at this point for 7-11 year olds. It can do the same sorts of graphical commands as Logo but is more engaging in the long term. The downside is that it doesn’t encourage function writing quite so much.

  • Idit

    What other programming languages we use? – Kids (and teachers) LOVE Flash Actionscript for building webgames. After all, it’s the language real designers and programmers use worldwide. With deep roots in the MIT Media Lab constructionist tradition and R&D, we’ve been using Flash inside the www.Globaloria.org social learning network in the past 5 years with thousands of students in public schools with great success. Flash is probably the best language out there for connecting content learning with computation, cultivating college and career readiness and game media literacy skills. Listen to student programmers speak about it: http://www.worldwideworkshop.org/programs/globaloria/vftf

  • Pam

     

    Children need their own space so that they can explore their
    talent and creativity. We, the parents should always stand beside to help those
    learning different things. We should teach them different subjects in different
    innovative ways so that they love to learn them. We should let them understand
    that homework is the most important part of education and without proper
    education they can’t be succeeded in their life. Parents, especially mother is
    the best teacher in a child’s life. The way, she can guide a child, no other
    can! However, sometimes, it becomes hard for the parents to help children doing
    homework. In that case, they can take advantage of online tutoring services
    like tutorteddy.com. 

    • progDad

      I am a father, and I must say this part of my boys’ guidance falls to me, and I couldn’t be happier to do it.  Their mother is content to give them ‘because this is the way it is’ type answers, while I see clearly my task to introduce them to the world and how it works.  Let’s try to be constructive, avoid a lot of buzzwords (how does one apply phrases like “different innovative ways”??) and avoid sexist comments.  Thank you.

    • Jasmine

      This reply sounds like spam more than anything else.

    • Lanesmail

      that’s complete rubbish.  I hope she’s not teaching them to write.

    • Eric Westby

      The message above from Pam is merely spam for a tutoring website. It should be removed, especially since this post is still popular two years later!

  • Arie

    With RoboMind kids can learn programming by instructing a robot in a 2D world using a very simple scripting language. It is available in 12 languages, free and open source. 
    Have a look at http://www.robomind.net

  • Joseph Santos-Sacchi

    check out Merlin Programmer for Kids — for 5 yr olds – FREE- http://www.SciSoftCo.com

  • http://benjaminlang.com Ben Lang

    http://www.codecademy.com/ is an amazing resource.

    • boy

      buggy site, and keeps asking for my cell phone number

      • http://twitter.com/theplotlessplot Henrique Sousa

        I’ve been registered on Codecademy since the beginning of 2012 and the site *never* asked for my cellphone number.
        I agree with Ben Lang. Codecademy is an amazing resource and starting-point for people who want to learn programming. Their Codeyear initiative helped me learn Javascript and Python (among other languages) and even led to a few coding-related job offers.

      • linnielenart40cx

        my neighbor’s step-aunt makes $70 hourly on the laptop. She has been out of work for 7 months but last month her check was $14813 just working on the laptop for a few hours. Read more on  Jive8.c­om

    • Winston Sieck

      I also agree with Ben… just started using codecademy to teach my kids (12 & 10) to programming. We went through “tryruby” earlier, and that was ok. They like the interface for this one better, and it’s not as buggy. Using javascript to program little games is very enticing. Site offers python and ruby also + others. In any case, I think it’s great for kids to learn a “real” language they can use outside the tutorial.

  • http://www.facebook.com/alexander.repenning Alexander Repenning

    Try AgentSheets if you are looking for a tool with a proven track record in schools. Tutorial here: http://scalablegamedesign.cs.colorado.edu/gamewiki/index.php/Scalable_Game_Design_wiki

    teacher training: http://www.9news.com/news/local/article/202987/222/Teachers-play-video-games-for-science- 

  • http://twitter.com/puredanger Alex Miller

    I’ve been teaching a kids programming class (3rd-6th grade) in Processing (http://processing.org) lately and I’m finding it excellent.  Installation is trivial and it comes with the editor and player nicely put together along with integrated docs.  Plus it’s actually Java so you can scale up into OO or many Java libs if you want to go there.  It’s graphical so you get instant feedback.  

  • Ben Cooperman

    I have found Processing to be a great, more modern alternative to LOGO and an excellent follow-up to Scratch.  There are tons of good resources out there for free.  I would recommend this video series on YouTube that currently has 81 titles and is aimed at someone who has never typed a single line of code:
    http://www.youtube.com/user/hamoid#p/c/632BB8C3F7E776BA/11/A3-lWJ_Hy_k

    Another good follow-up to Scratch is StencylWorks.  It allows users to create games for a number of platforms, including IOS and it uses blocks similar to those in Scratch.

  • DSwift

    For teens with an iPod Touch or access to an iPad, here’s an app that contains basic programming tutorials based on JavaScript.

    http://itunes.apple.com/us/app/programmer-app/id454060574?mt=8

    Contains lots of examples for the basic programming constructs and all examples can be modified and saved.  Built in editor, etc.

  • http://womenlikehighheels.info Sage Keilholz

    A person necessarily lend a hand to make seriously articles I’d state. That is the very first time I frequented your web page and thus far? I amazed with the research you made to make this actual post extraordinary. Excellent activity!

  • http://www.seomoz.org/users/profile/237899 James @ seo mauritius

    FreeBASIC? AutoIT?

  • BWS

    I use robomind from the Uni of Amsterdam with students who enjoy the relatively reduced syntax set and the visual element to it. It doesn’t use variables though selection and iteration structures are still well handled.  http://www.robomind.net

  • Lawrence

    With ProgrammingKit.com you get practice programming a computer! Kids and adults can have fun moving the bug around and drawing different designs. Parents: Ask your child to have the robot bug walk in a pattern
    (square, triangle, etc). Use the grid to count the boxes. Ask your
    child to have the robot bug walk to a particular spot on the screen.
     

  • James Andy

    I think this is pretty good tool for kids because if they
    learn from now so it will be useful for them in the future.
    http://www.goodcoresoft.com/

  • KL B

    I think these are great
    tools! Another resource for teaching kids programming is iD
    Tech 365
    .

  • David

    don’t forget Raspberry Pi, a new single board computer designed expressly for teaching kids programming skills (but with much broader applications).

  • NotPaidToSayThis

    Stagecast Creator is a great way to introduce programming to kids. I co-founded Stagecast in 1997, but I have no connection with the company any more.

    Creator is more easily learned and teaches more programming concepts than the free tools available. Until the end of 2012 you can buy it at stagecast dot com for $29.95.

    Creator is mostly used by 7-11 year olds at home and in schools, computer labs and computer camps. It’s often used to create takeoffs on classic video games. It’s also used to create simple educational simulations. Its “programming by demonstration” technique is a great way to learn programming concepts without writing code.

    Kids 10-12 who want to learn traditional programming can start with Stagecast Creator, use it for a few weeks with a teacher or a few months on their own, then graduate to traditional languages like Java, Ruby, Python, C, etc.

    Larry Tesler

  • http://www.CommercialClout.com MichaelADeBose

    These are some great entry level tools to introduce kids to programming and of course robotics. Where are the tools to teach their parents. These tools and similar would be excellent entry level tools for people to acquire new job skills. The really dedicated could be marketable if they apply themselves over a 3 to 5 year period.

  • http://twitter.com/wilkinsty leonard wilkins

    I quit working at shoprite and now I make $35h – $80h…how? I’m working online! My work didn’t exactly make me happy so I decided to take a chance on something new… after 4 years it was so hard to quit my day job but now I couldn’t be happier. Heres what I do, Fox 9 2 do t c om

  • CyaNn

    I am actually developing Algoid on Android platform that is an IDE (with debugger and step by step) and a programming language (closed to javascript 7 python) with simple instructions and tutorials to learn programming for 10 / 20 years old children.
    It’s goal is to learn several paradigms (function, oop, aop) in progressive way (from turtle to aspect oriented dynamic objects)
    https://play.google.com/store/apps/details?id=fr.cyann.algoid&hl=fr

    beginers tutorials are in progress.
    Visite http://caron.yann.free.fr/algoid

  • CyaNn

    I actually develop Algoid for google play android market.

    Look at https://play.google.com/store/apps/details?id=fr.cyann.algoid&hl=fr

  • Mandy

    I’m a novice programmer and can’t say how cool it is to see these programming tools for kids… Ruby training! (wow) As far as things you can give, I’m constantly disappointed by the selection of fun, learning toys that will excite my nieces and nephews. Any favorites or good sites you’d recommend? I’ve looked around but would love to hear what folks think!

    I actually joined the team of a toy company recently (on Kickstarter) because tech & education should be fun… and a lot more of it needs to be out there. If anyone wants to see what ATOMS is creating in “smart” building blocks (including iPhone control) and weigh in on the product, please do! ATOMS Express on Kickstarter http://www.kickstarter.com/projects/atoms/atoms-express-toys.

    Thanks!

    • Zdenek Zraly

      It looks like they have only iOS version?

  • Zdenek Zraly

    I tried many different tools and for my 7 years old daughter the best beginner tool is Karel. This is a robot with just a few commands on a chessboard. You can create new commands with loops, if/else etc. Very basic but interesting to learn:

    http://en.wikipedia.org/wiki/Karel_(programming_language)

    It is open source and free to download at SourceForge:

    http://sourceforge.net/projects/xkarel/files/xkarel/2.0.0b5/setupxKarel-2.0.0b5.exe/download?use_mirror=hivelocity&download=

    • Zdenek Zraly

      From posts below I found that RoboMind has the same idea but new look and feel:

      http://www.robomind.net

      Highly recommended

  • Roberto Avilés A.

    I will appreciate to know others opinion about ROBOTC, a programming language strongly based on C and developed by Carnegie Mellon Robotics Academy. Wit ROBOTC it is possible to program arduino boards, Mindstorms RCX and NXT, VEX cortex and pic, Tetrix and matrix. To me it looks great to learn RobotC since in fact you are learning C, in a GUI environment but with all the advantages of C.

    I just wonder why the author does not makes a mention to ROBOTC. Also, Robotc developed Robot Virtual Worlds, based on the use of ALICE. So, once again, I will appreciate to hear others opinions about ROBOTC. Why scratch (well, is free) and not robotC (with all the advantages of C.)????

  • lucio

    http://turtleacademy.com/ was developed especially for kids

    • Turtle fun

      It’s a really great website for kids .
      just try it on mine , and it’s really works

  • Mary Rubio

    just before I looked at the bank draft saying $5389, I didn’t believe that my mom in-law woz like they say actualie taking home money in their spare time from their laptop.. there uncles cousin has been doing this for less than a year and as of now cleared the debts on their home and got a gorgeous Aston Martin DB5. we looked here, jump15.comCHECK IT OUT

  • Margaret Mills

    upto I looked at the bank draft saying $9406, I have faith that…my… brothers friend had been trully bringing home money in their spare time on there computar.. there sisters roommate has been doing this less than twenty months and just now took care of the dept on their home and bourt BMW. I went here, jump15.comCHECK IT OUT

  • notchent

    REBOL is hardly known, but it’s fantastic for getting kids interested. I wrote an introduction at http://easiestprogramminglanguage.com

    • Darlene S. Esser

      just before I saw the receipt for $9852, I didnt believe
      that…my… friends brother woz like truly bringing in money part-time from
      their laptop.. there aunts neighbour had bean doing this for only about
      eighteen months and a short time ago paid for the loans on their apartment and
      got a brand new BMW 5-series. I went here, jump15.comCHECK IT OUT

  • http://www.facebook.com/kellydrill Kelly Drill

    We’re actually working on a new project to help young kids learn the logic/problem-solving skills they’ll need to eventually learn coding. It’s called BotLogic.us. Kids program a robot to navigate through progressively challenging mazes and can even go head-to-head with friends in programming tournaments. You can check it out here: http://botlogic.us

  • Paula M. Wells

    Paige. I can see what your saying… Randall`s st0ry is
    amazing… I just received a brand new Chrysler after having earned $7296
    this-past/month and over 10 grand last month. it’s definitly the nicest job Ive
    ever had. I actually started 4 months ago and straight away startad making at
    least $84 per-hour. I went to this site, jump15.comCHECK IT OUT

  • MaryBatiste

    If you think Pamela`s story is unbelievable,, 4 weeks ago my
    uncles step-son basically also recieved a check for $4407 grafting 20 hour’s a
    week at home and there buddy’s mother`s neighbour was doing this for 5 months
    and made over $4407 in their spare time from there computer. the steps on this
    web-site… jump15.comCHECK IT OUT

  • gabriel

    Scratch seems great! Very nice info here, thank you!

  • Arun Gupta

    I recently conducted a Minecraft workshop at my home and taught Java to 10 year olds. The kids loved and had lots of fun, read the complete report and instructions at:

    https://blogs.oracle.com/arungupta/entry/introducing_kids_to_java_programming

  • Tapp

    First I want to say this sorry for this being long and I am honest (that I have sources) and that I use Mac and each people has different interest. He can like numbers (binary) coding (Low-Level Programming), while others like letters (High-Level Programming = HLP) and if a child/person likes HLP, it will go to what type of HLP. (Compiler,Object-oriented, etc.)

    I am a child. (Some months till teen.) I am learning to program. The first coding (not programming) language I studied was HTML (1,2,3), then a little of CSS. (4) After that I tried KidsRuby, an app which has/a successor of Hackety Hack. I am now studying something (I keep shifting. 4) and wants to create a programming language. (Link – https://github.com/Afront/util)

    My apps while trying to learn from before to present:

    Recent to Oldest

    ((X) – Not advised for learning)

    (X)NetBeans IDE (GreenFoot is better if learning, but for creating games.)
    (X)XCode (Best paired with a gaming interface? like Kobol2D)

    KidsRuby (I can’t just get pass it)

    w3schools.com (Only Web and Database, which people don’t reconsider as programming languages)

    codeacademy.com

    GreenFoot is advisable

    I saw some sites saying robot programming, Lego Mindstorms, the LightBox/CargoBox, one section of KidsRuby is about programming Sphero (gosphero.com) with ruby and there are also 2nd grade children who learned Logo. (Link – http://mckoss.com/logo/) There is also books that a child can read based on python (1) and he, the one who suggest had a 13-son who learned Java. (1) That guy also engage his 10 year old to use BASIC Stamp (Isn’t QBASIC easier?) (1)

    (1 – http://marshallbrain.com/kids-programming.htm)

    X-ed out/Bonus, but not worthy to go to the up-list.

    X GreenFoot (1) (Advisable for learning)

    X Game Salad (Not coding, but did use it.)

    1- I tried GreenFoot(, but not yet tried FULLY) because at that time, while finding software to gaming, I don’t know how GreenFoot work at first, but I wasn’t able to use this know because I am using NetBeans for IDE

    2- If you don’t count BBCode as a coding language. I knew Terminal, not the script language. (,but now studying it. cd 3 :D)

    3- I learned through w3schools.com! This is one of the easiest coding language to learn. (One of the easiest programming language – (Not Java and C,C+ and etc. of course) Probably the one with (1) Easy Words to learn, (2) Has tools kids to understand and (3) Something that is easily put and easy to compile…Ruby,etc. Scripts is as easy as Ruby,etc. That’s why there is an interactive ruby shell.

    4- Like I said, I use Mac. There are only little programs to use the language and since this is Mac and Coding, Mac (UNIX) + Coding = Linux(/UNIX) and UNIX programs = Compiler (Terminal) + Items. = Program that goes no where. I shift Java to C to Assembly to Machine Code to Assembly to Shell. Low-level languages interests me.

  • mary

    Sienna. you think Shirley`s remark is super, I just got Ford
    since getting a check for $5593 this munth and-over, 10/k last-munth. without a
    doubt its the most comfortable work Ive had. I actually started nine months/ago
    and immediately started making a nice over $86, per-hr. I follow the details
    here,, fab22.comCHECK IT OUT

  • http://www.facebook.com/kellydrill Kelly Drill

    Our dev team was looking for a way to make it more fun for kids to learn “pre-programming,” and we came up with a game that helps them develop the logic skills they’ll need to learn before coding. The game (still in development) involves “programming” a robot to navigate through grid-based courses that get harder as they go. As they get better, players can challenge their friends. We’re excited about the response we’re getting so far – parents seem to love the idea and we have over 100 kids signed up to beta test! You can check it out at http://botlogic.us