ProgramsbreadcrumbExploring Computational Thinking breadcrumbOverview

Exploring Computational Thinking

Exploring Computational Thinking (ECT) is a curated collection of lesson plans, videos, and other resources on computational thinking (CT). This site was created to provide a better understanding of CT for educators and administrators, and to support those who want to integrate CT into their own classroom content, teaching practice, and learning.

ECT includes:

Computational thinking (CT) is a problem solving process that includes a number of characteristics, such as logically ordering and analyzing data and creating solutions using a series of ordered steps (or algorithms), and dispositions, such as the ability to confidently deal with complexity and open-ended problems. CT is essential to the development of computer applications, but it can also be used to support problem solving across all disciplines, including math, science, and the humanities. Students who learn CT across the curriculum can begin to see a relationship between subjects as well as between school and life outside of the classroom.

CT @ Google

See how Google uses CT and the 7 Big Ideas from the CS Principles course to do some amazing things:

CT in the classroom

Get started now with Computational Thinking for Educators, an online course where you will learn what CT is and how it can be integrated into a variety of subject areas. Learn at your own pace by exploring examples of CT in a variety of subject areas, experimenting with examples of CT-integrated activities, and creating a plan to incorporate CT into your classroom.

CT Overview

Computational Thinking (CT) is a problem solving process that includes a number of characteristics and dispositions. CT is essential to the development of computer applications, but it can also be used to support problem solving across all disciplines, including math, science, and the humanities. Students who learn CT across the curriculum can begin to see a relationship between subjects as well as between school and life outside of the classroom.

CT involves a number of skills, including:

  • Formulating problems in a way that enables us to use a computer and other tools to help solve them
  • Logically organizing and analyzing data
  • Representing data through abstractions such as models and simulations
  • Automating solutions through algorithmic thinking (a series of ordered steps)
  • Identifying, analyzing, and implementing possible solutions with the goal of achieving the most efficient and effective combination of steps and resources
  • Generalizing and transferring this problem solving process to a wide variety of problems

These skills are supported and enhanced by a number of dispositions or attitudes that include:

  • Confidence in dealing with complexity
  • Persistence in working with difficult problems
  • Tolerance for ambiguity
  • The ability to deal with open ended problems
  • The ability to communicate and work with others to achieve a common goal or solution

CT concepts are the mental processes (e.g. abstraction, algorithm design, decomposition, pattern recognition, etc) and tangible outcomes (e.g. automation, data representation, pattern generalization, etc) associated with solving problems in computing. These include and are defined as follows:

  • Abstraction: Identifying and extracting relevant information to define main idea(s)
  • Algorithm Design: Creating an ordered series of instructions for solving similar problems or for doing a task
  • Automation: Having computers or machines do repetitive tasks
  • Data Analysis: Making sense of data by finding patterns or developing insights
  • Data Collection: Gathering information
  • Data Representation: Depicting and organizing data in appropriate graphs, charts, words, or images
  • Decomposition: Breaking down data, processes, or problems into smaller, manageable parts
  • Parallelization: Simultaneous processing of smaller tasks from a larger task to more efficiently reach a common goal
  • Pattern Generalization: Creating models, rules, principles, or theories of observed patterns to test predicted outcomes
  • Pattern Recognition: Observing patterns, trends, and regularities in data
  • Simulation: Developing a model to imitate real-world processes

See our Computational Thinking Concepts Guide for a printable version of this list, along with teaching tips for each concept.

CT Materials

Incorporate computational thinking (CT) into your curriculum with these classroom-ready lesson plans, demonstrations, and programs (available in Python and Pencil Code). All materials in this collection have been aligned to both core subject* and CS** education standards. For more information on the connections between the CS education standards, see our International CS Education Standards crosswalk .

* See Common Core State Standards and Next Generation Science Standards
** See CSTA K–12 Computer Science Standards(United States), CAS: Primary School and Secondary School (United Kingdom), Australia, New Zealand, and Israel

  • Core Subject: All

    Subject: All

    Suggested Age: 8-18

    Type: Reference

    Computational Thinking Concepts Guide

    View the Reference

    This guide explores eleven terms and definitions for Computational Thinking (CT) concepts, enabling you to incorporate them into existing lesson plans, projects, and demonstrations. Teaching tips are included for each concept.

  • Core Subject: All

    Subject: All

    Suggested Age: 8-18

    Type: Reference

    Differentiation Strategies Guide

    View the Reference

    This guide contains codes for seven differentiation strategies and their meanings. Differentiation strategies are practiices for modifying content or instructional practices for a specific group of students.

  • Core Subject: All

    Subject: All

    Suggested Age: 8-18

    Type: Reference

    Student Engagement Strategies Guide

    View the Reference

    This guide describes ten strategies for capturing and maintaining student attention during classroom lessons. These student engagement strategies can be interspersed throughout existing lesson plans, projects and activities to increase student interest in any topic.

  • Core Subject: All

    Subject: All

    Suggested Age: 8-18

    Type: Reference

    Pseudocode Guide

    View the Reference

    This guide explores the benefits of using pseudocode, an informal, high-level description of the operating procedure of a computer program or other algorithm. With pseudocode, students can learn how plan out their programs even if they do not have access to a computer.

  • Core Subject: All

    Subject: All

    Suggested Age: 8-18

    Type: Reference

    Introduction to Python

    View the Reference

    This guide to the Python programming languages helps you explore sample topics including mathematical notation, testing for equality, writing Python programs, and conditional logic.

  • Core Subject: All

    Subject: All

    Suggested Age: 8-18

    Type: Reference

    Python Basics Quick Reference

    View the Reference

    This handy reference to programming in Python contains the most frequently used functions and syntax from the Exploring Computational Thinking lesson plans.

  • Core Subject: Computer Science

    Subject: Algorithms and Complexity

    Suggested Age: 14-18

    Type: Lesson

    Measuring the Complexity of a Function or Algorithm

    View the Lesson Plan

    This lesson plan explores problems that are easy for the computer to solve and problems that are difficult for the computer to solve. Students will learn how to measure the complexity of a function/algorithm and how this applies to real world situations.

  • Core Subject: Computer Science

    Subject: Algorithms and Complexity

    Suggested Age: 8-12

    Type: Lesson

    Ciphering a Sentence

    View the Lesson Plan

    This lesson plan enables student to develop a cipher, encode a sentence, and then develop an algorithm for encoding and decoding.

  • Core Subject: Computer Science

    Subject: Algorithms and Complexity

    Suggested Age: 11-18

    Type: Lesson

    Algorithmic Thinking

    View the Lesson Plan

    This lesson plan demonstrates that an algorithm is a precise, step-by-step set of instructions. Students will be asked to create oral algorithms to solve problems that other students can then use effectively.

  • Core Subject: Computer Science

    Subject: Algorithms and Complexity

    Suggested Age: 11-14

    Type: Lesson

    Divide and Conquer

    View the Lesson Plan

    This lesson plan requires students to use a ‘divide-and-conquer’ strategy to solve the mystery of the “stolen crystals”. Students will use decomposition to break the problem into smaller problems and algorithmic design to plan a solution strategy.

  • Core Subject: Computer Science

    Subject: Algorithms and Complexity

    Suggested Age: 11-14

    Type: Lesson

    Water Water Everywhere!

    View the Lesson Plan

    This lesson plan presents students with the challenging problem of measuring a volume of water using containers of the wrong measurement size. Students will decompose a complex problem into discrete steps, design an algorithm for solving the problem, and evaluate the solution efficiencies and optimization in a simulation.

  • Core Subject: Computer Science

    Subject: Data Analysis

    Suggested Age: 8-15

    Type: Lesson

    Describing an Everyday Object

    View the Lesson Plan

    This lesson plan explores the difficulty of providing detailed descriptions of objects without using their names. The CT concepts covered include abstraction, data representation and pattern recognition.

  • Core Subject: Computer Science

    Subject: Data Analysis

    Suggested Age: 8-12

    Type: Lesson

    Exploring Your Environment

    View the Lesson Plan

    This lesson plan enables students to gather data about a place or environment, organize that data in a table, and look for patterns. The CT concepts covered include data collection, data representation, data analysis, and decomposition.

  • Core Subject: Computer Science

    Subject: Logic

    Suggested Age: 9-12

    Type: Lesson

    Machine Testing

    View the Lesson Plan

    This lesson plan presents students with a mysterious new machine and requires them to develop testing strategies to determine its functionality.

  • Core Subject: Computer Science

    Subject: Logic

    Suggested Age: 8-12

    Type: Lesson

    Solving a Guessing Game with Data

    View the Lesson Plan

    This lesson plan requires students to develop two guessing games. The CT concepts covered include data collection, data representation, data analysis, and algorithm design.

  • Core Subject: Computer Science

    Subject: Software Development

    Suggested Age: 13-18

    Type: Lesson

    Functions and Algorithms

    View the Lesson Plan

    This lesson plan enables students to identify, evaluate, follow, and create functions, including functions that loop, functions that include decisions, and functions that include both. The activities increase in difficulty and students should continue as far as they are able to.

  • Core Subject: English-Language Arts

    Subject: Language

    Suggested Age: 8-12

    Type: Lesson

    Indefinite Articles

    View the Lesson Plan

    This lesson plan explores the usage of ‘a’ and ‘an’. Students will use pattern recognition and pattern generalization to determine when to use these indefintite articles and then develop a written algorithm that enables them to refine basic algorithms to handle exceptions to a generalized rule.

  • Core Subject: English-Language Arts

    Subject: Language

    Suggested Age: 8-10

    Type: Lesson

    Mystery Word X

    View the Lesson Plan

    This lesson plan enables students to analyze the classification of nouns and verbs. They begin by considering nouns as “a person, place, or thing” and verbs as “action words. They then run a group of words through a series of "tests" and identify instances in which this standard notion might lead to errors.

  • Core Subject: English-Language Arts

    Subject: Language

    Suggested Age: 8-10

    Type: Lesson

    Present Participle

    View the Lesson Plan

    This lesson plan enables students to investigate how the ending letters of a verb affect its spelling as tense changes. Students begin by simply adding ‘ing’ to the end of verbs. By identifying patterns in the spelling of verbs for which this works and those for which it does not, students build a stronger algorithm for conjugating verbs.

  • Core Subject: English-Language Arts

    Subject: Language

    Suggested Age: 11-18

    Type: Lesson

    Finding Patterns in Spelling Errors and History

    View the Lesson Plan

    This lesson plan helps students learn how to analyze spelling errors and large data sets to find patterns, develop abstractions, and discover how large amounts of data can reveal much about our society.

  • Core Subject: English-Language Arts

    Subject: Language

    Suggested Age: 10-14

    Type: Lesson

    Writing a Story

    View the Lesson Plan

    This lesson plan enables student to collaborate with others to build a story, identify any "bugs" in the story, and fix those bugs to give the story a more logical flow.

  • Core Subject: English-Language Arts

    Subject: Language

    Suggested Age: 8-18

    Type: Program

    Interactive Fiction

    View the Program - Pencil Code

    This Pencil Code program enables students to create a simple piece of interactive fiction with three "pages", with one function representing each page, and buttons to select the next action. Students can analyze, fill in, or change parts of the program.

  • Core Subject: English-Language Arts

    Subject: Language

    Suggested Age: 8-18

    Type: Program

    Interactive Mad Libs

    View the Program - Pencil Code

    This Pencil Code program creates an interactive Mad Libs game, prompting the user to enter several words matching requested parts of speech and then stitching them together in humorous sentences. Students can analyze, fill in, or change parts of the program.

  • Core Subject: English-Language Arts

    Subject: Language

    Suggested Age: 8-18

    Type: Program

    Interactive Mad Libs (Variation)

    View the Program - Pencil Code

    This Pencil Code program is a variation on the interactive Mad Libs program that automatically generates sentences by randomly choosing words. Students can analyze, fill in, or change parts of the program.

  • Core Subject: English-Language Arts

    Subject: Language

    Suggested Age: 8-18

    Type: Program

    Lady Macbeth Chat Bot

    View the Program - Pencil Code

    This Pencil Code program enables students to create an interactive chat bot that answers questions as if it were Lady Macbeth. Students can students analyze, fill in, or change parts of the program.

  • Core Subject: English-Language Arts

    Subject: Language

    Suggested Age: 8-18

    Type: Program

    Stroke Order of a Chinese Character

    View the Program - Pencil Code

    This Pencil Code program enables students to illustrate the stroke order of a chinese character by creating their own rendering of a Chinese character and drawing the strokes in the right order. Students can analyze, fill in, or change parts of the program.

  • Core Subject: History Social Science

    Subject: US History

    Suggested Age: 8-18

    Type: Program

    Map Visualization

    View the Program - Pencil Code

    This Pencil Code program provides a simple way to illustrate statistics geographically by drawing bubbles on a map. Students can analyze, fill in, or change parts of the program.

  • Core Subject: History Social Science

    Subject: US History

    Suggested Age: 8-18

    Type: Program

    Population Statistics

    View the Program - Pencil Code

    This Pencil Code program enables student to create a population graph from data in a spreadsheet. Students can analyze, fill in, or change parts of the program.

  • Core Subject: Mathematics

    Subject: Algebra

    Suggested Age: 12-15

    Type: Lesson

    Linear Association

    View the Lesson Plan

    This lesson plan uses CT concepts to explore the linear association between variables using two sets of data. Students will read data in a spreadsheet and in a graph and identify positive and negative linear association based on the shape of the graph.

  • Core Subject: Mathematics

    Subject: Algebra

    Suggested Age: 14-18

    Type: Lesson

    Degrees and Radians

    View the Lesson Plan

    This lesson plan uses basic patterns to label key points on the unit circle in terms of degrees, and then follows a similar process to relabel these points in terms of radians. Students can then develop an algorith to convert between degrees and radians based on the patterns they used to count their way around the unit circle.

  • Core Subject: Mathematics

    Subject: Algebra

    Suggested Age: 12-15

    Type: Lesson

    Slope and Y-Intercept

    View the Lesson Plan

    This lesson plan uses CT to explain the properties of slope and y-intercept. Students will learn how to calculate the slope and y-intercepts of a line that passes through a given set of points, and then use Python to solve various challenging slope and y-intercept exercises.

  • Core Subject: Mathematics

    Subject: Algebra

    Suggested Age: 13-16

    Type: Program

    Two Workers

    View the Program - Python

    This Python program helps students solve word problems with two people working together at different rates. Students can analyze, fill in parts of, or enhance the program to solve more sophisticated work problems.

  • Core Subject: Mathematics

    Subject: Algebra

    Suggested Age: 13-16

    Type: Program

    Three Workers

    View the Program - Python

    This Python program helps students solve word problems with three people working together at different rates. Students can analyze, fill in parts of, or enhance the program to solve more sophisticated problems.

  • Core Subject: Mathematics

    Subject: Algebra

    Suggested Age: 13-16

    Type: Program

    Savings and Interest

    View the Program - Python

    This Python program helps students understand how to calculate interest based on the savings amount, interest rate, and number of years of investing. Students can analyze, fill in parts of, or use the program to check results to exercises on which they are already working.

  • Core Subject: Mathematics

    Subject: Algebra

    Suggested Age: 13-16

    Type: Program

    Cereal

    View the Program - Python

    This Python program helps students conceptualize the following word problem: Charisse is buying two different types of cereals from the bulk bins at the store. Granola costs $2.29 per pound, and muesli costs $3.75 per pound. She has $7.00. Use x as the amount of granola and y as the amount of muesli. How many pounds of granola can she buy if she buys 1.5 pounds of muesli?

  • Core Subject: Mathematics

    Subject: Algebra

    Suggested Age: 13-16

    Type: Program

    DVD Rentals

    View the Program - Python

    This Python program helps students conceptualize the following word problem: Shanti has just joined a DVD rental club. She pays a monthly membership fee of $4.95, and each DVD rental is $1.95. If Shanti’s budget for DVD rentals in a month is $42, how many DVDs can Shanti rent in her first month if she doesn’t want to go over her budget?

  • Core Subject: Mathematics

    Subject: Algebra

    Suggested Age: 13-16

    Type: Program

    Theme Park Ride

    View the Program - Python

    This Python program helps students conceptualize the following word problem: There are 90 people in line at a theme park ride. Every 5 minutes, 40 people get on the ride and 63 join the line. Estimate how long it would take for 600 people to be in line.

  • Core Subject: Mathematics

    Subject: Algebra

    Suggested Age: 13-16

    Type: Program

    T Tables for Simple Functions

    View the Program - Python

    This Python program helps students compute the T table for a given function. Students can analyze, fill in parts of, or use the program to check solutions to exercises on which they are already working.

  • Core Subject: Mathematics

    Subject: Algebra

    Suggested Age: 12-16

    Type: Program

    Ratios

    View the Program - Python

    This Python program helps students understand ratios by solving for x in the equation a/b = c/d, where x can be in any location in the two fractions. Students can analyze, fill in parts of, or use the program to check solutions to exercises on which they are already working.

  • Core Subject: Mathematics

    Subject: Algebra

    Suggested Age: 12-16

    Type: Program

    Quadratic Formula

    View the Program - Python

    This Python program helps students automatically compute the quadratic formula given the values of a, b and c. Students can analyze, fill in parts of, or use the program to check solutions to exercises on which they are already working.

  • Core Subject: Mathematics

    Subject: Algebra

    Suggested Age: 12-16

    Type: Program

    FOIL

    View the Program - Python

    This Python program helps students use their knowledge of FOIL on zero-variable or one-variable expressions to automatically solve various expressions. Students can analyze, fill in parts of, or use the program to check solutions to exercises on which they are already working.

  • Core Subject: Mathematics

    Subject: Algebra

    Suggested Age: 12-16

    Type: Program

    Factoring Perfect Square Binomial Expressions

    View the Program - Python

    This Python program helps students factor binomial expressions into the form (x+c)^2 if the expression fits the pattern. Students can analyze, fill in parts of, or use the program to check solutions to exercises on which they are already working.

  • Core Subject: Mathematics

    Subject: Algebra

    Suggested Age: 12-16

    Type: Program

    Distance, Rate, Time

    View the Program - Python

    This Python program helps students automatically compute distance, rate, or time, given two of the three variables. Students can analyze, fill in parts of, or use the program to check solutions to exercises on which they are already working.

  • Core Subject: Mathematics

    Subject: Algebra

    Suggested Age: 12-16

    Type: Program

    Binomial Products

    View the Program - Python

    This Python program helps students automatically calculate the binomial product, that is, (ax + b)(cx + d) = acx^2 + adx + bcx + bd. Students can analyze, fill in parts of, or use the program to check solutions to exercises on which they are already working.

  • Core Subject: Mathematics

    Subject: Algebra

    Suggested Age: 12-16

    Type: Program

    Functions

    View the Program - Python

    This Python program helps students see the connection between a mathematical function and a programmatic function by defining a function in Python and seeing what it means to pass a value to that function.

  • Core Subject: Mathematics

    Subject: Algebra

    Suggested Age: 12-16

    Type: Program

    Properties of Quadratic Equations

    View the Program - Python

    This Python program helps students apply their knowledge of quadratic equations to automatically complete the square of a quadratic equation and find the location of the vertex. Students can analyze, fill in parts of, or use the program to check solutions to exercises on which they are already working.

  • Core Subject: Mathematics

    Subject: Algebra

    Suggested Age: 12-16

    Type: Program

    Substitution with Two Equations

    View the Program - Python

    This Python program enables students to substitute and solve for variables using two equations. The first equation can be any equation; the second must be of the form variable = ... where variable appears in the first equation. Students can analyze the program or predict the substitution given the two equations.

  • Core Subject: Mathematics

    Subject: Algebra

    Suggested Age: 12-16

    Type: Program

    Pascal’s Triangle

    View the Program - Python

    This Python program illustrates how Pascal’s Triangle is computed. Students can trace through the program and learn more about nested for-loops and why they are needed in certain applications. This program may require additional guidance from the educator.

  • Core Subject: Mathematics

    Subject: Algebra

    Suggested Age: 14-18

    Type: Program

    Vertex of a Quadratic

    View the Program - Python

    This Python program anables students to calculate the vertex for any given quadratic and automatically calculate the vertex (h, k) for a given quadratic in the form of y = ax^2 + bx + c. Students can analyze or fill in parts of the program to reinforce their understanding.

  • Core Subject: Mathematics

    Subject: Algebra

    Suggested Age: 14-18

    Type: Program

    Roots of an Equation

    View the Program - Python

    This Python program enables students to solve for the roots of an equation. Students can analyze or fill in parts of the program to reinforce their knowledge.

  • Core Subject: Mathematics

    Subject: Algebra

    Suggested Age: 14-18

    Type: Program

    Conic Sections

    View the Program - Python

    This Python program illustrates how the coefficients of functions representing conic sections can be used to determine the type of conic section (circle, ellipse, hyperbola) and display results based on that conic section. Students can analyze, fill in parts of, or use the program to check results to exercises on which they are already working.

  • Core Subject: Mathematics

    Subject: Algebra

    Suggested Age: 14-18

    Type: Program

    Combinations: n choose k

    View the Program - Python

    This Python program enables students to check solutions to combinations (n choose k) exercises. Students can analyze, fill in parts of, or use the program to check results to exercises on which they are already working.

  • Core Subject: Mathematics

    Subject: Algebra

    Suggested Age: 14-18

    Type: Program

    Matrix Multiplication

    View the Program - Python

    This Python program helps students develop their understandings of matrix multiplication by performing it on two randomly generated matrices. Students can analyze or fill in parts of the program to reinforce their understanding. This program is fairly sophisticated and may only work for students with prior Python experience.

  • Core Subject: Mathematics

    Subject: Algebra

    Suggested Age: 14-18

    Type: Program

    Logarithm Notation

    View the Program - Python

    This Python program helps students develop their understanding of logarithm notation by automatically computing the result of a given base and exponent and displaying it in log notation. Students can analyze or fill in parts of the program to reinforce their knowledge.

  • Core Subject: Mathematics

    Subject: Algebra

    Suggested Age: 14-18

    Type: Program

    Determinant of a 3x3 Matrix

    View the Program - Python

    This Python program enables students to find the determinant of a 3x3 matrix. Students can analyze or fill in parts of the program to reinforce their knowledge.

  • Core Subject: Mathematics

    Subject: Algebra

    Suggested Age: 14-18

    Type: Program

    Determinant of a 2x2 Matrix

    View the Program - Python

    This Python program enables students to find the determinant of a 2x2 matrix. Students can analyze or fill in parts of the program to reinforce their knowledge.

  • Core Subject: Mathematics

    Subject: Arithmetic

    Suggested Age: 8-18

    Type: Program

    Chaos Game

    View the Program - Pencil Code

    This Pencil Code program enables student to play the "chaos game" by randomly moving the turtle to create a pattern. Students can analyze, fill in, or change parts of the program.

  • Core Subject: Mathematics

    Subject: Arithmetic

    Suggested Age: 8-18

    Type: Program

    Graphing Sums of Dice Rolls

    View the Program - Pencil Code

    This Pencil Code program illustrates randomness by rolling two dice 100 times and graphing the results in two different ways.

  • Core Subject: Mathematics

    Subject: Arithmetic

    Suggested Age: 8-18

    Type: Program

    Random Number Illustrator

    View the Program - Pencil Code

    This Pencil Code program can be used to generate and then illustrate a random number. Students can analyze, fill in, or change parts of the program.

  • Core Subject: Mathematics

    Subject: Arithmetic

    Suggested Age: 8-18

    Type: Program

    Sum of Two Dice

    View the Program - Pencil Code

    This Pencil Code program can be used to roll two dice a number of times and then print the sum. Students can analyze, fill in, or change parts of the program.

  • Core Subject: Mathematics

    Subject: Calculus

    Suggested Age: 16-18

    Type: Program

    Instantaneous Rate of Change

    View the Program - Python

    This Python program enables students to determine the instantaneous rate of change for a given function and then automatically calculate it for a given function. Students can analyze, fill in parts of, or use the program to check results to exercises on which they are already working.

  • Core Subject: Mathematics

    Subject: Calculus

    Suggested Age: 16-18

    Type: Program

    Calculating Definite Integrals

    View the Program - Python

    This Python program enables students to calculate the definite integral for a given function and then automatically calculate it for a specified function. Students can analyze, fill in parts of, or use the program to check results to exercises on which they are already working.

  • Core Subject: Mathematics

    Subject: Calculus

    Suggested Age: 16-18

    Type: Program

    Fundamental Theorem of Calculus

    View the Program - Python

    This Python program enables students to use the Fundamental Theorem of Calculus for a given function and automatically calculate it for a specified function. Students can analyze, fill in parts of, or use the program to check results to exercises on which they are already working.

  • Core Subject: Mathematics

    Subject: Data Analysis

    Suggested Age: 14-18

    Type: Lesson

    Mean and Standard Deviation

    View the Lesson Plan

    This lesson plan demonstrates how to use standard deviation to better understand a set of data. Students will use standard deviation to determine the general pattern/shape of a given set of data to draw more reliable conclusions.

  • Core Subject: Mathematics

    Subject: Data Analysis

    Suggested Age: 14-18

    Type: Lesson

    Application and Modeling of Standard Deviation

    View the Lesson Plan

    This lesson plan explores using the central tendency to discover patterns in data. Students will simulate a dice-throwing game and alter the algorithm design to reflect changes to the game. The CT concepts covered include data collection, decomposition, abstraction, and data analysis.

  • Core Subject: Mathematics

    Subject: Data Analysis

    Suggested Age: 11-14

    Type: Lesson

    Using Data from Sensors - Introduction

    View the Lesson Plan

    In this lesson plan, students identify and describe various sensors. Students will use sensors to collect data and use Computational Thinking to decompose one large problem into multiple smaller problems.

  • Core Subject: Mathematics

    Subject: Data Analysis

    Suggested Age: 14-18

    Type: Lesson

    Using Data from Sensors - Filters and Functions

    View the Lesson Plan

    In this lesson plan, student explore the use of filters to isolate and analyze data generated by various types of sensors. Students use computational thinking to identify patterns generated by a potential agent during a specific activity (such as a human falling to the ground).

  • Core Subject: Mathematics

    Subject: Data Analysis

    Suggested Age: 11-14

    Type: Lesson

    Continuous vs Discrete Data - Introduction

    View the Lesson Plan

    This lesson plan illustrates how data can be continuous or discrete. Students will collect data from classmates and then use data analysis and data representation to label the data as continuous or discrete. They will also learn to recognize different graphical and tabular representations of data as discrete and continuous.

  • Core Subject: Mathematics

    Subject: Data Analysis

    Suggested Age: 14-18

    Type: Lesson

    Continuous vs Discrete Data - Modeling Continuous Functions

    View the Lesson Plan

    This lesson plan requires students to apply their knowledge about continuous and discrete data to categorize data from historical calculations of the speed of light and to examine the effects of modeling a continuous curved shape with an increasing number of discrete points and segments.

  • Core Subject: Mathematics

    Subject: Geometry

    Suggested Age: 13-17

    Type: Lesson

    Area of a Circle

    View the Lesson Plan

    This lesson plan uses CT to explain the derivation of the formula A = pi*r^2. Students will complete Python programs that calculate the area of a circle as well as individual sectors.

  • Core Subject: Mathematics

    Subject: Geometry

    Suggested Age: 11-16

    Type: Program

    Pythagorean Theorem - Pencil Code

    View the Program - Pencil Code

    This Pencil Code program enables students to use the Pythagorean Theorem to calculate a third side of a right triangle given the other two sides. Students can analyze, fill in parts of, or use the program to check results to exercises on which they are already working.

  • Core Subject: Mathematics

    Subject: Geometry

    Suggested Age: 12-16

    Type: Program

    Acute, Obtuse, and Right Triangles

    View the Program - Python

    This Python program helps students precisely define the relationships between the angles for different types of triangles (acute, obtuse, or right). Students can analyze, fill in parts of, or use the program to check results to exercises on which they are already working.

  • Core Subject: Mathematics

    Subject: Geometry

    Suggested Age: 12-16

    Type: Program

    Calculating Surface Area

    View the Program - Python

    This Python program helps students use surface area formulas to automatically to calculate the surface areas of several geometric objects (cube, rectangular prism, cylinder, sphere). Students can analyze, fill in parts of, or use the program to check results to exercises on which they are already working.

  • Core Subject: Mathematics

    Subject: Geometry

    Suggested Age: 12-16

    Type: Program

    Pythagorean Theorem - Python

    View the Program - Python

    This Python program helps students use the Pythagorean Theorem to calculate a third side of a right triangle given the other two sides. Students can analyze, fill in parts of, or use the program to check results to exercises on which they are already working.

  • Core Subject: Mathematics

    Subject: Geometry

    Suggested Age: 12-16

    Type: Program

    Polygonal Formulas

    View the Program - Python

    This Python program helps students use formulas related to polygons to display several results based on the number of sides of a polygon. Students can analyze, fill in parts of, or use the program to check results to exercises on which they are already working.

  • Core Subject: Mathematics

    Subject: Geometry

    Suggested Age: 12-16

    Type: Program

    Distance Between Two Points

    View the Program - Python

    This Python program helps students use the distance formula to automatically calculate the distance between two points (x1, y1) and (x2, y2). Students can analyze or fill in parts of the program to reinforce their understanding.

  • Core Subject: Mathematics

    Subject: Geometry

    Suggested Age: 12-16

    Type: Program

    Area Calculations

    View the Program - Python

    This Python program demonstrates how area formulas can be used to automatically compute the area of various geometric objects. Students can analyze, fill in parts of, or use the program to check results to exercises on which they are already working.

  • Core Subject: Mathematics

    Subject: Logic

    Suggested Age: 12-14

    Type: Lesson

    Nonograms

    View the Lesson Plan

    This lesson plan requires students to apply logical reasoning to deduce information from rules in a game scenario. The CT concepts covered include data representation, data analysis, and decomposition.

  • Core Subject: Mathematics

    Subject: Logic

    Suggested Age: 11-14

    Type: Lesson

    Pattern Machine

    View the Lesson Plan

    This lesson plan requires students to play a triplet game in which a set of three numbers can be described according to a specific rule. Students use data analysis to recognize and generalize patterns from which they derive the rule and solve the puzzle.

  • Core Subject: Mathematics

    Subject: Logic

    Suggested Age: 12-14

    Type: Lesson

    Fruit Mix!

    View the Lesson Plan

    This lesson plan requires student to use logical reasoning to deduce information about the labels on fruit boxes based upon rules. The CT concepts covered include data analysis and simmulation.

  • Core Subject: Mathematics

    Subject: Logic

    Suggested Age: 10-12

    Type: Lesson

    Logic Party

    View the Lesson Plan

    This lesson plan requires students to solve a numerical problem using constraints to graphically eliminate possibilities and arrive at the correct answer. The CT concepts covered include data representation, data analysis, and decomposition.

  • Core Subject: Mathematics

    Subject: Pre-Algebra

    Suggested Age: 9-12

    Type: Lesson

    Fraction Addition and Common Denominators

    View the Lesson Plan

    This lesson plan explores how to find a common denominator between two fractions and add or subtract the fractions. It covers a variety of CT concepts, including decomposition, abstraction, pattern recognition, pattern generalization and algorithm design.

  • Core Subject: Mathematics

    Subject: Pre-Algebra

    Suggested Age: 11-14

    Type: Lesson

    Multiplication with Fractions

    View the Lesson Plan

    This lesson plan explores how to visualize the multiplication of fractions and identify patterns between the multiplicands and their product. Upon completion of this lesson, students will be able to multiply simple fractions using a visual model and a computational algorithm.

  • Core Subject: Mathematics

    Subject: Pre-Algebra

    Suggested Age: 11-13

    Type: Lesson

    Ratios and Proportions

    View the Lesson Plan

    This lesslon plan uses CT concepts and the Python programming language to develop an algorithm for answering questions involving ratios and proportions. It coveres a variety of CT concepts including problem decompostion, abstraction, pattern identification, pattern generalization and algorithm design.

  • Core Subject: Mathematics

    Subject: Pre-Algebra

    Suggested Age: 11-14

    Type: Lesson

    Multiplying by Numbers Between Zero and One

    View the Lesson Plan

    This lesson plan uses CT concepts to to demonstrate that when multiplying a positive number by a decimal between 0 and 1, the product is always less than the original number.

  • Core Subject: Mathematics

    Subject: Pre-Algebra

    Suggested Age: 11-14

    Type: Lesson

    Dividing by Numbers Between Zero and One

    View the Lesson Plan

    This lesson plan uses CT concepts to demonstrate that when dividing a positive number by a decimal between 0 and 1, the quotient is always greater than the original number.

  • Core Subject: Mathematics

    Subject: Pre-Algebra

    Suggested Age: 9-12

    Type: Lesson

    Common Fractions and Equivalent Percentages

    View the Lesson Plan

    This lesson plan uses CT concepts to demonstrate the conversion of common fractions into their equivalent percentages. Students identify patterns between fractions, decimals, and percents, and generalize these patterns.

  • Core Subject: Mathematics

    Subject: Pre-Algebra

    Suggested Age: 11-14

    Type: Lesson

    Percent Change

    View the Lesson Plan

    This lesson plan uses CT concepts to demonstrate how to calculate the percent change between any two numbers. Students identify patterns in percent change and decompose an algorithm to help strengthen their understanding.

  • Core Subject: Mathematics

    Subject: Pre-Algebra

    Suggested Age: 12-15

    Type: Lesson

    Scientific Notation

    View the Lesson Plan

    This lesson plan uses CT concepts to identify patterns between the exponent, the number of places the decimal point moves, and the direction the decimal point moves when multiplying by powers of ten.

  • Core Subject: Mathematics

    Subject: Pre-Algebra

    Suggested Age: 11-13

    Type: Lesson

    Percentages

    View the Lesson Plan

    This lesson plan uses CT concepts to demonstrate how to develop an algorithm for calculating percentages using mental math.

  • Core Subject: Mathematics

    Subject: Pre-Algebra

    Suggested Age: 9-12

    Type: Program

    Long Multiplication on Two-Digit Numbers - Pencil Code

    View the Program - Pencil Code

    This Pencil Code program enables student to perform long multiplication on two-digit numbers, for example, 42 x 31. Students can analyze, fill in parts of, or use the program to check results to exercises on which they are already working.

  • Core Subject: Mathematics

    Subject: Pre-Algebra

    Suggested Age: 9-12

    Type: Program

    Long Multiplication on Two-Digit Numbers - Python

    View the Program - Python

    This Python program enables students to perform long multiplication on two-digit numbers, for example, 23 x 46. Students can analyze, fill in parts of, or use the program to check results to exercises on which they are already working.

  • Core Subject: Mathematics

    Subject: Pre-Algebra

    Suggested Age: 9-12

    Type: Program

    Fractions and Proportions

    View the Program - Python

    This Python program enables students to check whether two fractions are proportional. Students can analyze, fill in parts of, or use the program to check results to exercises on which they are already working.

  • Core Subject: Mathematics

    Subject: Pre-Algebra

    Suggested Age: 9-12

    Type: Program

    Lemonade and Glasses

    View the Program - Python

    This Python program helps students conceptualize word problems, specifically: Sam has a jar with 5 cups of fresh lemonade. Jack has some glasses which hold 1.5 cups each of liquid. How many glasses of lemonade can Jack serve of Sam’s lemonade?

  • Core Subject: Mathematics

    Subject: Pre-Algebra

    Suggested Age: 9-12

    Type: Program

    Evaluating Expressions

    View the Program - Python

    This Python program llustrates how a basic calculator functions. It introduces Python’s eval function as a way of computing expressions containing variables a, b, and c when given values for each of these variables. Students can analyze, fill in parts of, or use the program to check results to exercises on which they are already working.

  • Core Subject: Mathematics

    Subject: Pre-Algebra

    Suggested Age: 9-12

    Type: Program

    Midpoint Between Two Points

    View the Program - Python

    This Python program helps students apply their knowledge of the midpoint formula to automatically calculate the midpoint between two points (x1, y1) and (x2, y2). Students can analyze or fill in parts of the program to help reinforce their understanding.

  • Core Subject: Mathematics

    Subject: Pre-Algebra

    Suggested Age: 9-12

    Type: Program

    Complementary and Supplementary Angles

    View the Program - Python

    This Python program helps students apply their knowledge of complements and supplements to automatically compute the complement and supplement of a given angle. Students can analyze or fill in parts of the program to help reinforce their understanding.

  • Core Subject: Mathematics

    Subject: Pre-Algebra

    Suggested Age: 9-12

    Type: Program

    Populations

    View the Program - Python

    This Python program helps students determine how long it will take to reach a certain target population, given a starting population, birthrate, and death rate. Students can analyze, fill in parts of, or use the program to check results to exercises on which they are already working.

  • Core Subject: Mathematics

    Subject: Pre-Algebra

    Suggested Age: 9-12

    Type: Program

    Rock Climber, Cliff, and Shadows

    View the Program - Python

    This Python program helps students conceptualize the following word problems: A rock climber wants to know the height of a cliff. She measures the shadow of her friend, who is 5 feet tall and standing beside the cliff and measures the shadow of the cliff. If the friends shadow is 4 feet long and the cliffs shadow is 60 feet long, how tall is the cliff?

  • Core Subject: Mathematics

    Subject: Pre-Algebra

    Suggested Age: 9-12

    Type: Program

    Basketball Hoops and Buildings

    View the Program - Python

    This Python program helps students conceptualize the following word problem: A basketball rim 10 ft high casts a shadow 15 ft long. At the same time, a nearby building casts a shadow that is 54 ft long. How tall is the building?

  • Core Subject: Mathematics

    Subject: Pre-Algebra

    Suggested Age: 9-12

    Type: Program

    Fractional Exponents

    View the Program - Python

    This Python program demonstrates fractional exponents by automatically computing one based on a given base and fractional exponent. Students can analyze or fill in parts of the program to reinforce their knowledge.

  • Core Subject: Mathematics

    Subject: Statistics and Probability

    Suggested Age: 14-18

    Type: Lesson

    Combinations with Repeats

    View the Lesson Plan

    This lesson plan uses CT concepts to illustrate how to compute the number of possible arrangements for a given number of digits in a given number of spaces. Students will identify patterns in relatively easy cases that can lead them to an algorithm which applies to all cases.

  • Core Subject: Mathematics

    Subject: Statistics and Probability

    Suggested Age: 14-18

    Type: Lesson

    Factorials with Names

    View the Lesson Plan

    This lesson plan uses CT concepts to investigate the number of possible arrangements of the letters in a given name. Students will identify patterns in the number of possible arrangements given an increasing number of letters, and then decompose the results to arrive at the factorial function.

  • Core Subject: Mathematics

    Subject: Statistics and Probability

    Suggested Age: 14-18

    Type: Lesson

    Sorting Data

    View the Lesson Plan

    This lesson plan illustrates how to sort data using spreadsheet functions and/or Python. Students compare the algorithms used by both tools and then write their own algorithms for analyzing data with the mean, median, and mode.

  • Core Subject: Mathematics

    Subject: Statistics and Probability

    Suggested Age: 11-18

    Type: Lesson

    Surveys and Estimating Large Quantities

    View the Lesson Plan

    This lesson plan shows students how to estimate the approximate size of data and determine the extent to which that data is realiable. Students will observe smaller data sets and identify patterns that enable them to make general predictions and to create algorithms capable of making approximations.

  • Core Subject: Mathematics

    Subject: Statistics and Probability

    Suggested Age: 11-18

    Type: Lesson

    Randomness in Stochastic Models

    View the Lesson Plan

    This lesson plan explores random variables and probability. In this lesson, students will be introduced to methods to create random numbers as well as ways in which randomization can be used in scientific experiments.

  • Core Subject: Mathematics

    Subject: Statistics and Probability

    Suggested Age: 14-18

    Type: Lesson

    Stochastic and Deterministic Modeling

    View the Lesson Plan

    This lesson plan explores deterministic models (the output is always the same) and stochastic models (the output is based on random sampling and can vary) and how, by modeling real phenomena using simulations, it is possible to improve a model and make better predictions.

  • Core Subject: Mathematics

    Subject: Statistics and Probability

    Suggested Age: 11-18

    Type: Lesson

    Analyzing Discrete and Continuous Data in a Spreadsheet

    View the Lesson Plan

    In this lesson plan, students will collect data in a spreadsheet and learn to use various functions and analysis tools to better see patterns in their eating habits.

  • Core Subject: Mathematics

    Subject: Statistics and Probability

    Suggested Age: 11-18

    Type: Lesson

    Analyzing Discrete and Continuous Data in a Map

    View the Lesson Plan

    This lesson plan illustrates how data is more than just numbers and that a map can also be a source of both discrete and continuous data. Using various tools, students will analyze and calculate the amount of urban open space available in their city.

  • Core Subject: Mathematics

    Subject: Statistics and Probability

    Suggested Age: 11-18

    Type: Lesson

    Correlation vs Causation

    View the Lesson Plan

    In this lesson, plan, students will test the strength of a correlation and discern whether or not a law or conclusion can be made based on that correlation. Students will see the threshold commonly accepted for correlating data and test their own assumptions about causation.

  • Core Subject: Mathematics

    Subject: Statistics and Probability

    Suggested Age: 16-18

    Type: Lesson

    Data Aggregation and Decomposition (Advanced Python)

    View the Lesson Plan

    This lesson plan explores how to use/analyze data to draw conclusions about the world around us. Students will improve their computational thinking by collecting/aggregating data onto a spreadsheet, identifying patterns in their data, decomposing the data into specified groups for analysis and further pattern recognition, and modifying an algorithm written in Python to facilitate data analysis.

  • Core Subject: Mathematics

    Subject: Statistics and Probability

    Suggested Age: 16-18

    Type: Lesson

    Data Aggregation and Decomposition (Using Google Sheets)

    View the Lesson Plan

    This lesson plan uses CT to help students decompose and re-aggregate small sets of data using Google Sheets. Students use decomposition to break down long lists of information and write basic algorithms to use for the data analysis process.

  • Core Subject: Mathematics

    Subject: Statistics and Probability

    Suggested Age: 14-18

    Type: Lesson

    The Law of Large Numbers and Probability

    View the Lesson Plan

    This lesson plan uses CT to help students use large amounts of data to explore the Law of Large Numbers and the Birthday Paradox to see how closely projected calculations match outcomes in the real world.

  • Core Subject: Mathematics

    Subject: Trigonometry

    Suggested Age: 12-17

    Type: Program

    Application of Sin(x) and Cos(x)

    View the Program - Pencil Code

    This Python program enables students to graph two functions and apply their knowledge of the fact that C*sin(x + p) is the same as A*sin(x) + B*cos(x), for the right choice of A and B. Students can analyze, fill in parts of, or use the program to check results to exercises on which they are already working.

  • Core Subject: Science

    Subject: Biology

    Suggested Age: 14-18

    Type: Demo

    Modeling the Genome using Computational Thinking

    View the Demonstration

    This demonstration explores how scientific knowledge of DNA progressed over the course of sixty years to the point where scientists could encode genes using a computer. It covers a variety of CT concepts, including decomposition, pattern recognition, abstraction, and algorithm design and their relation to natural phenomena.

  • Core Subject: Science

    Subject: Biology

    Suggested Age: 14-18

    Type: Demo

    Modeling GDP and Waste using Computational Thinking

    View the Demonstration

    This demonstration explores the hazards of making decisions based on incomplete data. It covers a variety of CT concepts, including decomposition, pattern recognition, abstraction, and algorithm design and their relation to natural phenomena.

  • Core Subject: Science

    Subject: Biology

    Suggested Age: 14-18

    Type: Demo

    Modeling Natural Selection using Computational Thinking

    View the Demonstration

    This demonstration illustrates how Charles Darwin and Gregor Mendel use Computational Thinking methods to make foundational discoveries in natural selection. It covers a variety of CT concepts, including decomposition, pattern recognition, abstraction, and algorithm design and their relation to natural phenomena.

  • Core Subject: Science

    Subject: Biology

    Suggested Age: 14-17

    Type: Lesson

    Cell Biology - Filters

    View the Lesson Plan

    This lesson plan uses CT to improve students' understandings of filters in cell bioloigy. Students will find patterns in filters of all types to help them understand how these filters function. Prior to this lesson, have students complete the related lesson titled Inquiry and Observation.

  • Core Subject: Science

    Subject: Biology

    Suggested Age: 14-17

    Type: Lesson

    Cell Biology - Filter Design and Construction

    View the Lesson Plan

    This lesson plan uses Computational Thinking to help students understand the movement of molecules across a cell membrane. Students will decompose their “molecules” to develop a design for their own “cell membranes” and then write an algorithm to describe them before building them. Prior to this lesson, have students complete the related lesson titled Filters.

  • Core Subject: Science

    Subject: Chemistry

    Suggested Age: 14-18

    Type: Demo

    Modeling Electron Configuration using Computational Thinking

    View the Demonstration

    This demonstration uses Computational Thinking to show the relationship between electron configuration and an element’s position in the periodic table. It covers a variety of CT concepts, including decomposition, pattern recognition, abstraction and algorithm design to show how the atomic number of an element affects the configuration of its electrons.

  • Core Subject: Science

    Subject: Chemistry

    Suggested Age: 14-18

    Type: Demo

    Modeling Radioactive Decay using Computational Thinking

    View the Demonstration

    This demonstration explores how Computational Thinking is used to model the radioactive decay of an element. It covers a variety of CT concepts, including decomposition, pattern recognition, abstraction, and algorithm design and their relation to natural phenomena.

  • Core Subject: Science

    Subject: Chemistry

    Suggested Age: 14-18

    Type: Demo

    Modeling Boyle's Law using Computational Thinking

    View the Demonstration

    This demonstration describes how Computational Thinking can be used to understand the relationship between pressure and volume in a container of gas as described by Boyle’s Law. It covers a variety of CT concepts, including decomposition, pattern recognition, abstraction, and algorithm design and their relation to natural phenomena.

  • Core Subject: Science

    Subject: Chemistry

    Suggested Age: 13-16

    Type: Lesson

    Patterns in the Periodic Table

    View the Lesson Plan

    This lesson plan illustrates how spreadsheet functions can be used to identify organizational patterns in the periodic table. The spreadsheet functions presented can be used on any data set.

  • Core Subject: Science

    Subject: Data Analysis

    Suggested Age: 13-18

    Type: Lesson

    Sorting the World's Cities with Google Sheets

    View the Lesson Plan

    This lesson plan demonstrates how to use spreadsheet functions to sort and graph data. Once the data is sorted, students can begin to identify patterns and trends.

  • Core Subject: Science

    Subject: Data Analysis

    Suggested Age: 13-18

    Type: Lesson

    Sorting the World's Cities (Advanced Python)

    View the Lesson Plan

    This lesson plan demonstrateshow to read data from a spreadsheet into a Python program and then sort that data. When taught in conjunction with Sorting the World's Cities with Excel, this lesson can help student make the connection between writing a program and using a spreadsheet application.

  • Core Subject: Science

    Subject: Data Analysis

    Suggested Age: 11-14

    Type: Lesson

    What is Data? - Introduction

    View the Lesson Plan

    This lesson plan describes what data is, how prevalent it is, and how it can be used to make informed decisions. The CT concepts covered include pattern recognition and data representation.

  • Core Subject: Science

    Subject: Data Analysis

    Suggested Age: 14-18

    Type: Lesson

    What is Data? - Code Breaking and Patterns

    View the Lesson Plan

    This lesson plan introduces the concept of data. Students will create new data, look for patterns in existing data and attempt to decode text and numeric messages. They will use data analysis, including pattern recognition, to make sense of the provided data.

  • Core Subject: Science

    Subject: Data Analysis

    Suggested Age: 14-18

    Type: Program

    Sorting

    View the Program - Python

    This Python program enables students to process data sets using a simple sorting algorithm. It can also be used to illustrate how sorting might be done automatically by an application such as Excel.

  • Core Subject: Science

    Subject: Earth Science

    Suggested Age: 14-18

    Type: Lesson

    Energy Analysis

    View the Lesson Plan

    This lesson plan explores how spreadsheet functions can be used to analyze data on energy production and consumption around the world. Students learn how to display the results of their data collection on a map of the world, creating a visual representation of the numbers they input into their spreadsheets. This example is most suitable for high school biology or earth science classes.

  • Core Subject: Science

    Subject: Physics

    Suggested Age: 14-18

    Type: Demo

    Modeling Projectile Motion using Computational Thinking

    View the Demonstration

    In this demonstration illustrates how a program can be used to simulate projectile motion. It enables students to see how decomposition, pattern recognition and abstraction can be used to understand natural phenomena.

  • Core Subject: Science

    Subject: Physics

    Suggested Age: 14-18

    Type: Demo

    Modeling Pendulums using Computational Thinking

    View the Demonstration

    This demonstration illustrates how Computational Thinking concepts can be used to explore the laws that govern a pendulum’s motion. It covers a variety of CT concepts, including decomposition, pattern recognition, abstraction, and algorithm design and their relation to natural phenomena.

  • Core Subject: Science

    Subject: Physics

    Suggested Age: 14-18

    Type: Demo

    Modeling Free Fall using Computational Thinking

    View the Demonstration

    This demonstration explores how Galileo used Computational Thinking and inclined planes to calculate acceleration of a sphere in free fall. It covers a variety of CT concepts, including decomposition, pattern recognition, abstraction, and algorithm design and their relation to natural phenomena.

  • Core Subject: Science

    Subject: Physics

    Suggested Age: 11-18

    Type: Lesson

    Working with Large Tables of Data

    View the Lesson Plan

    This lesson plan enables students to work with large tables of GPS data. Students will learn to sort, manipulate, and visualize data so it can be easily understood.

Resources

Below is a list of resources on computational thinking (CT). This list is not meant to be comprehensive, but is instead a curated collection of resources that educators and administrators might find useful. For additional computer science and CT resources, try our CS Custom Search.

For educators

General CT Resources

CT Tips and Strategies

CT in Computer Science

  • CS First - Free, easy-to-use materials based on Scratch that are themed to attract students with varied interests
  • CS Unplugged - Free resources and learning activities that teach the principles of Computer Science
  • Alice - Block-based programming language for creating animations, games, or videos using object-oriented programming constructs in a 3D environment
  • App Inventor - Block-based programming language for creating mobile apps for Android
  • Pencil Code - Block- and text-based programming environment for creating art, music, games, and stories
  • Scratch - Block-based programming language for creating interactive stories, animations, games, music, and art

CT in Math

  • Desmos and Geogebra - Two free tools for exploring patterns in math
  • Mathalicious - Meaningful and relevant math content with examples of how math is used to solve intriguing questions from a variety of subjects
  • Project Euler - Mathematical challenges that require CT to solve them
  • Bootstrap - Curriculum that teaches math through computer programming
  • CS in Algebra - Partnership between Code.org and Bootstrap which teaches algebraic and geometric concepts through computer programming

CT in Science

CT in English/Language Arts

  • Google Ngram Viewer - Discover patterns and trends in literary works over the last two centuries

CT in Art, Design, Media

  • Processing - Programming language and environment for creating programs that are visual and interactive
  • Pixly - Block-based programming language for exploring media computation (pixel manipulation of images)

CT in Music

  • EarSketch - Computational music remixing and sharing development environment with complementary curriculum

For administrators

FAQ

Why is Python the programming language used in the CT materials?

Python is one of the easier languages to start with that is free and easy to download. It offers users two modes: the interpreter mode and the editor mode. See Introduction to Python for general information on how to introduce and use Python in your curriculum, or visit http://www.python.org/ for general Python information.

Some of the Python programs seem too advanced for my students. How can I adapt the materials to work for my particular students?

In developing our exemplar lessons and examples, we wanted to illustrate the various techniques used in computational thinking, from decomposition to algorithm design and implementation. However, we agree that not all the programming exercises are suitable for all students. Thus we really encourage you to adapt our materials to suit the needs of your classroom, which may be dependent on the computing resources you have available as well as the grade and skill level of your students. Below are some ways in which you may choose to adapt our materials:

  • Have students complete all of the exercises that lead up to the programs, and have them explain how they would design such an algorithm in their own words instead of writing actual Python programs
  • Expose students to the programs by projecting them, analyzing them step-by-step as a class, and then running them using values and variables provided by your students
  • Remove logical code sections from the completed programs and have students work together to fill in the missing parts
  • Have students work together to enhance a completed program to solve more sophisticated problems that involve different scenarios

How do I install Python on my computer?

Visit http://www.python.org/ for information on how to download and install Python to your computer. Alternatively, if you are unable or do not want to download Python to your computer, you can search online for ‘online Python editor’ to explore the different web-based Python editors.