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 Computer Science Principles course to do some amazing things:

Computational thinking

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

    Grade: 6- 12

    Type: Reference

    Python Download and Install Instructions

    View the Reference Sheet

    Python works on any computer, and it's free! Follow these instructions to start using Python today!

  • Core Subject: All

    Subject: All

    Grade: 6- 12

    Type: Reference

    Python Quick Reference Sheet

    View the Reference Sheet

    Keep this sheet handy when you are working with Python. It contains all of the most often used functions and syntax from the Exploring Computational Thinking Lessons.

  • Core Subject: All

    Subject: All

    Grade: 6- 12

    Type: Lesson

    Introduction to Python

    View the Lesson Plan

    A few sample exercises to get you started using Python.

  • Core Subject: Science

    Subject: Physics

    Grade: 9- 12

    Type: Example

    Common Core : Modeling

    Modeling in Physics using Computational Thinking

    View the Example

    Students use modern technology to recreate and explore classic Physics experiments. Go beyond what Newton and Galileo could have dreamed was possible.

  • Core Subject: Science

    Subject: Chemistry

    Grade: 9- 12

    Type: Example

    Common Core : Modeling

    Modeling in Chemistry using Computational Thinking

    View the Example

    Chemistry explores the invisibile world of atoms. Give students the tools to visualize and model this world for deeper understanding.

  • Core Subject: Science

    Subject: Biology

    Grade: 9- 12

    Type: Example

    Common Core : Modeling

    Modeling in Biology using Computational Thinking

    View the Example

    Data and algorithms have transformed how we look at biology from the macro to the micro level. Modern day tools provide ways to find common patterns in all living things.

  • Core Subject: English-Language Arts

    Subject: Language

    Grade: 6- 12

    Type: Lesson

    Common Core : RL.8.5, L.9.4, RH.6.4

    Finding Patterns in Spelling Errors and History

    View the Lesson Plan

    In this lesson, students will analyze spelling errors and large sets of data to find patterns, develop abstractions, and discover how large amounts of data can tell us much about our society.

  • Core Subject: Mathematics

    Subject: Algebra

    Grade: 6- 12

    Type: Lesson

    Common Core : F-IF.4, Modeling

    Measuring the Complexity of a Function or Algorithm

    View the Lesson Plan

    Many of the mathematical problems students experience can be solved by a computer in less than a second. However, there is a set of problems that can take far longer, and still others exist that we aren’t sure how to solve at all using current methods. In this lesson, students will learn how to measure the complexity of a function/algorithm and understand how this applies to real world situations.

  • Core Subject: English-Language Arts

    Subject: Language

    Grade: 1- 10

    Type: Lesson

    Describing an Everyday Object

    View the Lesson Plan

    Using language to describe an object to someone else without the object's name. It's harder than you think.

  • Core Subject: English-Language Arts

    Subject: Language

    Grade: 5- 8

    Type: Lesson

    Writing a Story

    View the Lesson Plan

    Collaborate with others to build a story. Afterwards, find the "bugs" in the story and fix them to give the overall story a more logical flow.

  • Core Subject: English-Language Arts

    Subject: Language

    Grade: 3- 6

    Type: Lesson

    Ciphering a Sentence

    View the Lesson Plan

    Develop a cipher and encode a sentence and develop an algorithm for encoding and decoding.

  • Core Subject: All

    Subject: All

    Grade: 1- 6

    Type: Lesson

    Exploring Your Environment

    View the Lesson Plan

    Gather data about a place or environment, organize the data in a table and look for patterns.

  • Core Subject: All

    Subject: All

    Grade: 3- 6

    Type: Lesson

    Machine Testing

    View the Lesson Plan

    Develop a strategy for testing a mysterious new machine.

  • Core Subject: All

    Subject: All

    Grade: 1- 6

    Type: Lesson

    Guessing Game

    View the Lesson Plan

    Play a guessing game with your friends and develop a process for efficient guessing.

  • Core Subject: Science

    Subject: Data Analysis

    Grade: 6- 12

    Type: Lesson

    Common Core : S.ID.2

    Mean and Standard Deviation

    View the Lesson Plan

    This lesson will demonstrate 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: Science

    Subject: Data Analysis

    Grade: 9- 12

    Type: Lesson

    Common Core : S-ID

    Application and Modeling of Standard Deviation

    View the Lesson Plan

    When looking for patterns in data, it is helpful to look at the central tendency to see if patterns can be discovered. Students will be able to examine graphs of data using each of the measures of central tendency to determine when to use each in order to get a true overview of the data.

  • Core Subject: Science

    Subject: Statistics and Probability

    Grade: 9- 12

    Type: Lesson

    Common Core : S-CP

    Bayes Theorem

    View the Lesson Plan

    Bayes’ Theorem is a powerful equation that allows us to make predictions on everything from the weather to the stock market. Once the pattern of Bayes’ Theorem and conditional logic is understood, students will be able to determine the actual probability of an event and see how others use Bayes’ Theorem for research. This lesson will examine two scenarios from which students can generalize to understand many everyday phenomena.

  • Core Subject: Science

    Subject: Data Analysis

    Grade: 6- 12

    Type: Lesson

    Common Core : Modeling

    Using Data from Sensors

    View the Lesson Plan

    Sensors are a common way to collect information, whether it be through our own senses or with the aid of technology. Students will analyze sensor data and develop filtering algorithms for anomalies and outliers; they will then use these algorithms to make decisions on sensor data as it is being collected.

  • Core Subject: Science

    Subject: Data Analysis

    Grade: 6- 12

    Type: Lesson

    What is Data

    View the Lesson Plan

    Data is everywhere and students can use CT to understand, interpret, and draw conclusions.

  • Core Subject: Science

    Subject: Data Analysis

    Grade: 6- 12

    Type: Lesson

    Continuous vs Discrete Data

    View the Lesson Plan

    When working with Data, it is important to know whether the Data is continuous or discrete, as this will determine what calculations can be applied and what Information can be extracted from it. This lesson helps students to distinguish between continuous and discrete data and explain why that matters.

  • Core Subject: Science

    Subject: Data Analysis

    Grade: 6- 12

    Type: Lesson

    Working with Large Tables of Data

    View the Lesson Plan

    The world is full of Data and by using sensors, we can collect large amounts of Data easily. Once that Data is collected, the challenge is to interpret it by finding patterns and creating hypotheses about what the information could mean. In this lesson, students will work with large tables of GPS Data and sort, manipulate, and visualize the Data so it can be easily understood.

  • Core Subject: Science

    Subject: Statistics and Probability

    Grade: 8- 12

    Type: Lesson

    Functions and Algorithms

    View the Lesson Plan

    In computational thinking, the patterns we see in the world can be abstracted into functions. If we have a function we can give it the ability to loop quickly, use logic to make decisions and more. By developing algorithms into functions we are able to better understand and utilize the laws of our world.

  • Core Subject: Science

    Subject: Statistics and Probability

    Grade: 6- 12

    Type: Lesson

    Common Core : S-IC

    Surveys and Estimating Large Quantities

    View the Lesson Plan

    In some situations, because there is so much data it can be difficult to get an exact count. We can use estimation to approximate the size of our data and know how much we can rely upon that data. By observing smaller sets and seeing patterns we can make general predictions and even create algorithms capable of making approximations.

  • Core Subject: Science

    Subject: Statistics and Probability

    Grade: 6- 12

    Type: Lesson

    Common Core : S-MD

    Randomness in Stochastic Models

    View the Lesson Plan

    Most of the experiments students perform in class are deterministic. The expected outcome is the same every time. However, modern scientific research is often stochastic, that is, it depends on random variables and probability. In this lesson, students will be introduced to methods used to create random numbers as well as ways in which they can be used in scientific experiments.

  • Core Subject: Science

    Subject: Statistics and Probability

    Grade: 9- 12

    Type: Lesson

    Common Core : F-LE, S-IC

    Stochastic and Deterministic Modeling

    View the Lesson Plan

    Computers provide humans with fast and repeatable processing. This aids us in creating algorithms that model real world phenomena. Models are either deterministic (the output is always the same) or stochastic (the output is based on random sampling and can vary). By modeling real phenomena using simulations, students can apply their understanding and modify it to make predictions.

  • Core Subject: Science

    Subject: Data Analysis

    Grade: 6- 12

    Type: Lesson

    Common Core : S-ID

    Analyzing Discrete and Continuous Data in a Spreadsheet

    View the Lesson Plan

    Data can be found in every aspect of our lives. Because everybody is different, we use discrete and continuous data to determine recommendations for a nutritious diet. In this lesson, 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: Science

    Subject: Data Analysis

    Grade: 6- 12

    Type: Lesson

    Common Core : 6.G

    Analyzing Discrete and Continuous Data in a Map

    View the Lesson Plan

    Data is more than just numbers, often the data can be found on a map. A map contains both discrete and continuous data. Using various tools, student will be able to analyze and calculate the amount of urban open space is available in their city.

  • Core Subject: Science

    Subject: Statistics and Probability

    Grade: 6- 12

    Type: Lesson

    Common Core : S-ID

    Correlation vs Causation

    View the Lesson Plan

    One component of Computational Thinking is pattern recognition. While some patterns may imply causality, they may in fact be unrelated. In this lesson, 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: Pre-Algebra

    Grade: 4- 6

    Type: Example

    Common Core : 5.NF.1

    Fraction Addition and Common Denominators

    View the Example

    Students learn how to find a common denominator between two fractions and then add or subtract the fractions. They use visual representations to understand the decomposition of the larger of two fractions to find a common denominator with the smaller fraction.

  • Core Subject: Mathematics

    Subject: Pre-Algebra

    Grade: 4- 6

    Type: Example

    Common Core : 5.NF.4, 5.NF.6

    Multiplication with Fractions

    View the Example

    Students learn to visualize the multiplication of fractions and identify patterns between the multiplicands and their product.

  • Core Subject: Mathematics

    Subject: Pre-Algebra

    Grade: 6- 7

    Type: Example

    Common Core : 6.RP.3

    Ratios and Proportions

    View the Example

    Use a CT approach to develop an algorithm for answering questions involving ratios and proportions. Students will develop algorithms based on the patterns they identify after decomposing questions.

  • Core Subject: Mathematics

    Subject: Pre-Algebra

    Grade: 6- 8

    Type: Example

    Common Core : 7.NS.2

    Multiplying by Numbers Between Zero and One

    View the Example

    Use a CT approach to teach students 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

    Grade: 6- 8

    Type: Example

    Common Core : 7.NS.2

    Dividing by Numbers Between Zero and One

    View the Example

    Use a CT approach to teach students 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

    Grade: 6- 8

    Type: Example

    Common Core : 7.EE.3

    Common Fractions and Equivalent Percentages

    View the Example

    Use a CT approach to teach students 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

    Grade: 6- 8

    Type: Example

    Common Core : 7.RP.3

    Percent Change

    View the Example

    Use a CT approach to teach students to calculate percent change between any two numbers. Students will identify patterns in percent change and decompose an algorithm to help strengthen their understanding.

  • Core Subject: Mathematics

    Subject: Pre-Algebra

    Grade: 7- 9

    Type: Example

    Common Core : 8.EE.4

    Scientific Notation

    View the Example

    Use a CT approach 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

    Grade: 4- 6

    Type: Program

    Common Core : 5.NBT.5

    Long Multiplication on Two-Digit Numbers

    View the Python Program (zip)

    Use this program to apply students’ knowledge of how to perform long multiplication on two-digit numbers, for example, 23 x 46. Have students analyze, fill in parts of, or use the program to check results to exercises they are already working on.

  • Core Subject: Mathematics

    Subject: Pre-Algebra

    Grade: 6- 8

    Type: Program

    Common Core : 7.RP.2

    Fractions and Proportions

    View the Python Program (zip)

    Use this program to help students check whether two fractions are proportional. Have students analyze, fill in parts of, or use the program to check results to exercises they are already working on.

  • Core Subject: Mathematics

    Subject: Pre-Algebra

    Grade: 5- 7

    Type: Program

    Common Core : 6.EE.2

    Evaluating Expressions

    View the Python Program (zip)

    Use this program to illustrate to students how a basic calculator functions. Have students analyze, fill in parts of, or use the program to check results to exercises they are already working on. This program 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.

  • Core Subject: Mathematics

    Subject: Pre-Algebra

    Grade: 8- 10

    Type: Program

    Common Core : N-CN.6

    Midpoint Between Two Points

    View the Python Program (zip)

    Use this program to apply students’ knowledge of the midpoint formula and automatically calculate the midpoint between two points (x1, y1) and (x2, y2). Have students analyze or fill in parts of the program to help reinforce their understanding.

  • Core Subject: Mathematics

    Subject: Pre-Algebra

    Grade: 6- 8

    Type: Program

    Common Core : 7.G.5

    Complementary and Supplementary Angles

    View the Python Program (zip)

    Use this program to apply students’ knowledge of complements and supplements and automatically compute the complement and supplement of a given angle. Have students analyze or fill in parts of the program to reinforce their understanding.

  • Core Subject: Mathematics

    Subject: Pre-Algebra

    Grade: 6- 8

    Type: Program

    Common Core : 6.EE.7

    Word Problems (populations)

    View the Python Program (zip)

    Use this program to help students determine how long it will take to reach a certain target population, given a starting population, birthrate, and death rate. Have students analyze, fill in parts of, or use the program to check results to exercises they are already working on.

  • Core Subject: Mathematics

    Subject: Pre-Algebra

    Grade: 6- 9

    Type: Example

    Common Core : 6.SP.5

    Average of Class Data

    View the Example

    Students learn how to calculate the average of a set of data using both Excel and Python with an emphasis on the algorithm used to perform the calculation.

  • Core Subject: Mathematics

    Subject: Pre-Algebra

    Grade: 6- 7

    Type: Example

    Common Core : 7.EE.3

    Percentages

    View the Example

    Use a CT approach to develop an algorithm for calculating percentages using mental math.

  • Core Subject: Mathematics

    Subject: Algebra

    Grade: 7- 9

    Type: Example

    Common Core : 8.SP.1

    Linear Association

    View the Example

    Students study the linear association between variables using two sets of data. They learn to read this data in a spreadsheet as well as in a graph, and to identify positive and negative linear association based on the shape of the graph.

  • Core Subject: Mathematics

    Subject: Algebra

    Grade: 7- 9

    Type: Lesson

    Common Core : 8.EE.6

    Slope and Y-Intercept

    View the Lesson Plan

    Use a CT approach to teach students about the properties of slope and y-intercept. In this lesson, students will learn how to calculate the slope and y-intercept 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

    Grade: 8- 10

    Type: Program

    Common Core : A-SSE.1

    Work Problems (2 Workers)

    View the Python Program (zip)

    Use this program to help students conceptualize work problems by solving word problems with two people working together at different rates. Have students analyze, fill in parts of, or enhance the program to solve more sophisticated work problems.

  • Core Subject: Mathematics

    Subject: Algebra

    Grade: 8- 10

    Type: Program

    Common Core : A-SSE.1

    Work Problems (3 Workers)

    View the Python Program (zip)

    Use this program to help students conceptualize work problems by solving word problems with three people working together at different rates. Have students analyze, fill in parts of, or enhance the program to solve more sophisticated work problems.

  • Core Subject: Mathematics

    Subject: Pre-Algebra

    Grade: 6- 8

    Type: Program

    Common Core : 7.RP.2

    Word Problems

    View the Python Program (zip)

    Use this program to help student conceptualize word problems, specifically: A rock climber wants to know the height of a cliff. The climber 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

    Grade: 6- 8

    Type: Program

    Common Core : 7.RP.2

    Word Problems

    View the Python Program (zip)

    Use this program to help students conceptualize word problems, specifically: 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

    Grade: 6- 8

    Type: Program

    Common Core : 7.EE.4

    Word Problems

    View the Python Program (zip)

    Use this program to help 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

    Grade: 6- 8

    Type: Example

    Common Core : 6.SP.5

    Median of Latitude Data

    View the Example

    Students learn to identify the median of relatively large data sets. They decompose this process for data sets with odd and even numbers of entries, and write an algorithm for identifying the median in both cases.

  • Core Subject: Mathematics

    Subject: Algebra

    Grade: 7- 9

    Type: Program

    Common Core : A-SSE.1, A-SSE.3

    Savings and Interest

    View the Python Program (zip)

    Use this program to help students understand how to calculate interest based on the savings amount, interest rate, and number of years of investing. Have students analyze, fill in parts of, or use the program to check results to exercises they are already working on.

  • Core Subject: Mathematics

    Subject: Algebra

    Grade: 7- 9

    Type: Program

    Common Core : 7.EE.4

    Word Problems

    View the Python Program (zip)

    Use this program to help students conceptualize word problems, specifically: 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

    Grade: 7- 9

    Type: Program

    Common Core : 7.EE.4

    Word Problems

    View the Python Program (zip)

    Use this program to help students conceptualize word problems, specifically: 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

    Grade: 7- 9

    Type: Program

    Common Core : 7.EE.4

    Word Problems

    View the Python Program (zip)

    Use this program to help students conceptualize word problems, specifically: 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

    Grade: 7- 9

    Type: Program

    Common Core : 8.F.1

    T Tables for Simple Functions

    View the Python Program (zip)

    Use this program to help students compute the T table for a given function. Have students analyze, fill in parts of, or use the program to check solutions to exercises they are already working on.

  • Core Subject: Mathematics

    Subject: Algebra

    Grade: 6- 8

    Type: Program

    Common Core : 7.RP.2

    Ratios

    View the Python Program (zip)

    Use this program to help 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. Have students analyze, fill in parts of, or use the program to check solutions to exercises they are already working on.

  • Core Subject: Mathematics

    Subject: Algebra

    Grade: 7- 10

    Type: Program

    Common Core : A.REI.4

    Quadratic Formula

    View the Python Program (zip)

    Use this program to apply students’ knowledge of the quadratic formula and automatically compute the quadratic formula given the values of a, b and c. Have students analyze, fill parts of, or use the program to check results to exercises they are already working on.

  • Core Subject: Mathematics

    Subject: Algebra

    Grade: 7- 9

    Type: Program

    Common Core : A-APR.5

    FOIL

    View the Python Program (zip)

    Use this program to apply students’ knowledge of FOIL on zero-variable or one-variable expressions and automatically solve various expressions. Have students analyze, fill in parts of, or use the program to check results to problems they are already working on.

  • Core Subject: Mathematics

    Subject: Algebra

    Grade: 7- 9

    Type: Program

    Common Core : A-APR.4

    Factoring Perfect Square Binomial Expressions

    View the Python Program (zip)

    Use this program to help students factor binomial expressions into the form (x+c)^2 if the expression fits the pattern. Have students analyze, fill in parts of, or use the program to check results to exercises they are already working on.

  • Core Subject: Mathematics

    Subject: Algebra

    Grade: 7- 9

    Type: Program

    Common Core : A-CED.4

    Distance, Rate, Time

    View the Python Program (zip)

    Use this program to help students automatically compute distance, rate, or time, given two of the three variables. Have students analyze, fill in parts of, or use the program to check results to exercises they are already working on.

  • Core Subject: Mathematics

    Subject: Algebra

    Grade: 7- 9

    Type: Program

    Common Core : A-APR.5

    Binomial Products

    View the Python Program (zip)

    Use this program to help students automatically calculate the binomial product, that is, (ax + b)(cx + d) = acx^2 + adx + bcx + bd. Have students analyze, fill in parts of, or use the program to check results to exercises they are already working on.

  • Core Subject: Mathematics

    Subject: Algebra

    Grade: 7- 9

    Type: Program

    Common Core : 8.F.1

    Functions

    View the Python Program (zip)

    Use this program to help 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

    Grade: 7- 9

    Type: Program

    Common Core : A-SSE.3

    Properties of Quadratic Equations

    View the Python Program (zip)

    Use this program to apply students’ knowledge of quadratic equations to automatically complete the square of a quadratic equation and find the location of the vertex. Have students analyze or fill in parts of the program to reinforce their understanding.

  • Core Subject: Mathematics

    Subject: Geometry

    Grade: 8- 12

    Type: Lesson

    Common Core : G-C.5

    Area of a Circle

    View the Lesson Plan

    Use a CT approach to teach students one derivation of the formula A = pi*r^2. In this lesson, students will complete Python programs that calculate the area of a circle as well as individual sectors.

  • Core Subject: Mathematics

    Subject: Geometry

    Grade: 7- 9

    Type: Program

    Common Core : 8.G.5

    Acute, Obtuse, and Right Triangles

    View the Python Program (zip)

    Use this program to help students precisely define the relationships between the angles for the different types of triangles (acute, obtuse, or right). Have students analyze, fill in parts of, or use the program to check results to exercises they are already working on.

  • Core Subject: Mathematics

    Subject: Geometry

    Grade: 6- 8

    Type: Program

    Common Core : 7.G.6

    Calculating Surface Area

    View the Python Program (zip)

    Use this program to apply students’ knowledge of surface area formulas to automatically calculate the surface areas of several geometric objects: cube, rectangular prism, cylinder, sphere. Have students analyze, fill in parts of, or use the program to check results to exercises they are already working on.

  • Core Subject: Mathematics

    Subject: Geometry

    Grade: 6- 10

    Type: Program

    Common Core : 8.G.7

    Pythagorean Theorem

    View the Python Program (zip)

    Use this program to apply students’ knowledge of the Pythagorean Theorem to calculate a third side of a right triangle given the other two sides. Have students analyze, fill in parts of, or use the program to check results to exercises they are already working on.

  • Core Subject: Mathematics

    Subject: Geometry

    Grade: 8- 10

    Type: Program

    Polygonal Formulas

    View the Python Program (zip)

    Use this program to apply students’ knowledge of the formulas related to polygons by displaying several results based on the number of sides of a polygon to show the differences in polygons. Have students analyze, fill in parts of, or use the program to check results to exercises they are already working on.

  • Core Subject: Mathematics

    Subject: Geometry

    Grade: 6- 9

    Type: Program

    Common Core : 8.G.8

    Distance Between Two Points

    View the Python Program (zip)

    Use this program to apply students’ knowledge of the distance formula and automatically calculate the distance between two points (x1, y1) and (x2, y2). Have students analyze or fill in parts of the program to reinforce their understanding.

  • Core Subject: Mathematics

    Subject: Geometry

    Grade: 6- 10

    Type: Program

    Common Core : 6.G.1

    Area Calculations

    View the Python Program (zip)

    Use this program to apply students’ knowledge of area formulas and automatically compute the area of various geometric objects. Have students analyze, fill in parts of, or use the program to check results to exercises they are already working on.

  • Core Subject: Mathematics

    Subject: Statistics and Probability

    Grade: 9- 12

    Type: Example

    Common Core : S-CP.9

    Combinations with Repeats

    View the Example

    Use a CT approach to teach students how to compute the number of possible arrangements of a given number of digits in a given number of spaces. In this lesson students will identify patterns in relatively easy cases that lead them to an algorithm which applies to all cases.

  • Core Subject: Mathematics

    Subject: Statistics and Probability

    Grade: 9- 12

    Type: Example

    Common Core : S-CP.9

    Factorials with Names

    View the Example

    In this example students investigate how many arrangements of the letters in a given name are possible. They 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

    Grade: 9- 12

    Type: Example

    Common Core : S-ID-2

    Sorting Data

    View the Example

    Students learn to sort data using spreadsheet functions and/or Python. They 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: Algebra

    Grade: 9- 12

    Type: Lesson

    Common Core : A-SSE.4

    Geometric Series

    View the Lesson Plan

    Use a CT approach to teach students the derivation of the formula for the sum of any geometric series. In this lesson, students will write algorithms that can be translated into Python code so that they can easily calculate the sum of several finite geometric series.

  • Core Subject: Mathematics

    Subject: Algebra

    Grade: 8- 12

    Type: Program

    Common Core : N.RN.1

    Fractional Exponents

    View the Python Program (zip)

    Use this program to help students understand fractional exponents by automatically computing one based on a given base and fractional exponent. Have students analyze or fill in parts of the program to reinforce their knowledge.

  • Core Subject: Mathematics

    Subject: Algebra

    Grade: 7- 10

    Type: Program

    Common Core : A-REI.6

    Substitution with Two Equations

    View the Python Program (zip)

    Use this program to apply students’ knowledge of how 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. Have students analyze the program or predict the substitution given the two equations.

  • Core Subject: Mathematics

    Subject: Algebra

    Grade: 7- 10

    Type: Program

    Common Core : A-APR.5

    Pascal’s Triangle

    View the Python Program (zip)

    Use this program to help students learn about how Pascal’s Triangle is computed. Have students trace through the program, and learn more about nested for-loops and why they are needed in certain applications. This program may require extra guidance by the educator.

  • Core Subject: Mathematics

    Subject: Algebra

    Grade: 9- 12

    Type: Example

    Common Core : F-TF.1

    Degrees and Radians

    View the Example

    In this example students use basic patterns to label key points on the unit circle in terms of degrees, and then follow a similar process to relabel these points in terms of radians. Based on the patterns they use to count their way around the unit circle, students develop an algorithm to convert between degrees and radians.

  • Core Subject: Mathematics

    Subject: Algebra

    Grade: 9- 12

    Type: Program

    Common Core : F-IF.4

    Vertex of a Quadratic

    View the Python Program (zip)

    Use this program to apply students’ knowledge of how 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. Have students analyze or fill in parts of the program to reinforce their understanding.

  • Core Subject: Mathematics

    Subject: Algebra

    Grade: 9- 12

    Type: Program

    Common Core : F-IF.7

    Roots of an Equation

    View the Python Program (zip)

    Use the program to help students solve for the roots of an equation. Have students analyze or fill in parts of the program to reinforce their knowledge.

  • Core Subject: Mathematics

    Subject: Algebra

    Grade: 9- 12

    Type: Program

    Common Core : G-GPE.3

    Conic Sections

    View the Python Program (zip)

    Use this program to illustrate how the coefficients of functions representing conic sections can be used to determine the type of conic section (circle, ellipse, hyperbola), and then display results based on that conic section. Have students analyze, fill in parts of, or use the program to check results to exercises they are already working on.

  • Core Subject: Mathematics

    Subject: Algebra

    Grade: 9- 12

    Type: Program

    Common Core : S-CP.9

    Combinations: n choose k

    View the Python Program (zip)

    Use this program to have students check solutions to exercises they are already working on related to combinations (n choose k). Students may also analyze or fill parts of the program to reinforce their understanding.

  • Core Subject: Mathematics

    Subject: Algebra

    Grade: 9- 12

    Type: Program

    Common Core : N-VM.8

    Matrix Multiplication

    View the Python Program (zip)

    Use this program to apply students’ knowledge of matrix multiplication by performing it on two randomly generated matrices. Have students 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

    Grade: 9- 12

    Type: Program

    Common Core : F-BF.5

    Logarithm Notation

    View the Python Program (zip)

    Use this program to help students understand logarithm notation by automatically computing the result of a given base and exponent and displaying it in log notation. Have students analyze or fill in parts of the program to reinforce their knowledge.

  • Core Subject: Mathematics

    Subject: Algebra

    Grade: 9- 12

    Type: Program

    Common Core : A-REI.9

    Determinant of a 3x3 Matrix

    View the Python Program (zip)

    Use this program to help students find the determinant of a 3x3 matrix. Have students analyze or fill in parts of the program to reinforce their knowledge.

  • Core Subject: Mathematics

    Subject: Algebra

    Grade: 9- 12

    Type: Program

    Common Core : N-VM.12

    Determinant of a 2x2 Matrix

    View the Python Program (zip)

    Use this program to help students find the determinant of a 2x2 matrix. Have students analyze or fill in parts of the program to reinforce their knowledge.

  • Core Subject: Mathematics

    Subject: Calculus

    Grade: 11- 12

    Type: Lesson

    Functions and Derivatives

    View the Lesson Plan

    Use a CT approach to teach students how math functions relate to Python functions. In this lesson, students will identify patterns in Python code that lead them to building a program that uses the definition of derivative to approximate the derivative of any continuously differentiable function.

  • Core Subject: Mathematics

    Subject: Calculus

    Grade: 11- 12

    Type: Program

    Instantaneous Rate of Change

    View the Python Program (zip)

    Use this program to apply students’ knowledge of determining the instantaneous rate of change for a given function and automatically calculate it for a given function. Have students analyze, fill in parts of, or use the program to check results to exercises they are already working on. This program aligns with CA Math Standard: Calculus 4.2.

  • Core Subject: Mathematics

    Subject: Calculus

    Grade: 11- 12

    Type: Program

    Calculating Definite Integrals

    View the Python Program (zip)

    Use this program to apply students’ knowledge of calculating the definite integral for a given function and automatically calculate it for a specified function. Have students analyze, fill in parts of, or use the program to check results to exercises they are already working on. This program aligns with CA Math Standard: Calculus 13.0.

  • Core Subject: Mathematics

    Subject: Calculus

    Grade: 11- 12

    Type: Program

    Fundamental Theorem of Calculus

    View the Python Program (zip)

    Use this program to apply students’ knowledge of the Fundamental Theorem of Calculus for a given function and automatically calculate it for a specified function. Have students analyze, fill in parts of, or use the program to check results to exercises they are already working on. This program aligns with CA Math Standard: Calculus 15.0.

  • Core Subject: Science

    Subject: Chemistry

    Grade: 8- 10

    Type: Example

    Patterns in the Periodic Table

    View the Example

    In this example students study patterns in the organization of the periodic table supplemented by the use of spreadsheet functions. The spreadsheet functions presented can be used on any data set. This example aligns with eighth grade CA Math Standard 8PC7.

  • Core Subject: Science

    Subject: Cell Biology

    Grade: 8- 12

    Type: Lesson

    Inquiry and Observation

    View the Lesson Plan

    Use a CT approach to improve students’ ability to focus and observe. In this lesson, students will learn to use their observational skills to detect patterns that will help them decompose an everyday experience.

  • Core Subject: Science

    Subject: Cell Biology

    Grade: 8- 12

    Type: Lesson

    Filters

    View the Lesson Plan

    Use a CT approach to improve students' understanding of filters. In this lesson, they will find patterns in filters of all types to help them understand the function of filters in cell biology. Prior to this lesson, have students complete the related lesson titled Inquiry and Observation.

  • Core Subject: Science

    Subject: Cell Biology

    Grade: 8- 12

    Type: Lesson

    Filter Design and Construction

    View the Lesson Plan

    Use a CT approach to help students understand the movement of molecules across a cell membrane. In this lesson, students 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: Earth Science

    Grade: 9- 12

    Type: Example

    Energy Analysis

    View the Example

    In this example students collect data on energy production and consumption around the world and use spreadsheet functions to analyze the data. They learn how to display the results 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: Data Analysis

    Grade: 9- 12

    Type: Lesson

    Common Core : S-IC.1, S-IC.4

    Data Aggregation and Decomposition (Advanced Python)

    View the Lesson Plan

    Use a CT approach to teach students how to analyze data and understand the world around them. In this lesson, students will use Python to read in data from a spreadsheet and manipulate a program to decompose this data and extract necessary information.

  • Core Subject: Science

    Subject: Data Analysis

    Grade: 9- 12

    Type: Lesson

    Common Core : S-IC.1, S-IC.4

    Data Aggregation and Decomposition (Excel)

    View the Lesson Plan

    Use a CT approach to teach students how to analyze data and understand the world around them. In this lesson, students will use Excel commands to decompose their class' data to more easily extract the required information.

  • Core Subject: Science

    Subject: Data Analysis

    Grade: 9- 12

    Type: Program

    Sorting

    View the Python Program (zip)

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

  • Core Subject: Science

    Subject: Data Analysis

    Grade: 7- 12

    Type: Example

    Sorting the World's Cities with Excel

    View the Example

    Students learn how to use spreadsheet functions to sort and graph data. Once the data is sorted, they will begin to identify patterns and trends.

  • Core Subject: Science

    Subject: Data Analysis

    Grade: 9- 12

    Type: Example

    Sorting the World's Cities (Advanced Python)

    View the Example

    Students learn one method of reading data from a spreadsheet into a Python program and then learn how to sort it. When taught in conjunction with Sorting the World's Cities with Excel, students make the connection between writing a program and using a spreadsheet application.

  • Core Subject: English-Language Arts

    Subject: Language

    Grade: 1- 3

    Type: Example

    Common Core : L1.1h

    Indefinite Articles

    View the Example

    In this example students investigate patterns in the usage of ‘a’ and ‘an’. After studying several examples, they explain when to use each of these indefinite particles. Students conclude by exploring two exceptions to the general rule.

  • Core Subject: English-Language Arts

    Subject: Language

    Grade: 2- 4

    Type: Example

    Common Core : L.3.1a

    Mystery Word X

    View the Example

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

  • Core Subject: English-Language Arts

    Subject: Language

    Grade: 2- 4

    Type: Example

    Common Core : L.3.2e

    Present Participle

    View the Example

    In this example students investigate how the ending letters of a verb affect its spelling as we change tenses. 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: History Social Science

    Subject: US History

    Grade: 8- 9

    Type: Example

    Westward Expansion

    View the Example

    In this example students study the changing boundaries of the United States as the country grew from thirteen colonies in to the fifty states that comprise it today. They use a cloud-based spreadsheet application to create maps of the country after each of several major land acquisitions. Students conclude by studying the maps to investigate the westward expansion of the United States.

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
  • For administrators

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.