Resources: Programming Languages
Logo, Scratch, other block-based languages, Python, Processing, Minecraft & programmable worlds, app and game makers. See also Teaching Programming.
Logo
- MicroWorlds Jr. and MicroWorlds EX – Modern versions of the Logo programming language, with full multimedia capabilities.
- StarLogo TNG – StarLogoTNG (The Next Generation) is a downloadable programming environment that lets students and teachers create 3D games and simulations of complex systems.
- StarLogo Nova – StarLogo Nova builds on StarLogo TNG and brings it to the browser.
- NetLogo – NetLogo focuses on mathematical explorations and scientific simulations that may be run on computers across the globe.
Scratch
- Scratch – Free block-based programming language for simple storytelling and games. Works in a browser or offline. Materials and videos for educators and classrooms.
- Scratch Jr. – A free version of Scratch for early learners (age 5-7) that runs on tablets and Chromebooks.
- ScratchED web site – An online community and resources for educators who teach with Scratch.
- LEGO WeDo programming in Scratch – Scratch also may be used to program LEGO’s early childhood robotics set called WeDo. Plug the LEGO WeDo 2.0 into your computer and new blocks appear for robotics control in Scratch.
- Cognimates Platform for AI education – Explore Artificial Intelligence (AI) by programming in Scratch and controlling robots.
Scratch books
- Super Scratch Programming Adventure!: Learn to Program By Making Cool Games (Version 2) – A full-color cartoon style project book for learning Scratch programming.
- Scratch For Kids For Dummies – A terrific project-based approach to learning Scratch by Derek Breen.
- Code Your Own Games! 20 Games to Create with Scratch – A lovely 80-page spiralbound book by Max Wainewright with gorgeous graphics and a straightforward approach to helping kids learn to program in Scratch by creating twenty different game projects sequenced by degree of difficulty.
- Advanced Scratch Programming: Learn to Design Programs for Challenging Games, Puzzles, and Animations – For students who already know Scratch, this book by Abhay B Joshi introduces more advanced concepts and a deliberate design approach through projects. There is a free supplement online that aligns Scratch with formal Computer Science concepts.
Other block-based languages
- Snap! – Scratch with first-class objects added to make more complex programming projects possible.
- Learn CS Concepts with Snap! – Learn to create games and animations in Snap! by Abhay B. Joshi.
- Turtle Art – A simple yet elegant variation of Logo with an iconic interface intended to create beautiful images.
- Turtle Blocks – A variation of Turtle Art developed for the One Laptop Per Child (OLPC) project that runs on Chromebooks.
- Blockly – A free visual block programming language project of Google. It runs in most browsers and a subset of it runs on Android and iOS. It can also convert code to a variety of text-based languages, including JavaScript and Python.
- Tickle – An iOS block-based programming environment with a lot of Scratch functionality that can control many popular Bluetooth robotics toys and drones. The basic app is free, but you need to pay a few dollars to add functionality for some devices.
- Droneblocks – A free block-based programming environment for iOS, Android, and Chrome that allows users to program a variety of popular DJI drones from toys to prosumer models.
- TaleBlazer – A free block-based programming language for creating location-based augmented reality games.
- GP – GP is a free, “general purpose” block-based programming language that runs on most computers and web browsers. GP draws on ideas from Scratch, Squeak, and Snap! and can be used for simulations, media manipulation, cloud-computing, and teaching computer science.
- Guide to Block-based Programming – Online guide to choosing the best block-based programming language for your classroom.
Python
- Python – Python is an easy to learn, flexible programming language. Find resources, documentation, stories, and community on the website.
- Python for Kids: A Playful Introduction to Programming – A good guide for getting started with Python by Jason R. Briggs.
- Introduction to Python – Free e-book by Mark Clarkson
- Invent Your Own Computer Games with Python – First in a series of Python books by Al Sweigart. Most are available online for free.
Processing
- Processing – A powerful graphic programming language. The site offers tutorials, resources, books, and project examples.
- Open Processing – A community sharing site for Processing. Free for limited use, but there are paid levels for educators to coordinate class work.
- P5.js – PS.js is a JavaScript-based editor that allows you to program in Processing directly in any browser on many devices.
- Learning Processing: A Beginner’s Guide to Programming Images, Animation, and Interaction – An excellent beginner’s guide to using Processing by Daniel Shifman.
- Learning Processing – Online resources, videos, and sample code for the book Learning Processing by Daniel Shiffman.
- The SparkFun Guide to Processing: Create Interactive Art with Code – By Derek Runberg. Learn about Processing through projects. Some of the projects include physical elements such as Makey Makey and Arduino.
App and game makers
- MIT App Inventor – Create apps and games for Android devices with this visual programming environment. Code samples, tutorials, and extensive educator resources are on the MIT website.
- Game Maker Studio – A commercial product used in many schools (mostly high schools) to teach programming through game design. It does have a free trial version that is usable, although the full versions are very reasonable. The website offers tutorials, sample games, and support.
- Game Salad Creator – Drag and drop game creation tool
- Gamestar Mechanic – A commercial product designed to teach programming through game development. It offers education pricing, lessons, tutorials, and an educator community.
- Kodu – Visual programming tool made for creating PC or Xbox games. Supported by Microsoft.
Other languages and programmable worlds
- Wolfram Language – Comprehensive programming language with built-in computational intelligence.
- Minecraft – 3D building sandbox popular with children worldwide.
- Swift Playgrounds – An iPad-based programming environment capable of creating iOS apps, programming the LEGO EV3 robotics system, and other devices.
- Squeak – Squeak is the vehicle for a wide range of projects including multimedia applications, educational platforms, and commercial web application development. Scratch itself was created in Squeak.
- Small BASIC – Microsoft-supported free BASIC and tutorials. (Windows)
LiveCode – A “HyperCard on steroids” cross platform development engine. There is a limited free version.
AgentSheets & AgentCubes – AgentSheets is part of the Scalable Game Design project to teach young people around the world about computer science and science. AgentCubes is a 3D version and is available in a browser.