Learn a Coding Language

Code Avengers
In-browser exercises and courses in JavaScript, HTML5, and CSS3.

Code Combat
In-browser, multiplayer live coding game set in a fantasy world. You play as a wizard who navigates obstacles and battles enemies using Javascript. 

Codecademy
Full courses in HTML, CSS, JavaScript, Python, Ruby, and PHP. Exercises are done in browser and checked automatically for accuracy. 

Coursera
Beginning courses in JavaScript, Python, SQL and general computer science. Also offers higher level logic courses in topics like Data Science, Artificial Intelligence, and Computational Neuroscience.

edX
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. 

Hackety Hack
An introductory Ruby environment for Mac, Windows, and Linux. Its website includes a few early lessons in Ruby. 

HTML5 Rocks
Online resource with tutorials, demos, and sample work in HTML5.

JS Dares
A collection of JavaScript lessons that go from teaching a student about basic syntax to helping them recreate working games. Browser-based and completely free. 

Khan Academy
Users watch videos, do exercises and play with sample code to learn JavaScript programming basics. Completely browser-based with an interactive player/editor. 

KidsRuby
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.

LearnStreet
Courses in JavaScript, Ruby, Python, HTML, and CSS where students can practice coding in their browsers. 

MIT OpenCourseWare
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. 

Mozilla Thimble
Sample websites with annotations guiding students to change variables to impact aesthetics and usability.

Programmr
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.  

Stack Overflow
Massive repository of coding information and help available online. 

The Puzzle School

JavaScript and HTML training in the context of puzzles. 

Turtle Academy
A collection of short, free lessons using the Logo programming language. Students will learn the basics of programming logic in this browser-based program. 

Udacity
Developed at Stanford, this MOOC covers many different coding topics including Java, HTML5, Python, as well as logic classes in AI and debugging. 

W3 Schools
Extensive tutorials in web development languages like HTML, CSS, JavaScript, XML, PHP, and SQL. 

Add your reaction Share

Learn to Code With Visual Blocks

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.  

Hopscotch
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.  

Pluralsight
Detailed video tutorials for Scratch and App Inventor for Android. Advanced students can check out tutorials on C#. 

Scratch 2.0
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!
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. 

Stencyl
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.

Tynker
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.

1 reaction Share

Learn Coding Logic

Alice
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.

BotLogic
Free game that introduces basic programming concepts by asking players to navigate a series of challenging mazes. 

CargoBot
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. 

CS Unplugged
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. 

Hakitzu
This iPad game teaches the fundamentals of JavaScript by allowing players to program robots to compete in arena fights. Requires no prior knowledge of coding to play.

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
Kodable is a free educational iPad game offering a kid-friendly introduction to programming concepts and problem solving. For kids ages 5 and up. 

Kodu
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. 

Robot Turtles
Board game that teaches programming logic to young children. 

RoboLogic
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. 

Add your reaction Share

Apps for Teaching Kids Coding (Ages 5-7)

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.

 

 

Lightbot Jr 4+ Coding Puzzles
Colorful, engaging intro to programming for young kids.  Lightbot Jr 4+ Coding Puzzles presents kids with a cute little robot, small levels comprised of blocks, and a handful of drag-and-drop programming icons. Move, turn, light, and jump comprise the core of Lightbot Jr's available commands. And when the player places these command tiles in a row, LightBot Jr moves merrily through the level, lighting up designated tiles. The player must light up the correct tiles to move on to the next level.

Devices: iPhone, iPod Touch, iPad, Android, Fire phone, Kindle Fire

 

 

Kodable Pro
Fun programming logic for kids, great resources for parents.  Teach your students the basics of computer programming in as little as 20 minutes a week with an engaging classroom curriculum. Pilot Kodable for free!

 Devices: iPad

 

 

 Daisy the Dinosaur
From the makers of Hopscotch, Daisy targets the youngest coders. The interface is similar to Hopscotch but much simpler. There is only a dinosaur to move and only basic functions to use, but for your younger students, this is an excellent introduction to programming.
 Devices: iPad

 

 

Tynker - Learn programming with visual code blocks
Although Tynker is relatively new, we definitely count it as one of our favorite coding apps. The interface looks similar to Scratch. But while Scratch was designed to program, Tynker was built to teach programming. The app features starter lesson plans, classroom management tools, and an online showcase of student-created programs. Lessons are self-paced and simple for students to follow without assistance.

Devices: iPad, Android  

 

 

ScratchJr
Tool helps kids program their first multimedia project.  Designed by MIT students and staff in 2003, Scratch is one of the first programming languages.  Students use a visual programming language made up of bricks that they drag to the workspace to animate sprites. Various types of bricks trigger loops, create variables, initiate interactivity, play sounds, and more. Teaching guides, communities and other resources available on the website will help instructors get started. You don't have to be a programming expert to introduce Scratch -- we learned right along with the students!
 Devices: iPad
Add your reaction Share

Free Coding Resources for Kids

Game Development

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
Minecraft API
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.

General

36 Free Kids’ Programming Resources
Adafruit – Learn & Buy Raspberry Pi, Arduino, etc.
Arduino
Code.org Studio
Code School – learn Ruby, Javascript, Git, iOS
Codeacademy
CodeHS
CoderDojo Tutorial List
codeSpark
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)
LEGO Mindstorms
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
Raspberry Pi.org
Terrapin Logo
Treehouse
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

Code.org – What Most Schools Don’t Teach

iPad Apps to Teach Coding

Cargo-Bot
Circuit Coder
CodeQuest – from Codarica – kids build their first website with HTML and CSS
codeSpark
Hopscotch
Kodable
Kodable Class
Move the Turtle
Robo Logic 2 HD
Scratch Jr

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
PhoneGap – create an app using HTML and Javascript
Stanford Fall 2011 iPhone and iPad Development Course

Programming Tutorials

Java

Java – Learn Java with Greenfoot
Java – Teaching Kids Programming – Java

Javascript

Javascript – Code Avengers – Learn Javascript

Javascript – Code Monster
Javascript Tutorial – W3Schools.com

jQuery

jQuery Tutorial – W3Schools.com

PHP

PHP for Kids
PHP – Lynda.com Teach Kids Programming PHP (must have account

Python

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

Ruby

Ruby – Kids Ruby
Ruby – Ruby for Kids
Ruby – Learn to Program Ruby
Ruby – RubyKin – Teach Kids Ruby
Ruby – Try Ruby Ruby – Railsbridge

Visual Programming Environments

Alice – educational software that teaches kid programming in a 3D environment
Blockly – a visual programming language from Google
Blockly Games
Kodu
Scratch
Scratch – Harvard Curriculum Guide
Scratch – Learn Scratch
Scratch – Scratch Ed
PythonTurtle
Tynker

Web Application Frameworks

Django – The Django Book
Node.js – The Node Beginner Book
Ruby on Rails – Rails for Zombies

Web Development

Codecademy – learn basic web development, CSS, Javascript
CSS Tutorial – W3Schools.com
Twitter Bootstrap
W3 Schools
W3 Schools Color Names

Web Development/Programming Tools & Editors

Codepen.io
JSBin HTML/Javascript Editor – an HTML editor you can use in your browser and see instant results
JSFiddle HTML Editor – an HTML editor you can use in your browser and see instant results

Add your reaction Share

Intro to Programming with Scratch

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. 

Read more
Add your reaction Share