12 Resources for Teaching Computer Science and Programming in K-12

by Matt

Teaching Computer Science (CS) is one way to help students of all ages to learn more about systems thinking, creative problem solving, design, art and aesthetics, writing and storytelling, and other 21st century skills. This article includes 12 resources (curriculum guides, lesson plans, student activities and games, programming apps and tools) to help any K-12 teacher get started teaching computer science concepts and programming to their students.

K-12 Computer Science Curriculum and Resources

Below are resources to help get you started with teaching computer science to your students.

A Model Curriculum for K–12 Computer Science

The Association for Computing Machinery (ACM) put together a model curriculum for teaching computer science in K-12. According to the ACM, “Computer science (CS) is the study of computers and algorithmic processes1, including their principles, their hardware and software designs, their applications, and their impact on society.”

This report proposes a model curriculum that can be used to integrate computer science fluency and competency throughout primary and secondary schools, both in the United States and throughout the world. It is written in response to the pressing need to provide academic coherence to the rapid growth of computing and technology in the modern world, alongside the need for an educated public that can utilize that technology most effectively to the benefit of humankind.

Computing and Programming Experience (CAPE)

We now face a new and deep Digital Divide, where students know how to consume technology while others are creating the technologies that will shape our future. It is time to bridge this divide by supporting access to curriculum and educational technology for all students, leveling the playing field so that students and educators alike have the opportunity to shape the worlds of their future. The creators of tomorrow’s innovations are everywhere, ready to be engaged and inspired. This reality led us to create Google’s Computing and Programming Experience (CAPE), a multi-week summer program located in Google offices across the US, designed to inspire excitement about computer science for incoming 9th grade (graduating 8th grade) students.

Exploring Computational Thinking

Computational thinking (CT) involves a set of problem-solving skills and techniques that software engineers use to write programs that underlie the computer applications you use such as search, email, and maps. Here are specific techniques. There is a hypothesis that CT is a critical skill for 21st-century students. The hypothesis states that not only is this skill critical for our students and ultimately our population to use computing and technology effectively, CT also supports and enhances the learning of more traditional curriculum. In the 21st century, our students need to develop CT skills, along with “reading, writing and arithmetic.”

CS Unplugged: Computer Science… without a Computer!

CS Unplugged is a collection of free learning activities that teach Computer Science through engaging games and puzzles that use cards, string, crayons and lots of running around. The activities introduce students to underlying concepts such as binary numbers, algorithms and data compression, separated from the distractions and technical details we usually see with computers. CS Unplugged is suitable for people of all ages, from elementary school to seniors, and from many countries and backgrounds.

Apps and Tools for Programming in K-12

Below are several apps and tools that students in elementary, middle, or high school could use to program apps, games, simulations, and so on. Most of the apps work on an iPad or Android device and are free or inexpensive ways to get kids excited about programming.


Scratch is a programming language that makes it easy to create interactive art, stories, simulations, and games – and share those creations online. ScratchEd is an online community where Scratch educators:

  • Share Stories
  • Exchange Resources
  • Ask Questions
  • Find People

Bootstrap World

Bootstrap World is a FREE curriculum for students ages 12-16, which teaches them to program their own videogames using purely algebraic and geometric concepts. Our mission is to use students’ excitement and confidence around gaming to directly apply algebra to create something cool.

App Inventor

App Inventor is a great tool to teach programming to high school students. Google Intern, Michelle Hutton, created the following 6 week curriculum. This curriculum is a project based curriculum that allows students to explore the world of computer science through the creation of smartphone apps.

Gamestar Mechanic

Gamestar Mechanic is a game and online community that teaches kids how to design their own games! Designing games builds:

  • Systems Thinking,
  • 21st Century Skills,
  • Creative Problem Solving,
  • Art and Aesthetics,
  • Writing and Storytelling,
  • and creates a motivation for STEM learning.


MicroWorlds EX is an environment in which students can explore and test their ideas as they create science simulations, mathematical experiments, interactive multimedia stories, whatever they can imagine!


With RunRev, you can create Apps for the iPhone, iPad, Android Phones, Android Tablets and Desktops. You can create any type of App you like – for example, a game, simulation, utility, business or social App. Our English-like language is designed to be as close as possible to the way you speak. This means students can quickly understand the programs they write.


Codea for iPad lets you create games and simulations — or just about any visual idea you have. Turn your thoughts into interactive creations that make use of iPad features like Multi-Touch and the accelerometer.
YouTube Preview Image

Sketch Nation

Use Sketch Nation to create your own games simply by drawing on a piece of paper and taking a picture of your drawing with the iPhone camera.
YouTube Preview Image

Leave a Comment

Previous post: