ProgramsExploring Computational Thinking Overview

# 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.

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 .

• 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 practices 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: Algorithms and Complexity

Suggested Age: 14-18

Type: Lesson

### Data Compression

View the Lesson Plan

This lesson introduces students to the need for data compression and methods for reducing the amount of data in both text and images by applying a filter. By looking for patterns and adjusting the algorithm based on the results, students will learn to reduce the memory size with minimal impact on the quality.

• 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

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

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

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

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: English-Language Arts

Subject: Language

Suggested Age: 8-18

Type: Exploration

### Chatbot

View the Exploration

This exploration gives students algorithms they can modify to improve the virtual Countess Ada Lovelace's ability to respond to questions.

• 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

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

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

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

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: 14-18

Type: Exploration

### Turtle Geometry

View the Exploration

This exploration provides students an opportunity to understand the relationship between the number of sides in a regular polygon and its angles. Students will draw shapes using simple commands like 'turn right 90 degrees' and 'move forward 100 steps' and use the patterns they find to write an algorithm for drawing any regular polygon.

• 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: Computer Science

Subject: Algorithms and Complexity

Suggested Age: 14-18

Type: Lesson

### Finding the Shortest Path

View the Lesson Plan

This lesson invites students to develop a process for traveling across the country in the most efficient way possible. Students will refine their process after experimenting with smaller networks of points as well as a varient of the Traveling Salesperson problem.

• 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

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

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 (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: Statistics and Probability

Suggested Age: 14-18

Type: Lesson

### Generating Complex Behavior with Algorithms

View the Lesson Plan

This lesson plan provides examples of complex behavior that students can explore such as flipping a coin and cellular automata. Students can modify the algorithms to see the impact it has on the behavior.

• 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: Music

Subject: Music

Suggested Age: 11-18

Type: Lesson

### Making Music with Algorithms

View the Lesson Plan

This lesson plan allows students to examine the various aspects of music such as scales, melody, and rhythm. The patterns they discover will enable them to modify an algorithm to improve the quality of the music generated by the algorithm.

• 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: Biology

Suggested Age: 8-12

Type: Exploration

### Classifying Objects with Computational Thinking

View the Exploration

This exploration uses the game '20 Questions' to have students estimate the number of questions necessary to guess any species on Earth. Students will first examine a few smaller classification examples using only 'yes' and 'no' questions, and then will generalize these patterns to develop an equation for classifying any object.

• 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 (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.

• Core Subject: Science

Subject: Physics

Suggested Age: 14-18

Type: Exploration

### Simulating a Bouncing Ball

View the Exploration

This exploration breaks down the components of motion so students can understand and improve an algorithm for making a ball bounce.

# 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
• Bebras Challenge: Anytime computing challenges and tasks to introduce students to computational and logical thinking
• 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

CT in the Science Classroom

Computer Science Education Standards

# 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.