Popular Searches

Next generation science.

  • Designing Challenge Based Science Learning
  • Unit Library

What is Computational Thinking?

  • Inclusive Integration of Computational Thinking
  • Data Practices
  • Creating Algorithms
  • Understanding Systems with Computational Models

Computational thinking is an interrelated set of skills and practices for solving complex problems, a way to learn topics in many disciplines, and a necessity for fully participating in a computational world.

Many different terms are used when talking about computing, computer science, computational thinking, and programming. Computing encompasses the skills and practices in both computer science and computational thinking. While computer science is an individual academic discipline, computational thinking is a problem-solving approach that integrates across activities, and programming is the practice of developing a set of instructions that a computer can understand and execute, as well as debugging, organizing, and applying that code to appropriate problem-solving contexts. The skills and practices requiring computational thinking are broader, leveraging concepts and skills from computer science and applying them to other contexts, such as core academic disciplines (e.g. arts, English language arts, math, science, social studies) and everyday problem solving. For educators integrating computational thinking into their classrooms, we believe computational thinking is best understood as a series of interrelated skills and competencies.

A Venn diagram showing the relationship between computer science (CS), computational thinking (CT), programming and computing.

Figure 1. The relationship between computer science (CS), computational thinking (CT), programming and computing.

In order to integrate computational thinking into K-12 teaching and learning, educators must define what students need to know and be able to do to be successful computational thinkers. Our recommended framework has three concentric circles.

  • Computational thinking skills , in the outermost circle, are the cognitive processes necessary to engage with computational tools to solve problems. These skills are the foundation to engage in any computational problem solving and should be integrated into early learning opportunities in K-3.
  • Computational thinking practices , in the middle circle, combine multiple computational skills to solve an applied problem. Students in the older grades (4-12) may use these practices to develop artifacts such as a computer program, data visualization, or computational model.
  • Inclusive pedagogies , in the innermost circle, are strategies for engaging all learners in computing, connecting applications to students’ interests and experiences, and providing opportunities to acknowledge, and combat biases and stereotypes within the computing field.

A pie chart extruding from a Venn diagram to illustrate a framework for computational thinking integration.

Figure 2. A framework for computational thinking integration.

What does inclusive computational thinking look like in a classroom? In the image below, we provide examples of inclusive computing pedagogies in the classroom. The pedagogies are divided into three categories to emphasize different pedagogical approaches to inclusivity. Designing Accessible Instruction refers to strategies teachers should use to engage all learners in computing. Connecting to Students’ Interests, Homes, and Communities refers to drawing on the experiences of students to design learning experiences that are connected with their homes, communities, interests and experiences to highlight the relevance of computing in their lives. Acknowledging and Combating Inequity refers to a teacher supporting students to recognize and take a stand against the oppression of marginalized groups in society broadly and specifically in computing. Together these pedagogical approaches promote a more inclusive computational thinking classroom environment, life-relevant learning, and opportunities to critique and counter inequalities. Educators should attend to each of the three approaches as they plan and teach lessons, especially related to computing.

Examples of inclusive pedagogies for teaching computing

Figure 3. Examples of inclusive pedagogies for teaching computing in the classroom adapted from Israel et al., 2017; Kapor Center, 2021; Madkins et al., 2020; National Center for Women & Information Technology, 2021b; Paris & Alim, 2017; Ryoo, 2019; CSTeachingTips, 2021

Micro-credentials for computational thinking

A micro-credential is a digital certificate that verifies an individual’s competence in a specific skill or set of skills. To earn a micro-credential, teachers submit evidence of student work from classroom activities, as well as documentation of lesson planning and reflection.

Because the integration of computational thinking is new to most teachers, micro-credentials can be a useful tool for professional learning and/or credentialing pathways. Digital Promise has created micro-credentials for Computational Thinking Practices . These micro-credentials are framed around practices because the degree to which students have built foundational skills cannot be assessed until they are manifested through the applied practices.

Visit Digital Promise’s micro-credential platform to find out more and start earning micro-credentials today!

Sign up for updates!

breadcrumb

  • Exploring Computational Thinking

As part of our ongoing partnership with the broader educational community, we are releasing the Google Exploring Computational Thinking resources (including the Computational Thinking for Educators online course) to several practitioner organizations working to support CT teaching and learning globally. The resources, including the curated collection of lesson plans, videos, and other resources were 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. We encourage you to access all these resources at:

International Society for Technology in Education (ISTE)

  • ISTE U – Introduction to Computational Thinking for Every Educator
  • Exploring Computational Thinking resource repository

Australian Digital Technologies Hub

  • Lesson ideas mapped to the Australian Digital Technologies curriculum, based on the original resources developed as Exploring Computational at Google.

CT Overview

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

CT involves a number of skills, including:

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

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

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

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

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

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

CT Materials

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

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

Core Subject: All

Subject: All

Suggested Age: 8-18

Type: Reference

Computational Thinking Concepts Guide

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.

Differentiation Strategies Guide

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.

Student Engagement Strategies Guide

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.

Pseudocode Guide

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.

Introduction to Python

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

Python Basics Quick 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

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.

Suggested Age: 8-12

Ciphering a Sentence

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

Suggested Age: 11-18

Algorithmic Thinking

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.

Suggested Age: 11-14

Divide and Conquer

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.

Water Water Everywhere!

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.

Data Compression

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.

Subject: Data Analysis

Suggested Age: 8-15

Describing an Everyday Object

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.

Exploring Your Environment

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.

Subject: Logic

Suggested Age: 9-12

Machine Testing

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

Solving a Guessing Game with Data

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

Subject: Software Development

Suggested Age: 13-18

Functions and Algorithms

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

Indefinite Articles

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.

Suggested Age: 8-10

Mystery Word X

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.

Present Participle

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.

Finding Patterns in Spelling Errors and History

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.

Suggested Age: 10-14

Writing a Story

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.

Type: Program

Interactive Fiction

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.

Interactive Mad Libs

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.

Interactive Mad Libs (Variation)

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.

Lady Macbeth Chat Bot

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.

Stroke Order of a Chinese Character

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.

Type: 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

Map Visualization

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.

Population Statistics

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

Linear Association

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.

Degrees and Radians

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.

Slope and Y-Intercept

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.

Suggested Age: 13-16

Two Workers

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.

Three Workers

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.

Savings and Interest

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.

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?

DVD Rentals

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?

Theme Park Ride

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.

T Tables for Simple Functions

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.

Suggested Age: 12-16

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.

Quadratic Formula

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.

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.

Factoring Perfect Square Binomial Expressions

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.

Distance, Rate, Time

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.

Binomial Products

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.

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.

Properties of Quadratic Equations

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.

Substitution with Two Equations

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.

Pascal’s Triangle

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.

Vertex of a Quadratic

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.

Roots of an Equation

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.

Conic Sections

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.

Combinations: n choose k

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.

Matrix Multiplication

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.

Logarithm Notation

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.

Determinant of a 3x3 Matrix

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.

Determinant of a 2x2 Matrix

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.

Subject: Arithmetic

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.

Graphing Sums of Dice Rolls

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

Random Number Illustrator

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.

Sum of Two Dice

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.

Subject: Calculus

Suggested Age: 16-18

Instantaneous Rate of Change

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.

Calculating Definite Integrals

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.

Fundamental Theorem of Calculus

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.

Mean and Standard Deviation

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.

Application and Modeling of Standard Deviation

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.

Using Data from Sensors - Introduction

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.

Using Data from Sensors - Filters and Functions

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

Continuous vs Discrete Data - Introduction

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.

Continuous vs Discrete Data - Modeling Continuous Functions

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.

Subject: Geometry

Turtle Geometry

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.

Suggested Age: 13-17

Area of a Circle

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.

Finding the Shortest Path

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.

Suggested Age: 11-16

Pythagorean Theorem - 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.

Acute, Obtuse, and Right Triangles

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.

Calculating Surface Area

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.

Pythagorean Theorem - 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.

Polygonal Formulas

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.

Distance Between Two Points

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.

Area Calculations

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.

Suggested Age: 12-14

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.

Pattern Machine

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.

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.

Suggested Age: 10-12

Logic Party

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.

Subject: Pre-Algebra

Fraction Addition and Common Denominators

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.

Multiplication with Fractions

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.

Suggested Age: 11-13

Ratios and Proportions

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.

Multiplying by Numbers Between Zero and One

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.

Dividing by Numbers Between Zero and One

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.

Common Fractions and Equivalent Percentages

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.

Percent Change

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.

Scientific Notation

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.

Percentages

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

Long Multiplication on Two-Digit Numbers - 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.

Long Multiplication on Two-Digit Numbers - 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.

Fractions and Proportions

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.

Lemonade and Glasses

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?

Evaluating Expressions

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.

Midpoint Between Two Points

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.

Complementary and Supplementary Angles

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.

Populations

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.

Rock Climber, Cliff, and Shadows

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?

Basketball Hoops and Buildings

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?

Fractional Exponents

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.

Subject: Statistics and Probability

Combinations with Repeats

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.

Factorials with Names

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.

Sorting Data

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.

Surveys and Estimating Large Quantities

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.

Randomness in Stochastic Models

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.

Stochastic and Deterministic Modeling

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.

Analyzing Discrete and Continuous Data in a Spreadsheet

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.

Analyzing Discrete and Continuous Data in a Map

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.

Correlation vs Causation

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.

Data Aggregation and Decomposition (Advanced Python)

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.

Data Aggregation and Decomposition (Google Sheets)

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.

The Law of Large Numbers and Probability

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.

Generating Complex Behavior with Algorithms

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.

Subject: Trigonometry

Suggested Age: 12-17

Application of Sin(x) and Cos(x)

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

Making Music with Algorithms

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

Modeling the Genome using Computational Thinking

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.

Modeling GDP and Waste using Computational Thinking

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.

Modeling Natural Selection using Computational Thinking

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.

Suggested Age: 14-17

Cell Biology - Filters

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.

Cell Biology - Filter Design and Construction

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.

Classifying Objects with Computational Thinking

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.

Subject: Chemistry

Modeling Electron Configuration using Computational Thinking

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.

Modeling Radioactive Decay using Computational Thinking

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.

Modeling Boyle's Law using Computational Thinking

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.

Patterns in the Periodic Table

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.

Sorting the World's Cities (Google Sheets)

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.

Sorting the World's Cities (Advanced Python)

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.

What is Data? - Introduction

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.

What is Data? - Code Breaking and Patterns

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.

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.

Subject: Earth Science

Energy Analysis

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.

Subject: Physics

Modeling Projectile Motion using Computational Thinking

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.

Modeling Pendulums using Computational Thinking

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.

Modeling Free Fall using Computational Thinking

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.

Working with Large Tables of Data

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.

Simulating a Bouncing Ball

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

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

  • Computational Thinking for Educators - Online course for learning what CT is and how it can be integrated into a variety of subject areas by exploring examples of CT in your subject area, experimenting with examples of CT-integrated activities, and creating a plan to incorporate it into your classroom
  • Computational Thinking - by Jeannette M. Wing (Communications of the ACM)
  • Bringing Computational Thinking to K-12 - by Valerie Barr and Chris Stephenson (ACM Inroads)
  • Computational Thinking Teacher Resources - provided by ISTE and CSTA
  • Computational Thinking with Scratch - provided byHGSE, EDC, and MIT
  • Introduction to Computational Thinking - provided by Bitesize BBC
  • Computational Fairy Tales (books) by Jeremy Kubica

CT Tips and Strategies

  • Computational Thinking Concepts Guide - Comprehensive list of the CT concepts noted on ECT, including tips on implementing each concept in the classroom
  • Student Engagement Strategies Guide - Research-based strategies for engaging students
  • Differentiation Strategies Guide - Strategies for differentiating instruction in your classroom, based on the groups defined in the Next Generation Science Standards

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

  • Netlogo - Block-based, multi-agent programmable modeling environment
  • CS in Middle School Science - Collection of modules and lessons that augment traditional science instruction with CT through engaging modeling and simulation activities
  • PhET Interactive Simulations - Library of interactive, research-based science simulations of physical phenomena that encourage quantitative exploration
  • Project GUTS (Growing up Thinking Scientifically) Curriculum - Collection of middle school science units integrating CT
  • Wolfram Alpha - Computational knowledge engine for computing answers to queries using facts rather than providing the users with a list of documents or websites

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

CT for School Leaders

  • ISTE Computational Thinking Leadership Toolkit

CT in the Science Classroom

  • Science and Engineering Practices in the NGSS - See “Practice 5 Using Mathematics and Computational Thinking”

Computer Science Education Standards

  • International CS Education Standards crosswalk
  • Computer Science Teachers Association (CSTA) - United States
  • Computing at School (CAS): Primary School and Secondary School - United Kingdom
  • New Zealand

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.

  • About Google
  • Utility Menu

University Logo

CS 32: Computational Thinking and Problem Solving

Semester: , offered: .

This course is an introduction to computational thinking, useful concepts in the field of computer science, and the art of computer programming using Python. It meets  MW 12:45-2pm  in SEC 1.321 ; you may simultaneously enroll in another class at these two times. It also meets for a mandatory session later in the week; you must enroll in either a sesson on Thursdays from 11:15am-12:30pm or on  Fridays from 12:45pm-2pm (both meet in 114 Western Ave 2111+2112 ). Significant emphasis is placed in the class meetings and assignments on learning to use computers to solve real-world problems. I will present new material on Mondays and Wednesdays, and then run Fridays as active learning sessions and an opportunities to start the large programming problem sets together. Throughout the class, I'll introduce concepts and techniques only as they are needed to help solve the problem confronting us. You will learn how to go from an ambiguous problem description to a running solution so that you leave the class knowing how to instruct computers to do what you want them to do. You do not need to have any prior experience in computer science or computer programming.

Prerequisites: None. Antirequisites: This course is equivalent to Computer Science 50 (CS 50) in terms of course credit and fundamental learning outcomes. Students should take either CS 32 or CS 50.

  • Utility Menu

University Logo

66765bdee9aa52c20d12f4e18d6c81dd

Compsci 32: computational thinking and problem solving, semester: , offered: .

COMPSCI 32 is an introduction to computational thinking, useful concepts in the field of computer science, and the art of computer programming using Python. Each class meeting and assignment focuses on learning to use computers to gain insights about the world around us and solve real-world problems, often using real-world data. The material assumes no prior experience in computer science or computer programming.

Register for COMPSCI 32

Explore courses by

  • Applied Computation (2) Apply Applied Computation filter
  • Applied Mathematics (9) Apply Applied Mathematics filter
  • Applied Physics (1) Apply Applied Physics filter
  • Astronomy (1) Apply Astronomy filter
  • Computer Science (9) Apply Computer Science filter
  • Earth & Planetary Sciences (5) Apply Earth & Planetary Sciences filter
  • Economics (4) Apply Economics filter
  • Engineering Sciences (3) Apply Engineering Sciences filter
  • Environmental Science & Engineering (4) Apply Environmental Science & Engineering filter
  • Government (8) Apply Government filter
  • Life Sciences (1) Apply Life Sciences filter
  • Linguistics (1) Apply Linguistics filter
  • Mathematics (11) Apply Mathematics filter
  • Molecular & Cellular Biology (3) Apply Molecular & Cellular Biology filter
  • Physics (8) Apply Physics filter
  • Psychology (1) Apply Psychology filter
  • Sociology (1) Apply Sociology filter
  • Statistics (16) Apply Statistics filter
  • Arts & Humanities (1) Apply Arts & Humanities filter
  • Engineering & Applied Sciences (28) Apply Engineering & Applied Sciences filter
  • Science (46) Apply Science filter
  • Social Science (14) Apply Social Science filter

Prerequisites/Recommended preparation

  • AP Calculus AB (1) Apply AP Calculus AB filter
  • APCOMP 209A/COMPSCI 109A/STAT 109A (5) Apply APCOMP 209A/COMPSCI 109A/STAT 109A filter
  • APCOMP 209b/COMPSCI 109B/STAT 109B (2) Apply APCOMP 209b/COMPSCI 109B/STAT 109B filter
  • APMTH 10 (2) Apply APMTH 10 filter
  • APMTH 21A (5) Apply APMTH 21A filter
  • APMTH 21B (3) Apply APMTH 21B filter
  • APMTH 22A (5) Apply APMTH 22A filter
  • APMTH 22B (2) Apply APMTH 22B filter
  • APPHY 50A (4) Apply APPHY 50A filter
  • APPHY 50B (1) Apply APPHY 50B filter
  • COMPSCI 181 (1) Apply COMPSCI 181 filter
  • COMPSCI 50 (7) Apply COMPSCI 50 filter
  • COMPSCI 51 (1) Apply COMPSCI 51 filter
  • COMPSCI 61 (1) Apply COMPSCI 61 filter
  • ECON 20 (1) Apply ECON 20 filter
  • GOV 50 (3) Apply GOV 50 filter
  • GOV 51 (1) Apply GOV 51 filter
  • LIFESCI 1A (1) Apply LIFESCI 1A filter
  • LIFESCI 1B (1) Apply LIFESCI 1B filter
  • MATH 18A (1) Apply MATH 18A filter
  • MATH 19A (2) Apply MATH 19A filter
  • MATH 1A (2) Apply MATH 1A filter
  • MATH 1B (17) Apply MATH 1B filter
  • MATH 21A (14) Apply MATH 21A filter
  • MATH 21B (14) Apply MATH 21B filter
  • MATH 22A (2) Apply MATH 22A filter
  • MATH 22B (1) Apply MATH 22B filter
  • MATH MA (1) Apply MATH MA filter
  • MATH MB (1) Apply MATH MB filter
  • None (18) Apply None filter
  • PHYSCI 12A (6) Apply PHYSCI 12A filter
  • PHYSCI 12B (2) Apply PHYSCI 12B filter
  • PHYSCI 2 (1) Apply PHYSCI 2 filter
  • PHYSCI 3 (1) Apply PHYSCI 3 filter
  • PHYSICS 143A (1) Apply PHYSICS 143A filter
  • PHYSICS 143B (1) Apply PHYSICS 143B filter
  • PHYSICS 15A (6) Apply PHYSICS 15A filter
  • PHYSICS 15B (2) Apply PHYSICS 15B filter
  • PHYSICS 191 (1) Apply PHYSICS 191 filter
  • PHYSICS 247 (1) Apply PHYSICS 247 filter
  • PSY 1 (1) Apply PSY 1 filter
  • STAT 100 (1) Apply STAT 100 filter
  • STAT 100 (3) Apply STAT 100 filter
  • STAT 104 (1) Apply STAT 104 filter
  • STAT 110 (11) Apply STAT 110 filter
  • STAT 111 (6) Apply STAT 111 filter
  • STAT 139 (5) Apply STAT 139 filter
  • Fall 2024 (42) Apply Fall 2024 filter
  • Spring 2025 (36) Apply Spring 2025 filter
  • Skip to Nav
  • Skip to Main
  • Skip to Footer

Landmark College

Four computational thinking strategies for building problem-solving skills across the curriculum

Please try again

Four light bulbs

Two decades into the 21st century, educators are still tackling the question of how to help young people prepare for a rapidly evolving work landscape . Industry leaders have long called for more emphasis on skills such as critical thinking , communication and problem-solving , though the definitions and methods for teaching all of these can vary widely. At the International Society for Technology in Education conference in July, a number of education leaders and teachers discussed a framework that can help build students’ problem-solving skills in any subject: computational thinking.

Much of the research and discussion on computational thinking in the last twenty years has focused on computer science contexts . Harvard’s Karen Brennan , for example, has led studies and developed resources on computational thinking with Scratch . But several advocates argued that these skills are not just applicable to coding and should be integrated across the curriculum. They outlined four strategies that make up the computational thinking process:

Decomposition - breaking a complex problem into smaller parts or questions

Pattern recognition - identifying trends, differences or similarities in data

Abstraction - removing unnecessary elements or data to focus on what’s useful in solving a problem

Algorithmic design - making steps and rules to solve problems

Most problems will require students to employ multiple strategies. Julie Evans , CEO of the education nonprofit Project Tomorrow, illustrated that point by asking attendees at one session to draw a cat in less than 30 seconds. No drawing looked exactly the same, but the participating educators had to quickly break their mental image of a cat into important parts, such as a tail and whiskers (decomposition). They discarded unnecessary data; for instance, a cat can be conveyed by drawing its head and body or just its face (abstraction). And they envisioned and executed steps to get from a blank page to a completed drawing (algorithmic design).

Bryan Cox, who works in the Georgia Department of Education to broaden computer science education, offered practical and pedagogical reasons for integration. Not all schools offer computer science and even at schools that do, not all students take those classes . For elementary school teachers, stand-alone computer science lessons can feel like one more thing to add to an already packed curriculum. “Integration is less disruptive,” Cox said. He also said integration mirrors how computational thinking occurs in the real world in fields like medicine, automotives, law and sports.

Over the past two years, Project Tomorrow trained 120 teachers in New York City elementary schools to integrate computational thinking into their classrooms. In one example from a second and third grade writing unit, students wrote a realistic fiction story and created a movie to bring the story to life. That may sound like a pretty typical language arts project, but the difference was in the approach, according to Project Tomorrow instructional coach David Gomez. Rather than being told how to write a realistic fiction story, students developed an algorithm for the process, with steps such as making up a pretend character, giving the character a name, imagining the setting and so on. In this example and others, Gomez said that algorithms help students acknowledge the steps they are following during a task and increase their awareness of their work processes.

Gomez works with teachers to help students recognize when they’re using other computational thinking strategies, too. One second grade teacher, for example, used a poster with sticky notes for students to reflect on which strategies they’d used in different subjects throughout the day.

Evans said she loves hearing kids identify the strategies in discussions with each other. She’s heard questions like “Did you try abstraction?” and “Why didn’t you do pattern recognition ?” from students chatting with classmates. “Those little tykes in second grade are already developing their problem-solving muscles, and they’ve got the vocabulary to have that be a sustainable skill for the future,” she said.

Crafting computational problems

Not every question or problem is a computational one. Carolyn Sykora, senior director of the ISTE Standards programs, shared three characteristics that teachers can use to identify a computational problem:

  • It’s open-ended with multiple potential solutions. “How can we design a car to get from point A to point B?” is an example that meets this criteria, whereas “How does a self-driving car work?” is a knowledge-based question.
  • It requires using or collecting data. Data doesn’t just mean numbers. It could, for example, be the lines in a poem or the notes in a musical composition.
  • It includes an opportunity to create a procedure or algorithm. In some cases, such as an engineering challenge, it’s easy to identify where this opportunity will arise. But often that’s not so clear. “Sometimes you don’t understand where the algorithm design comes into play until you do your problem decomposition,” Sykora said.

Using these characteristics can help teachers rethink curriculum, rather than trying to add something new. “We have our tried and true lessons and the things that we want our kids to learn,” Sykora said. The next step is to look at those lessons and ask, “How can we take something that’s knowledge-based and turn it into a computational problem?”

MIT Press

On the site

  • Introduction to Computation and Programming Using Python

Introduction to Computation and Programming Using Python

Introduction to Computation and Programming Using Python , third edition

With application to computational modeling and understanding data.

by John V. Guttag

ISBN: 9780262542364

Pub date: January 5, 2021

  • Publisher: The MIT Press

664 pp. , 7 x 9 in , 140

ISBN: 9780262363433

Pub date: March 2, 2021

eTextbook rental

  • 9780262542364
  • Published: January 2021
  • 9780262363433
  • Published: March 2021
  • MIT Press Bookstore
  • Penguin Random House
  • Barnes and Noble
  • Bookshop.org
  • Books a Million

Other Retailers:

  • Amazon.co.uk
  • Waterstones
  • Description

The new edition of an introduction to the art of computational problem solving using Python.

This book introduces students with little or no prior programming experience to the art of computational problem solving using Python and various Python libraries, including numpy, matplotlib, random, pandas, and sklearn. It provides students with skills that will enable them to make productive use of computational techniques, including some of the tools and techniques of data science for using computation to model and interpret data as well as substantial material on machine learning.

The book is based on an MIT course and was developed for use not only in a conventional classroom but in a massive open online course (MOOC). It contains material suitable for a two-semester introductory computer science sequence.

This third edition has expanded the initial explanatory material, making it a gentler introduction to programming for the beginner, with more programming examples and many more “finger exercises.” A new chapter shows how to use the Pandas package for analyzing time series data. All the code has been rewritten to make it stylistically consistent with the PEP 8 standards. Although it covers such traditional topics as computational complexity and simple algorithms, the book focuses on a wide range of topics not found in most introductory texts, including information visualization, simulations to model randomness, computational techniques to understand data, and statistical techniques that inform (and misinform) as well as two related but relatively advanced topics: optimization problems and dynamic programming. The book also includes a Python 3 quick reference guide.

All of the code in the book and an errata sheet are available on the book's web page on the MIT Press website.

John V. Guttag is the Dugald C. Jackson Professor of Computer Science and Electrical Engineering at MIT.

Additional Material

Table of Contents

Introduction to Computer Science and Programming edX Course

Author's Website with Code and Errata

Author Video - MIT, edX, and OCW Courses

Introduction to Computer Science and Programming OpenCourseWare

Author Video - Accessibility at Different Levels

Author Video - New Chapters and Sections

Author Video - Use of the Book in Courses

Related Books

Essentials of Compilation

advanced search

  • browse resources
  • filing cabinet
  • submit a resource
  • about the PSRC

Computation and Problem Solving in Undergraduate Physics

Computation and Problem Solving in Undergraduate Physics (CPSUP ) is a flexible text providing instruction in the use of computer-based symbolic and numerical approaches to problems in several areas of physics. The book includes descriptions of the main capabilities and features of several computational tools (IDL, MATLAB, OCTAVE, PYTHON, MAXIMA, MAPLE, MATHEMATICA, PROGRAMMING, FORTRAN, LSODE, MUDPACK, C, NUMERICAL RECIPES, LaTeX, and TGIF—though particular versions of CPSUP will typically include only a subset of these tools) and additional chapters illustrating the application of these tools to solving ordinary differential equations, evaluating integrals, finding roots, and solving partial differential equations via finite difference and finite element methods. Appendices introduce LaTeX, a sophisticated text-processing tool well adapted to preparing technical manuscripts, and TGIF, a UNIX-based program for creating elaborate two-dimensional figures. Physical examples are drawn from mechanics, electromagnetic theory, quantum mechanics, statistical mechanics, and several other areas.

The curricular development out of which this book has arisen has been guided since the mid 1970's by Professor David M. Cook and has been carried out in the Department of Physics at Lawrence University, a nationally-ranked liberal arts college and Conservatory of Music with about 1500 students located in Appleton, Wisconsin. A detailed description of that project can be found in Professor Cook's article "Computation in Undergraduate Physics: The Lawrence Approach," Am. J. Phys. 76 , 321–326 (April–May, 2008). This theme issue of the American Journal of Physics was published in conjunction with a Gordon Conference held 8–13 June 2008 on the topic "Computation and Computer-Based Instruction."

Detailed Description of Project: Strengthening Computation in Undergraduate Physics Programs

Briefly, the primary aim of the project Strengthening Computation in Undergraduate Physics Programs is to produce flexible text materials that can be easily tailored for use in programs using a variety of different hardware platforms and software packages. To reflect the availability of a wide variety of software packages, this book can be assembled to include an arbitrarily chosen subset of the available components (IDL, MATLAB, OCTAVE, PYTHON, MAXIMA, MAPLE, Mathematica , FORTRAN, C, Numerical Recipes, LSODE, MUDPACK, LaTeX, and TGIF). With 14 components, each of which can be included or not, there are technically 2 14 = 16,384 versions, though the vast majority of those versions makes no sense. Most commonly a version containing one numeric and graphical tool (IDL, MATLAB, OCTAVE, or PYTHON) and one computer algebra system (MAXIMA, MAPLE, or Mathematica ) with Programming, and LaTeX will be specified. Within that spectrum, only 24 different versions survive, all of which are available for download from this site, both in a linked version convenient for viewing on a computer monitor and in a non-linked version that is better if a printed copy is wanted.

Unfortunately, the level of customization involved poses severe problems for the publishing systems of commercial publishers. Prior to making CPSUP available for direct download, the author had endeavored to self-publish this book by receiving orders for customized assemblages of the materials, producing the required number of bound copies, and shipping them to the end user. As he has approached actual (as opposed to nominal) retirement, he has decided to provide several different assemblages of these materials for direct download to anyone who wishes them.

A more detailed description of the history of this project and of the structure of CPSUP is contained in the 216 KB-8 page PDF document Description of the Second Edition of CPSUP .

CPSUP2023.pdf

Preface and Table of Contents

The front matter in all assemblages of CPSUP contains

  • the Preface,
  • Acknowledgements,
  • a Disclaimer in which the tested platform and tested versions of the software packages are identified, and
  • the Table of Contents.

The first three items are the same in all assemblages of CPSUP . The fourth item in each version contains only those items relevant to the components of that assemblage. The first file below contains the Preface, Acknowledgements, and Disclaimer. The second file contains the full Table of Contents. To examine the Table of Contents as it is in a particular assemblage, visit the Download section, download whichever assemblage is of interest to you, open the file, and scroll to the Table of Contents.

The Table of Contents below includes all chapters and all sections within chapters. If only a subset of components is included in a particular assemblage, the chapters, sections and the occasional exercises related to omitted components will be omitted from the assemblage and also from the Table of Contents. Since chapter numbers, section numbers, subsection, and exercise numbers are preserved, there will then be gaps in those enumerations. Page numbers will, however, run continuously through each assemblage and equation, table, and figure numbers will run continuously through each chapter. References to different versions should be limited to chapter, section, and subsection numbers. References to pages, tables, equations, and figures will not translate accurately among assemblages.

CPSUP-frontmatter1.pdf

Download Selected Assemblage

Each link (the PDF icon next to each item) in the following table will access the indicated version of CPSUP , either for viewing on a computer screen or downloading to your local storage. The linked and print versions are textually identical. In the linked versions, each internal reference (including those in the Table of Contents and Index) is hot-linked to the item to which the reference points. The print version contains no hot-links. The print versions are the better ones to download if you wish to print some or all of the version. The linked versions are better for viewing on the screen. All files are in PDF format.

The two files labeled "Full version except for FORTRAN and C components" contain all components except those involving FORTRAN and C. Each version labeled with two software packages contains the generic components, the components identified in the label, and the LaTeX appendix. The two files labeled "LaTeX only" contain only the LaTeX appendix, the two files labeled "TGIF only" contain only the TGIF appendix, two files labeled "C components only" contain the generic components and the C components, and the two files labeled "FORTRAN components only" contain the generic and FORTRAN components. While the FORTRAN and C versions do not contain the chapters on IDL, MATLAB, OCTAVE, PYTHON, MAXIMA, MAPLE, or MATHEMATICA, those tools are nonetheless used occasionally in the FORTRAN and C versions.

Update Record

The cover page of each version includes the date on which the version was created.  That date is updated with each new printing, and the new printing incorporates all updates available on the date of its creation. The versions placed on this site and dated before 1 January 2021 were replaced in mid January 2021 with versions bearing dates in mid January 2021, the latter differing substantively from the former only in the addition of a section on animation to the OCTAVE chapter. The mid-January 2021 versions were themselves replaced on 22 February 2021 with versions dated 21 February 2021. On 20 February 2023, the February 2021 versions were themselves replaced with versions dated in the period 13-17 February 2023.  The February 2023 versions differ from the February 2021 versions by a number of small edits and by the addition of Chapter 15 treating Partial Differential Equations (PDEs) and Chapter 16 introducing the FORTRAN PDE package MUDPACK.

A dated summary of edits made after 31 January 2021 is compiled in the final item in the list below.

CPSUP-allbutFORCC-linked.pdf

Download Program and Data Files

Through zipped files in two formats ( .zip and .7z ), this section provides access to all of the program and data files referred to at various points in CPSUP . Instructions for unzipping the files are laid out in the README file. When properly unzipped, the zipped files will install everything needed in the appropriate subdirectories of a newly created folder named CPSUP , which in turn is a subdirectory of a user-chosen and user-created directory somewhere in the user's system. The directory CPSUP will contain (a) a single EXCEL spreadsheet listing all of the files in the distribution, (b) the LaTeX source and PDF-formatted files for the README file, and (c) subdirectories named cc , data , fortran , idl , lsode , maple , mathematica , matlab , maxima , mudpack , octave , python , and tex . The resulting folder CPSUP will require about 41 MB of storage.

The downloadable README file below duplicates the one in the distribution and explains how to install the files in the local system. The downloadable EXCEL spreadsheet duplicates the spreadsheet in the zipped files.

README-FILES1.pdf

Download Solutions to Selected Exercises

Each link in the following table will access the available solutions for the indicated tool, either for viewing on a computer screen or downloading to your local storage. The linked and print versions are textually identical. In the linked versions, each internal reference (including those in the Table of Contents) is hot-linked to the item to which the reference points. The print version contains no hot-links. The print versions are the better ones to download if you wish to print some or all of the version. The linked versions are better for viewing on the screen. All files are in PDF format.

Clicking on the PDF icon next to an item brings up a box in which you can choose to open the identified version in an appropriate reader or to download the version.

Each pair of files below contains all available solutions for the tool identified in the title. The C files include solutions using Numerical Recipes; the FORTRAN files include solutions using LSODE, Numerical Recipes, and MUDPACK.

The files below were created in the period 17-19 February 2023 and uploaded to this site on 20 February 2023. The files below replaced differently structured files uploaded to this site on 26 May 2021.

CPSUPsolns-IDLonly-linked.pdf

The Local Guide

This section provides links to the Local Guide used at Lawrence in the recent past as well as a link to a zipped file containing

  • the source code for the Lawrence version of the Local Guide and
  • a README file explaining how to use the source files to create a version appropriate for your site.

The described procedure assumes that you have a reasonably updated version of LaTeX installed in your system.

The linked and print versions are textually identical. In the linked versions, each internal reference (including those in the Table of Contents and Index) is hot-linked to the item to which the reference points. The print version contains no hot-links. The print versions are the better ones to download if you wish to print some or all of the version. The linked versions are better for viewing on the screen. All files are in PDF format.

Clicking on the icon next to an item brings up a box in which you can select either to open the file in an appropriate reader or download the file.

LUlocalguide-linked1.pdf

Other contributions by Professor Cook:

  • Theory of the Electromagnetic Field
  • Theory of Experiment

Creative Commons License

Computational Skills

  • Reference work entry
  • Cite this reference work entry

computation and problem solving

  • Molly Millians 3  

1180 Accesses

2 Citations

Arithmetic operations ; Calculation ; Computation ; Computational fluency ; Mental computation

Computational skills are the selection and application of arithmetic operations to calculate solutions to mathematical problems.

Description

Arithmetic encompasses a set of mathematic processes that include number sense, the understanding of mathematic principles such as the associative and commutative properties, and computational skills. Specifically, computational skills are defined as the abilities to calculate basic addition, subtraction, multiplication, and division problems quickly and accurately using mental methods, paper-and-pencil, and other tools, such as a calculator. This requires the selection of the appropriate arithmetic operation. Also, computational skills require the execution of the steps to calculate the solution. The term computational fluency expands the definition to include the flexible application of calculation strategies and the automatic recall of...

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
  • Available as EPUB and PDF
  • Durable hardcover edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Baroody, A. (2003). The development of adaptive expertise and flexibility: The integration of conceptual and procedural knowledge. In A. Baroody & A. Dowker (Eds.), The development of arithmetic concepts and skills: Constructing adaptive expertise (pp. 1–33). Mahwah, NJ: Lawrence Erlbaum.

Google Scholar  

National Council of Teachers of Mathematics. (2000). Principals and standards for school mathematics . Reston, VA: NCTM.

National Research Council (2001). Adding it up: Helping children learn mathematics. In J. Kilpatrick, J. Swafford, & B. Findell (Eds.), Mathematics Learning Study Committee, Center for Education, Division of Behavioral and Social Sciences and Education. Washington, DC: National Academy Press.

Mabbott, D., & Bisanz, J. (2008). Computational skills, working memory, and conceptual knowledge in older children with mathematics learning disabilities. Journal of Learning Disabilities, 41 (1), 15–28.

PubMed   Google Scholar  

Varol, F., & Farran, D. (2007). Elementary school students’ mental computation proficiencies. Early Childhood Education Journal, 35 (1), 89–94.

Download references

Author information

Authors and affiliations.

Fetal Alcohol & Drug Exposure Clinic, Marcus Autism Center, Atlanta, Georgia, USA

Molly Millians

You can also search for this author in PubMed   Google Scholar

Corresponding author

Correspondence to Molly Millians .

Editor information

Editors and affiliations.

Neurology, Learning and Behavior Center, 230 South 500 East, Suite 100, Salt Lake City, Utah, 84102, USA

Sam Goldstein Ph.D.

Department of Psychology MS 2C6, George Mason University, Fairfax, VA, 22030, USA

Jack A. Naglieri Ph.D. ( Professor of Psychology ) ( Professor of Psychology )

Rights and permissions

Reprints and permissions

Copyright information

© 2011 Springer Science+Business Media, LLC

About this entry

Cite this entry.

Millians, M. (2011). Computational Skills. In: Goldstein, S., Naglieri, J.A. (eds) Encyclopedia of Child Behavior and Development. Springer, Boston, MA. https://doi.org/10.1007/978-0-387-79061-9_645

Download citation

DOI : https://doi.org/10.1007/978-0-387-79061-9_645

Publisher Name : Springer, Boston, MA

Print ISBN : 978-0-387-77579-1

Online ISBN : 978-0-387-79061-9

eBook Packages : Behavioral Science

Share this entry

Anyone you share the following link with will be able to read this content:

Sorry, a shareable link is not currently available for this article.

Provided by the Springer Nature SharedIt content-sharing initiative

  • Publish with us

Policies and ethics

  • Find a journal
  • Track your research

Secondary Menu

Programming and problem solving, compsci 94fs, enroll consent.

Department Consent Required

Drop Consent

Curriculum codes, typically offered.

  • CS 50th Anniversary
  • Computing Resources
  • Event Archive
  • Location & Directions
  • AI for Social Good
  • Computational Social Choice
  • Computer Vision
  • Machine Learning
  • Natural Language Processing (NLP)
  • Reinforcement Learning
  • Search and Optimization
  • Computational Biochemistry and Drug Design
  • Computational Genomics
  • Computational Imaging
  • DNA and Molecular Computing
  • Algorithmic Game Theory
  • Social Choice
  • Computational Journalism
  • Broadening Participation in Computing
  • CS1/CS2 Learning, Pedagogy, and Curricula
  • Education Technology
  • Practical and Ethical Approaches to Software and Computing
  • Interdisciplinary Research in Data Science
  • Security & Privacy
  • Architecture
  • Computer Networks
  • Distributed Systems
  • High Performance Computing
  • Operating Systems
  • Quantum Computing
  • Approximation and Online Algorithms
  • Coding and Information Theory
  • Computational Complexity
  • Geometric Computing
  • Graph Algorithms
  • Numerical Analysis
  • Programming Languages
  • Why Duke Computer Science?
  • BS Concentration in Software Systems
  • BS Concentration in Data Science
  • BS Concentration in AI and Machine Learning
  • BA Requirements
  • Minors in Computer Science
  • 4+1 Program for Duke Undergraduates
  • IDM in Math + CS on Data Science
  • IDM in Linguistics + CS
  • IDM in Statistics + CS on Data Science
  • IDM in Visual & Media Studies (VMS) + CS
  • Graduation with Distinction
  • Independent Study
  • Identity in Computing Research
  • CS+ Summer Program
  • CS Related Student Organizations
  • Undergraduate Teaching Assistant (UTA) Information
  • Your Background
  • Schedule a Visit
  • All Prospective CS Undergrads
  • Admitted or Declared 1st Majors
  • First Course in CS
  • Duties and Commitment
  • Compensation
  • Trinity Ambassadors
  • Mentoring for CS Graduate Students
  • MSEC Requirements
  • Master's Options
  • Financial Support
  • MS Requirements
  • Concurrent Master's for Non-CS PhDs
  • Admission & Enrollment Statistics
  • PhD Course Requirements
  • Conference Travel
  • Frequently Asked Questions
  • Additional Graduate Student Resources
  • Graduate Awards
  • Undergraduate Courses
  • Graduate Courses
  • Spring 2024 Classes
  • Fall 2023 Classes
  • Spring 2023 Classes
  • Course Substitutions for Majors & Minors
  • Course Bulletin
  • Course Registration Logistics
  • Assisting Duke Students
  • For Current Students
  • Alumni Lectures - Spring 2024
  • News - Alumni
  • Primary Faculty
  • Secondary Faculty
  • Adjunct and Visiting Faculty
  • Emeriti - In Memoriam
  • Postdoctoral Fellows
  • Ph.D. Program
  • Masters in Computer Science
  • Masters in Economics and Computation
  • Affiliated Graduate Students
  • Our Mission

Computational Thinking for Kindergartners

Songs and games can be used to teach the basics of computer science to young students in age-appropriate ways—without a screen.

Teacher helping a group of kindergarten students with a project.

Teaching computational thinking to preschool and kindergarten students? This may sound out of sync with what we know about developmentally appropriate activities for 4- and 5-year-olds, as computational thinking refers to the skills, concepts, and behaviors used in computer science to solve problems or complete projects. But my state of Virginia and others now require computational thinking instruction in grades K to 12 .

Why? Schools must constantly look ahead to see what skills will be necessary in in their students’ lifetimes. The ways they will work, interact, and communicate will continue to evolve, and the young children of today will need to be fluent in the types of thinking that will drive many of the tools and services of tomorrow.

Much of the content in preschool and kindergarten is taught with hands-on manipulatives, games, and songs, and with thoughtful planning, young children can engage in such activities and develop computational thinking in age-appropriate ways. For example, at this young age, we can begin to scaffold an understanding of algorithms, sequencing, events, conditionals, and repeat loops.

Teaching Computational Thinking in Preschool and Kindergarten

An algorithm is a set of instructions used to complete a task, and the sequence, or order, of the steps is important. You can teach this concept by acting out or describing the instructions for any familiar activity—putting on shoes, brushing teeth, feeding a pet.

Ask children to create picture cards to sequence a “program” for that activity. Demonstrate what happens when the sequence is changed. Or read a picture book in which a character travels to a clear sequence of locations. Write a “program” for the character’s movement, and then, using a map and a doll, run the program by moving the doll to each location on the map.

An event is a trigger that causes an algorithm or program to run, and conditionals define the set of conditions that must be present to run the program. Ringing bells, clapping hands, and turning lights on or off are all familiar events that teachers use as signals for classroom transitions. They can easily be turned into conditional statements: “If it is raining when the bell rings for recess…” or “If I am standing by the door when I clap my hands….” Age-old games like Red Light, Green Light and Simon Says can also be adapted to teach the concept of events and conditionals, while incorporating movement and playfulness.

Repeat loops signal how many times a command or sequence of commands should be repeated. In students’ lives, each meal is a repeat loop of delivering a bite of food to the mouth, chewing, and swallowing. Our daily routines are repeat loops of waking, dressing, eating, going to school, returning home, playing, eating, undressing, and going to bed.

These routines can be turned into “if, then, else” statements: “If the bowl has cereal in it, then repeat the eat loop, else put the spoon down.” “If it is a weekday, then repeat the school loop, else sleep late and play all day.”

Songs and dances can be an active and fun way to teach the concept of repeat loops since many have repeating lyrics and movements.

These concepts can be further reinforced through work and play with age-appropriate programming apps and robots, but do some detective work on the research that went into their development. Determine if they foster passive use or, preferably, active problem solving and creativity. The ScratchJr programming app and the Kibo robot are both supported by a hefty amount of research and were carefully designed to match the abilities, interests, and developmental stages of preschool and primary grade children. They provide children with opportunities to plan, take risks, problem solve, iterate, and perhaps most importantly, persist as they design, build, and solve problems in a playful way.

If you decide to add screen time to the classroom, limit the amount and be aware of how much screen time is happening in other classes and at home. Children need a healthy balance with other kinds of age-appropriate activities. The American Association of Pediatrics and Common Sense Media offer screen time guidelines and suggestions for each age group.

Developing computational thinking is important, but perhaps more important is developing behaviors for working with others and dealing with frustration. By asking children to work with partners or in groups, we can nurture communication, cooperation, and empathy.

If we wait until children are in middle school to begin working with code and robots, we’ve missed out on an opportunity to make it easy and fun. The bonus of starting early is the opportunity to teach some important social and emotional skills along the way. As we become more adept at building and programing machines to do our work, these skills play a large part in helping us make the ethical decisions about what these machines can do, how they will do it, and who will have access to them.

computation and problem solving

  • Computers & Technology
  • Programming Languages

Kindle app logo image

Download the free Kindle app and start reading Kindle books instantly on your smartphone, tablet, or computer - no Kindle device required .

Read instantly on your browser with Kindle for Web.

Using your mobile phone camera - scan the code below and download the Kindle app.

QR code to download the Kindle App

Follow the author

Steven R. Lerman

Image Unavailable

Problem Solving and Computation for Scientists and Engineers: An Introduction Using C

  • To view this video download Flash Player

Problem Solving and Computation for Scientists and Engineers: An Introduction Using C 1st Edition

  • ISBN-10 0134821262
  • ISBN-13 978-0134821269
  • Edition 1st
  • Publisher Prentice Hall
  • Publication date December 9, 1992
  • Language English
  • Dimensions 7.25 x 1 x 9.75 inches
  • Print length 544 pages
  • See all details

Amazon First Reads | Editors' picks at exclusive prices

Editorial Reviews

From the publisher, from the back cover.

For computer programmers and software engineers.

Product details

  • Publisher ‏ : ‎ Prentice Hall; 1st edition (December 9, 1992)
  • Language ‏ : ‎ English
  • Textbook Binding ‏ : ‎ 544 pages
  • ISBN-10 ‏ : ‎ 0134821262
  • ISBN-13 ‏ : ‎ 978-0134821269
  • Item Weight ‏ : ‎ 2.12 pounds
  • Dimensions ‏ : ‎ 7.25 x 1 x 9.75 inches
  • #1,373 in C Programming Language
  • #12,436 in Computer Programming Languages
  • #15,164 in Introductory & Beginning Programming

About the author

Steven r. lerman.

Discover more of the author’s books, see similar authors, read author blogs and more

Customer reviews

Customer Reviews, including Product Star Ratings help customers to learn more about the product and decide whether it is the right product for them.

To calculate the overall star rating and percentage breakdown by star, we don’t use a simple average. Instead, our system considers things like how recent a review is and if the reviewer bought the item on Amazon. It also analyzed reviews to verify trustworthiness.

Solver Title

Practice

Generating PDF...

  • Pre Algebra Order of Operations Factors & Primes Fractions Long Arithmetic Decimals Exponents & Radicals Ratios & Proportions Percent Modulo Number Line Expanded Form Mean, Median & Mode
  • Algebra Equations Inequalities System of Equations System of Inequalities Basic Operations Algebraic Properties Partial Fractions Polynomials Rational Expressions Sequences Power Sums Interval Notation Pi (Product) Notation Induction Logical Sets Word Problems
  • Pre Calculus Equations Inequalities Scientific Calculator Scientific Notation Arithmetics Complex Numbers Polar/Cartesian Simultaneous Equations System of Inequalities Polynomials Rationales Functions Arithmetic & Comp. Coordinate Geometry Plane Geometry Solid Geometry Conic Sections Trigonometry
  • Calculus Derivatives Derivative Applications Limits Integrals Integral Applications Integral Approximation Series ODE Multivariable Calculus Laplace Transform Taylor/Maclaurin Series Fourier Series Fourier Transform
  • Functions Line Equations Functions Arithmetic & Comp. Conic Sections Transformation
  • Linear Algebra Matrices Vectors
  • Trigonometry Identities Proving Identities Trig Equations Trig Inequalities Evaluate Functions Simplify
  • Statistics Mean Geometric Mean Quadratic Mean Average Median Mode Order Minimum Maximum Probability Mid-Range Range Standard Deviation Variance Lower Quartile Upper Quartile Interquartile Range Midhinge Standard Normal Distribution
  • Physics Mechanics
  • Chemistry Chemical Reactions Chemical Properties
  • Finance Simple Interest Compound Interest Present Value Future Value
  • Economics Point of Diminishing Return
  • Conversions Roman Numerals Radical to Exponent Exponent to Radical To Fraction To Decimal To Mixed Number To Improper Fraction Radians to Degrees Degrees to Radians Hexadecimal Scientific Notation Distance Weight Time Volume
  • Pre Algebra
  • Pre Calculus
  • Linear Algebra
  • Trigonometry
  • Conversions

Click to reveal more operations

Most Used Actions

Number line.

  • x^{2}-x-6=0
  • -x+3\gt 2x+1
  • line\:(1,\:2),\:(3,\:1)
  • prove\:\tan^2(x)-\sin^2(x)=\tan^2(x)\sin^2(x)
  • \frac{d}{dx}(\frac{3x+9}{2-x})
  • (\sin^2(\theta))'
  • \lim _{x\to 0}(x\ln (x))
  • \int e^x\cos (x)dx
  • \int_{0}^{\pi}\sin(x)dx
  • \sum_{n=0}^{\infty}\frac{3}{2^n}
  • Is there a step by step calculator for math?
  • Symbolab is the best step by step calculator for a wide range of math problems, from basic arithmetic to advanced calculus and linear algebra. It shows you the solution, graph, detailed steps and explanations for each problem.
  • Is there a step by step calculator for physics?
  • Symbolab is the best step by step calculator for a wide range of physics problems, including mechanics, electricity and magnetism, and thermodynamics. It shows you the steps and explanations for each problem, so you can learn as you go.
  • How to solve math problems step-by-step?
  • To solve math problems step-by-step start by reading the problem carefully and understand what you are being asked to find. Next, identify the relevant information, define the variables, and plan a strategy for solving the problem.
  • Practice Makes Perfect Learning math takes practice, lots of practice. Just like running, it takes practice and dedication. If you want...

Please add a message.

Message received. Thanks for the feedback.

icon

Computation and Problem-Solving Strategies

One of the most difficult areas identified by after-school staff is helping students with math. We include some tips on helping students who are being taught computation with some newer and more traditional strategies. We also provide a model for helping students think through word problems that has emerged from high-achieving East Asian countries.

A. Strategies that use and build number sense

Addition and subtraction: Working with ten(s) Help students use numbers that are easy to work with. Get the very young to work with 10. It is easy to add numbers that end in zero in your head. Students should become very comfortable with all the combinations that make 10!

B. Multiplication and division

Children need to understand that multiplying is counting by groups of things, each group having the same quantity. Help them see how the tables are built one group at a time. Some solution strategies that help students understand the multiplication algorithm are:

1. Build an array to show the meaning of multiplication.

(4 rows of 12)

2. T-tables. These numbers can be recorded in a t-table that gives meaning to the multiplication tables.

Later, students can begin reasoning with such tables and not have to write every number.

3. Area models

These models are more abstract and can allow students to see partial products and can eventually be linked to the traditional algorithm.

Begin by building an array model with base-10 blocks. Students must know how to break numbers apart by place value to do this. Here is an illustration for 24 x 45. (You would start with something simpler, such as 8 x 12.)

24 is split into 20 and 4. 45 is split into 40 and 5.

There are eight 100 blocks or 8 x 100 = 800. There are 26 blocks of 10 or 26 x 10 = 260. There are 20 blocks of 1 or 20 x 1 = 20.

800 260 + 20 1080

Eventually students chunk numbers and draw four large blocks. This mirrors the fundamental distributive property.

800 + 160 = 960 100 + 20 = 120 960 + 120 = 1,080

Then you can connect the numbers from the area model to a multiplication problem. Keep the full quantities visible at first. It is 20 times 40 not 2 times 4. When this level is clear, do the same thing but show how you can start the calculation in ones place. Continue to record the full quantities. Finally, when that routine is comfortable, show how the traditional algorithm is another way of doing the same thing. This time not all the partial products are recorded. There is some remembering in the head that you have more tens. What is very tricky is that they cannot be added to the tens place number until that multiplication has been done. Students who have difficulty “moving over” or remembering when to add in the regrouped figures should be allowed to write the complete numbers as partial products.

4. Division

The language used for division can be an impediment to students understanding what division is all about. For example, to say “9 goes into 81, 9 times” is difficult to visualize. What does that mean? Why does it “go in” so many times? Ask instead, how many groups of 9 are there in 81?

Before students are forced to think abstractly, help them understand what these numbers stand for. Since division is the inverse of multiplication, we are still dealing with groups. In the problem 3,528 divided by 24, they are finding how many groups of 24 there are in 3,528 or how many groups of size 24 could be made. Could there be 100? Certainly. 100 x 24 is 2,400. That leaves 1,128. Then some students might recognize there are at least 20 more. Others might stick with thinking 10 more at a time.

Math problem page 78

As they work through the problem, help them understand what has been accounted for so far and how many more are still left to put into groups.

  • Connect With a School Now!

Top Trade School

Computation & Problem Solving Practice Test

This is a short math practice test with questions and answers related to computation and problem solving.

#1 21 birds is correct

#2 -85 is correct

#3 6 stickers is correct

#4 8 1/12 miles

#5 $ 99.89 is correct

#6 32 students is correct

#7 $ 32.30 is correct

#8 3 is correct

#9 3($3.50 – $1.75) $3.50

Try again 🙂

Share your score!

#1. Keiko spent the day bird watching and counted 34 more birds in the morning than in the afternoon. If she counted a total of 76 birds, how many birds did she count in the afternoon?

21 birds is correct

#2. The expression –105 + (–14) + 34 simplifies to which of the following?

-85 is correct

#3. A teacher has three packages of stickers. One package contains 56 stickers, another package contains 48 stickers, and the third package contains 58 stickers. If the teacher divides all the stickers equally among 27 students, how many stickers will each student receive?

6 stickers is correct

#4. Last week Mario walked 7 3/4 miles. This week he walked 15 5/6 miles. What is the difference between the distance he walked this week and the distance he walked last week?

8 1/12 miles is correct

#5. A sporting goods store is offering a 10% discount on in-line skates that normally cost $110.99. How much will the in-line skates cost with the discount, not including tax?

$ 99.89 is correct

#6. At the beginning of a class period, half of the students in a class go to the library. Later in the period, half of the remaining students go to the computer lab. If there are 8 students remaining in the class, how many students were originally in the class?

32 students is correct

#7. Peter works 38 hours per week and earns $7.25 per hour. His employer gives him a raise that increases his weekly gross pay to $307.80. What is the increase in Peter’s weekly gross pay?

$ 32.30 is correct

#8. Solve for y when y – 2 + 3y = 10

3 is correct

#9. Tony buys 4 notebooks for $3.50 each at a store. The next day he returns to the store and exchanges the notebooks for 3 notebooks that have gone on sale for $1.75 each. Antonio uses the following expression to calculate the amount of money he should receive back from the exchange. (4 × $3.50) – (3 × $1.75) Which of the following expressions could Antonio have also used?

3($3.50 – $1.75) $3.50 is correct

Correct answers shown at end of test.

Search Top Trade School

Top trade school articles.

  • Guide to Getting a Job as a Drone Operator
  • Fast Trade School Programs (1 Month to 1 Year)
  • Home Technology Integration Specialist Job Description
  • 10 Trade School Programs Without Much Math
  • A Comprehensive Guide to “Skilled Trades”

Find CDL Training

CDL Training Near Me

Truck Driving Jobs

Warehouse Jobs

IMAGES

  1. How can we use computational thinking to solve business problems

    computation and problem solving

  2. What IS Problem-Solving?

    computation and problem solving

  3. Problem-Solving Strategies: Definition and 5 Techniques to Try

    computation and problem solving

  4. Introduction to Problem Solving| Steps of Problem Solving-Computer

    computation and problem solving

  5. PPT

    computation and problem solving

  6. Core Concepts Of Computational Thinking For Problem Solving

    computation and problem solving

VIDEO

  1. Art of Problem Solving: Probability and Combinations Part 2

  2. [Tagalog] Solve problem about #arithmeticsequence #solvingproblem #math10 #solvingarithmeticsequence

  3. Theory of Computation Lecture: Product Construction Example + NFAs

  4. F.Y.B.Sc.(C.S.)|Sem-I |CS-111: Problem Solving using Computer and C Programming

  5. Theory of Computation Lecture: Chomsky Normal Form

  6. Theory of Computation, Lecture 5 (of 22), Professor Gabriel Robins (2017)

COMMENTS

  1. Computational Thinking for Problem Solving

    Computational thinking is a problem-solving process in which the last step is expressing the solution so that it can be executed on a computer. However, before we are able to write a program to implement an algorithm, we must understand what the computer is capable of doing -- in particular, how it executes instructions and how it uses data.

  2. How to Use Computational Thinking to Solve Problems Like a Pro

    Computational thinking. Computational thinking is exactly what you imagine it to be. It is a way of thinking like a computer. In fact, we already use it in our everyday lives. When we cook a meal or get ready for work. When we budget for the weekly shop or plan a trip to the coast. Computational thinking just means using a set process in which ...

  3. What is Computational Thinking?

    Computational thinking skills, in the outermost circle, are the cognitive processes necessary to engage with computational tools to solve problems. These skills are the foundation to engage in any computational problem solving and should be integrated into early learning opportunities in K-3. Computational thinking practices, in the middle ...

  4. Computational thinking

    Computational thinking (CT) refers to the thought processes involved in formulating problems so their solutions can be represented as computational steps and algorithms. In education, CT is a set of problem-solving methods that involve expressing problems and their solutions in ways that a computer could also execute. It involves automation of processes, but also using computing to explore ...

  5. Discovering computational thinking in everyday problem solving: A

    There is a dearth of evidence on how computational thinking augments everyday problem solving when it is decontextualized from programming. Objectives. In this study, we examined how computational thinking, when untangled from the haze of programming, is demonstrated in everyday problem solving, and investigated the features of such solvable ...

  6. Exploring Computational Thinking

    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.

  7. Computational problem

    In theoretical computer science, a computational problem is a problem that may be solved by an algorithm.For example, the problem of factoring "Given a positive integer n, find a nontrivial prime factor of n.". is a computational problem. A computational problem can be viewed as a set of instances or cases together with a, possibly empty, set of solutions for every instance/case.

  8. CS 32: Computational Thinking and Problem Solving

    This course is an introduction to computational thinking, useful concepts in the field of computer science, and the art of computer programming using Python. It meets MW 12:45-2pm in SEC 1.321; you may simultaneously enroll in another class at these two times. It also meets for a mandatory session later in the week; you must enroll in either a sesson on Thursdays from 11:15am-12:30pm or on ...

  9. COMPSCI 32: Computational Thinking and Problem Solving

    COMPSCI 32 is an introduction to computational thinking, useful concepts in the field of computer science, and the art of computer programming using Python. Each class meeting and assignment focuses on learning to use computers to gain insights about the world around us and solve real-world problems, often using real-world data. The material ...

  10. Four computational thinking strategies for building problem-solving

    Two decades into the 21st century, educators are still tackling the question of how to help young people prepare for a rapidly evolving work landscape.Industry leaders have long called for more emphasis on skills such as critical thinking, communication and problem-solving, though the definitions and methods for teaching all of these can vary widely.

  11. Introduction to Computation and Programming Using Python

    The new edition of an introduction to the art of computational problem solving using Python.This book introduces students with little or no prior programming...

  12. Promoting pupils' computational thinking skills and self ...

    Computational thinking (CT) is a fundamental skill and an analytical ability that children in the twenty-first century should develop. Students should begin to work with algorithmic problem-solving and computational methods in K-12. Drawing on a conceptual framework (IGGIA) that combines CT and problem-solving, this study designed and implemented an interdisciplinary Scratch course in a ...

  13. Computation and Problem Solving in Undergraduate Physics

    Computation and Problem Solving in Undergraduate Physics (CPSUP) is a flexible text providing instruction in the use of computer-based symbolic and numerical approaches to problems in several areas of physics.The book includes descriptions of the main capabilities and features of several computational tools (IDL, MATLAB, OCTAVE, PYTHON, MAXIMA, MAPLE, MATHEMATICA, PROGRAMMING, FORTRAN, LSODE ...

  14. Computational Skills

    Computation is one component of the skills needed to be proficient in mathematics. Children need to understand the underlying mathematical concepts to support computation and problem solving. Also, children need to select and apply procedures and strategies flexibly to compute problems accurately.

  15. Programming and Problem Solving

    COMPSCI 94FS. Programming and problem solving in a specific domain such as designing and implementing games, robotics, virtual worlds, web programming, biology, genomics, or computer science. Students learn the basics of programming by studying problems in one application area.

  16. PDF Computation and Intelligence in Problem Solving

    NARS, is introduced, whose problem solving activities cannot be referred to as computation, though the system is still implemented in an ordinary computer. 1 Problem Solving as Computation Turing machine is a mathematical model of computer. A Turing machine M has a finite number of states, and among them there is one initial state 1

  17. Problem Solving and Computational Skill: Are They Shared or Distinct

    The purpose of this study was to explore patterns of difficulty in 2 domains of mathematical cognition: computation and problem solving. Third graders (n = 924; 47.3% male) were representatively sampled from 89 classrooms; assessed on computation and problem solving; classified as having difficulty with computation, problem solving, both domains, or neither domain; and measured on 9 cognitive ...

  18. Computational Thinking for Kindergartners

    Teaching Computational Thinking in Preschool and Kindergarten. An algorithm is a set of instructions used to complete a task, and the sequence, or order, of the steps is important. You can teach this concept by acting out or describing the instructions for any familiar activity—putting on shoes, brushing teeth, feeding a pet. Ask children to ...

  19. Problem Solving and Computation for Scientists and Engineers: An

    Unique in its approach, this introduction to computation shows how to think algorithmically and focuses on problem solving with the C programming language. It considers many different algorithmic areas, including numerical methods, matrix methods, sorting, searching, graphics and simulation, and introduces object-oriented programming methods ...

  20. Step-by-Step Calculator

    To solve math problems step-by-step start by reading the problem carefully and understand what you are being asked to find. ... define the variables, and plan a strategy for solving the problem. Show more; en. Related Symbolab blog posts. Practice Makes Perfect. Learning math takes practice, lots of practice. Just like running, it takes ...

  21. Lower time bounds for parallel solving of the subset sum problem by a

    Concurrency and Computation: Practice and Experience is a computer science journal publishing research and reviews on parallel and distributed computing. Summary In the paper, we compute some lower bounds on time of parallel solving of the subset sum problem on a big number of processors by several versions of dynamic programming algorithm ...

  22. Computation and Problem-Solving Strategies

    Children need to understand that multiplying is counting by groups of things, each group having the same quantity. Help them see how the tables are built one group at a time. Some solution strategies that help students understand the multiplication algorithm are: 1. Build an array to show the meaning of multiplication. (4 rows of 12) 4 x 12.

  23. Exploring the effect of problem-solving laboratory on computational

    Computational thinking skill is a new framework that belongs to the hybrid modes of thinking. This study aims to explore the effect of the problem-solving laboratory and gender in practicing computational thinking skills. Learning media is pursued by designing experimental-based learning using smartphone sensors. A smartphone sensor was used to facilitate students to measure physical ...

  24. Computation & Problem Solving

    Computation & Problem Solving Practice Test. This is a short math practice test with questions and answers related to computation and problem solving. #1. Keiko spent the day bird watching and counted 34 more birds in the morning than in the afternoon. If she counted a total of 76 birds, how many birds did she count in the afternoon?

  25. Evolution of Hybrid Cellular Automata for Density Classification Problem

    This paper describes a solution for the image density classification problem (DCP) using an entirely distributed system with only local processing of information named cellular automata (CA). The proposed solution uses two cellular automata's features, density conserving and translation of the information stored in the cellular automata's cells through the lattice, in order to obtain the ...