Ages: Best with grades 2 and up. For middle/high school, useful to quickly demonstrate core concepts in a visual, concrete way before transitioning to other object-oriented languages like Java and Python.
- Creative, open-ended exploration and project design; there are a few tutorials, but the point is to learn by doing
- Beginner-friendly, drag and drop, block-based interface eliminates syntax errors and other common obstacles to learning how to program
For first-time students, we usually recommend following one of the step-by-step tutorials accessible through “Tips” in the editor menu.
- Exploring other projects on the website!
- Scratch cards (printable): scratch.mit.edu/info/cards
- Starter projects: scratch.mit.edu/starter_projects
- edX Programming in Scratch: edx.org/course/programming-scratch-harveymuddx-cs002x-1
- Scratch wiki: wiki.scratch.mit.edu/wiki/Scratch_Wiki
- CS First (club format curriculum by Google): cs-first.com/create
Ages: Best with grades 1 and up, with distinct content available for different age groups.
- Learning basic programming logic by completing puzzle-like challenges for each level
- Linear and self-contained course progression, though you can jump around a bit and create and share your own projects using the Blockly language (similar to Scratch)
- Plenty of official resources, including offline classroom activities: http://code.org/educate
- Constantly growing, so check the site
khanacademy.org/computing/computer-programming (Intro to JS and others, but some only for advanced coders)
Ages: Best with grades 5 and up.
- A slightly more traditional course that covers material slowly but in more depth than most websites
- Students who have the attention span, self-discipline, and effective learning habits to make the most out of the interspersed videos, programming exercises, and peer-evaluated challenges
Ages: Best with grades 6 and up. Features automatic code completion/suggestions like a standard IDE, but typing proficiency is very helpful.
- Familiarizing beginners with basic object-oriented programming
- Supplemental practice that feels like playing a game
Other useful resources
Tools and other
- repl.it (online IDE supporting many languages): repl.it/languages
- Typing.com (online typing course and games): typing.com
- CoderDojo (free workshops): coderdojosv.org
For middle school and older students