Covers languages like Python, Ruby, C++ as well as higher level classes in Artificial Intelligence and Computer Graphics. Classes are taught through video, PDFs, and tutorials.
An introductory Ruby environment for Mac, Windows, and Linux. Its website includes a few early lessons in Ruby.
Online resource with tutorials, demos, and sample work in HTML5.
This free, downloadable program teaches kids Ruby and can be used completely offline.
Learn Code the Hard Way
As its name suggests, this set of courses is for self-motivated learners. Html lessons walk complete novice coders through their languages of choice: Ruby, C, SQL, Regex, or CLI.
This initiative by MIT puts all of the course materials from the university's undergraduate and graduate courses online. This includes syllabi, reading lists, and sometimes practice questions and video lectures.
Sample websites with annotations guiding students to change variables to impact aesthetics and usability.
Offers a full course in Java through video and interactive code. Also has extensive sample code from many other formal languages like C++, PHP, Ruby, Python, Android, and iOS.
Massive repository of coding information and help available online.
A collection of short, free lessons using the Logo programming language. Students will learn the basics of programming logic in this browser-based program.
Developed at Stanford, this MOOC covers many different coding topics including Java, HTML5, Python, as well as logic classes in AI and debugging.
App Inventor for Android
This MIT-created platform uses visual blocks to allow students to create apps that can be exported to Android devices. Large library of tutorials that get as advanced as SMS texting and GPS. Requires a Google Account to use.
This free iPad app uses a visual programming language similar to Scratch to help kids learn the basics of programming logic, such as sequencing, loops, variables, functions and conditionals.
Detailed video tutorials for Scratch and App Inventor for Android. Advanced students can check out tutorials on C#.
Created at MIT, Scratch popularized visual blocks as a way of learning programming. But don't let the easy interface and cute graphics fool you--users can make and share anything from simple animations to fully-fledged games.
SNAP!'s visual blocks support higher level computer science concepts like recursion, procedures, and continuations, making it appropriate for even college level intro classes. While it doesn't have the same social functions of Scratch, SNAP! can work with the Nintendo Wiimote and LEGO Mindstorms NXT. Comes with a manual and sample projects and can use much of Scratch's documentation as well.
Game creation software that allows users to make playable apps for iOS, Android, HTML5, Window, and Mac. The game logic is programmed with visual blocks. The official site has forums and a crash course to get you started.
Inspired by Scratch, Tynker has a dashboard to allow teachers to create a more structured way of teaching code with visual blocks. Includes assessment, classroom management, lesson plans, and a built in tutor.
Free downloadable software that teaches computer programming in a 3-D environment. Kids can create animation, games or videos to share on the web. There's also quite a collection of resources for teachers.
Free game that introduces basic programming concepts by asking players to navigate a series of challenging mazes.
Players learn coding logic in this iPad app by using a string of commands to organize crates with a robotic arm. As levels get more complex, the user must create functions and optimize his limited number of moves to meet the objectives.
Here's a nifty trick--learning computer science without a computer! This series of logic exercises uses cups, ping pong balls and post-it notes to teach students the logic behind coding. The site also has videos of each exercise being used in a class.
Karel the Robot
Self-paced online programming course that's currently used in schools, programming clubs and at homes. The course includes an optional algorithmic thinking pre- and post-test.
Kodable is a free educational iPad game offering a kid-friendly introduction to programming concepts and problem solving. For kids ages 5 and up.
Created by Microsoft, this program uses a visual language to create games. While the PC version is free, Xbox 360 users can pick up a copy for $5.
Move the Turtle
Based on the Logo programming language, players learn coding logic by guiding a turtle through obstacles to a destination. Players can also use its composer function to create intricate designs.
Board game that teaches programming logic to young children.
Players program a robot's movements on a grid and get it to light up specific squares before they run out of moves. Teaches concepts of functions and nesting.
Learning computer programming can help kids develop problem-solving and critical-thinking skills. It also encourages them to be not only consumers of technology but also creators.
We have listed all the coding apps that are appropriate for young learners.
GameMaker – software to make games – GameMaker Lite is free
GameSalad – can produce iPhone, web browser-based content in HTML 5, and Android applications.
GameSalad Getting Started Cookbook
GameSalad – Overview of GameSalad Basics (video)
GameSalad – Welcome to GameSalad tutorial video
Unity 3D (has downloadable free version)
Unity 3D – Fungus – Fungus is an extension for Unity 3D for making fun story-based games
Unity 3D – Learn Unity
Unity 3D Student – learn video game development through bitesize modules combined with challenges
Stencyl – Inspired by Scratch's snapping blocks system, this software lets users create simple games for iOS, Android, Flash, Windows, Linux and Mac.
36 Free Kids’ Programming Resources
Adafruit – Learn & Buy Raspberry Pi, Arduino, etc.
CoderDojo Tutorial List
Khan Academy – Computer Science – beginner, visual, fun!
Khan Academy – Computer Science – advanced
Kithub – hands-on kits for young innovators sent monthly
Learn to Program (book)
Light-Bot – game that teaches kids basic programming concepts
Made With Code – Projects (Google) – Coding for Girls
Popcorn (from Mozilla, lets kids integrate video and code)
Raspberry Pi – Getting Started with Raspberry Pi
Webmaker Teaching Resources
Young Programmers’ Podcast – video podcast for computer programmers in grades 3 and up. Learn about Scratch, Alice, Python, Pygame, etc.
Inspiring Videos – Learn to Code
iPad Apps to Teach Coding
Mobile App Development
Android – A Beginner’s Guide – basic Android app programming
ARIS – user-friendly, open source platform for creating and playing mobile games, tours, and interactive stories
iOS 8 and Swift – How to Make a “Freaking” iPhone App
iOS – Lynda.com Teach Kids Programming iOS (must have account)
MIT App Inventor
Stanford Fall 2011 iPhone and iPad Development Course
Python – How to Think Like a Computer Scientist – Learning With Python
Python – Invent with Python
Python – Program Arcade Games with Python and Pygame
Python – PyCharm – a free, open source, Python IDE – both take and create courses with info, tasks, code, hints, tests for completion, and progress tracking. JetBrains also set up a public git repository where educators can share courses they create.
Python – The Python Game Book
Visual Programming Environments
Alice – educational software that teaches kid programming in a 3D environment
Blockly – a visual programming language from Google
Scratch – Harvard Curriculum Guide
Scratch – Learn Scratch
Scratch – Scratch Ed
Web Application Frameworks
Web Development/Programming Tools & Editors
Scratch – Designed by MIT students and aimed at children ages 8 to 16, this easy-to-use programming language lets kids build almost anything they can dream up. No crazy lines of code here. Instead you arrange and snap together Scratch blocks as if they were virtual Legos. But it's more than just a coding guide, it's a vibrant online community of programmers who swap ideas and inspiration.
Scratch is a programming language that makes it easy to create interactive art, stories, simulations, and games – and share those creations online.
According to Scratch developers, Scratch supports the nine types of 21st century learning skills identified by the Partnership for the 21st Century (http://www.p21.org) ;these skills include: thinking creatively, communicating clearly, analyzing systematically, collaborating effectively, designing iteratively, and learning continuously.(Rusk,Resnick,& Maloney,n.d.).
The Scratch programming languages was designed for educational use, to support the constructionist approach to learning which encourages creative problem-solving. Students will be problem solving as soon as they load up Scratch.
Although, Scratch programming facilitates higher order thinking such as problem solving skills, teachers can provide instructional support to students, to help them think through difficult programming problems. This can involve having students break down problems into smaller sub-components through the creation of algorithms, and exploring multiple solutions to problems.
Resources for Learning Scratch
Porting Scratch Projects: Instructions for turning Scratch apps into standalone apps for Mac and Windows.
Michael’s Exercises: An archive of notes for the exercises mentor Michael Katz has presented at CoderDojo.
Learn Scratch: 64 free lessons in Scratch.
Learning How to Program with Scratch: Introduces computing and Computer Science to a younger audience using the Scratch programming environment.