Computational Thinking

Computational ThinkingCoding

Technology, computational thinking

Learning Objectives

  • Define computational thinking (CT);
  • Explain the rationale for including CT as part of core curriculum;
  • Understand research-based best practices for integrating CT with other core content at your grade level;
  • Access a wide variety of resources designed to enable you to integrate CT at your grade level.

In today's high-tech and ever-changing world, it is increasingly clear that students need to be able to think critically and resolve complex and ill-defined problems in order to truly thrive in the environment where they are one day expected to live and work (Schön, 1987; Ventura, Lai, and DiCerbo, 2017). But while few would argue the utility of teaching critical thinking and problem solving skills in schools, there is less consensus about how to do it, when to start, or what terms to use when teaching these important competencies.

One approach to teaching these skills is to teach computational thinking (CT). CT is particularly useful for the computer age, because it not only teaches critical thinking but also focuses on helping students "develop and employ strategies for understanding and solving problems in ways that leverage the power of technological methods to develop and test solutions" (ISTE, n.d., emphasis added). CT is the bread and butter of computer scientists, but it is also widely applicable for solving many other academic and non-academic problems.

CT is essentially a framework to describe a set of critical thinking and problem-solving skills, and it has gained significant traction as a viable and useful way of thinking about how to teach these skills in formal educational settings. While CT is not the only way to approach these skills, it provides a way of looking at problems so as to produce an automated or semi-automated solution that takes advantage of the unique affordances of computer technologies. It can also be beneficial in providing a common vocabulary, a wealth of resources, and a vibrant community of practice for teachers seeking to focus, coordinate, and improve efforts to guide rising generations in developing problem solving skills.

Watch on YouTube

Why Integrate Computational Thinking?

More than ever, we live in a world that is informed and inundated by computer technology. This fact may conjure thoughts of smartphones and personal computers, but increasingly, many everyday and traditionally non-digital objects are being designed to operate via a computer program. Some of these objects include streetlights, car engines, watches, roads, car tires, and even shoes (Hartigan, 2013).

As computer programs become more widespread, computer programming becomes an increasingly relevant skill, and many political bodies are recognizing this fact. Support for teaching computing in K-12 schools is growing in the U.S. and abroad. Several countries, including England, Finland, South Korea, and Australia, require that children learn computing or computational thinking (Rich, Jones, Belikov, Yoshikawa, and Perkins, 2017). Several U.S. states and districts have similar requirements (Partovi, 2017; EdSurge, 2016). The United States has not yet officially adopted such measures, but appears to be moving in that direction. For example, in 2017 the Trump administration announced a yearly investment of $200 million dollars into STEM education, noting that "the nature of our workforce has increasingly shifted to jobs requiring a different skill set, specifically in coding and computer science" (CNN Wire, 2017, emphasis added). Amazon, Facebook, and other major tech companies have committed a sum of over $300 million (over the period of five years) to the new initiative (Romm, 2017). Thus, increasing attention, interest, and enthusiasm are paid to the role that computer science education should have in our schools (Bers, Flannery, Kazakoff, and Sullivan, 2014; Rich et al., 2017; Sullivan and Bers, 2016; Yadav et al., 2016; Yadav et al., 2017).

But before computer programming - or coding, as it is sometimes called - many believe that today's youth (and adults) need computational thinking (CT) to better solve the problems of the 21st century. CT may be considered a precursor to learning actual coding or computer programming skills. And while this is certainly true, it can also have a much broader application. The skills, attitudes, and approaches that make up CT are fundamental, universal, transferrable, and particularly appropriate and useful for the computer age. So, while a future computer programmer certainly needs CT, it is not necessarily true that everyone who learns CT should go on to learn coding. Rather, as computer technology becomes more embedded into the fabric of every industry, professionals in every industry need to be able to think in ways that leverage those computers to solve the problems of the future.

Learning computational thinking can benefit students both economically and academically. Each year there are far more computing jobs added than there are computer science graduates, with significant job growth projected for the foreseeable future (Bureau of Labor Statistics, 2018). Furthermore, studies have linked a host of academic benefits to learning CT, including improvement in student engagement, motivation, confidence, problem-solving, communication, and STEM learning and performance (Rich et al., 2017; Yadav et al., 2017).

What Is Computational Thinking?

Stephen Wolfram (2016) stated that the "intellectual core" of computational thinking "is about formulating things with enough clarity, and in a systematic enough way, that one can tell a computer how to do them." After gathering input from over 700 computer science educators, researchers, and practitioners, the International Society for Technology in Education (ISTE) and the Computer Science Teachers Association (CSTA) (2011) issued a joint statement in which they provided an operational definition of computational thinking, which involves both a problem-solving process and a series of dispositions and attitudes.

Computational thinking may imply a certain degree of facility and familiarity with computers, but it is much more than mere tech savviness. It is a combination of disciplined mental habits, attitudes of endurance, and essential soft skills. CT allows us to not merely consume technology, but to create with technology (Yadav, Hong, and Stephenson, 2016). It is not a way of making humans more like computers, but rather of empowering humans to use computers more effectively to solve the problems of the Computer Age (Wing, 2006).

The ISTE/CSTA (2011) definition is thorough, but it may also be useful for teachers to have a few key words to keep in mind when planning lessons, guiding discussions, commenting on student work, etc. The following table is derived from the documentation of various organizations that seek to define and categorize CT in a useful way for educators (CAS Barefoot, 2014; Google, n.d.b; ISTE, 2014). This is not intended to be comprehensive, but it does provide a reasonably complete snapshot of the most crucial components of CT.

Components of CT (CAS Barefoot, 2014; Google, n.d.b; ISTE, 2014)

  • Decomposition: Breaking down data, processes, or problems into smaller, manageable parts
  • Pattern Recognition: Observing patterns, trends, and regularities in data
  • Abstraction: Making a problem more understandable by reducing unnecessary detail.
  • Algorithm Design: Developing the step by step instructions for solving this and similar problems
  • Evaluation: Ensuring that your solution is a good one.
  • Confident: believing in one's own ability to solve problems
  • Communicative: willing and able to communicate effectively with others.
  • Flexible: able to deal with change and open-ended problems
  • Tinkering: experimenting and playing
  • Creating: designing and making
  • Debugging: finding and fixing errors
  • Persevering: keeping going
  • Collaborating: working together.

Review These Terms on Quizlet


Thought Exercise: Problem-Solving Models

Computational Thinking is an effective model of problem solving, but it is only one model. Others include scientific thinking or the scientific method (which is used by scientists to answer questions about how and why the world works) and design thinking (which is used by designers and engineers to design objects and experiences). Consider the steps of each of these widely-used problem-solving models:
Computational ThinkingScientific ThinkingDesign Thinking
  1. Decomposition
  2. Pattern Recognition
  3. Abstraction
  4. Algorithm Design
  5. Evaluation
  1. Ask a Question
  2. Conduct Research
  3. Form a Hypothesis
  4. Test the Hypothesis
  5. Record & Analyze Data
  6. Draw a Conclusion
  7. Communicate Results
  1. Empathize
  2. Define
  3. Ideate
  4. Prototype
  5. Test

Watch this video to better understand these processes:

Problem-solving models

Questions to Ponder:

  • What might be the advantages and disadvantages of each problem-solving model?
  • Could any model be applied to any problem? How might the types of results expected from each model differ?
  • Are some problems better suited to one method than another?

Why Integrate CT in Early Childhood and Elementary Education

Establishing a way of thinking takes time, so if CT is to be truly grasped by the professionals of the future, they need to be familiarized with these concepts early and often throughout their academic career (Yadav, Mayfield, Zhou, Hambrusch, and Korb, 2014). Computational thinking is "cross-disciplinary" in nature (Yadav et al., 2017), so it makes sense to start teaching it in elementary or even preschool, where all the subjects are naturally blended together for the students within the same environment.

Studies have shown that children as young as preschool-age (approximately 4) have been able to successfully learn basic CT concepts (Sullivan and Bers, 2016; Bers et al., 2014). Studies also show that learning this can be "an engaging and rewarding" experience for the students (Bers et al., 2014).

Technology permeates our world and experience. Bers, Seddighin, and Sullivan (2013) have argued that because technology is an integral part of children's experience, early childhood education should include the study of technology. Teaching computational thinking is one way to do just that. In early childhood education, we often focus on understanding the natural world, which is certainly worth studying, but the man-made world is also worth studying. Most children are more familiar with cell phones than with polar bears, yet teachers are more likely to teach a unit on polar bears than on cell phones. We can and should study both (Bers et al., 2013).

Some early childhood practitioners may question the appropriateness of teaching computational thinking to very young students, due to prevalent and well-founded concerns about giving too much screen time to young children (NAEYC and Fred Rogers, 2012). However, these concerns can be reduced by understanding that (1) there is a wide variety of CT activities that do not require the use of a screen (e.g., unplugged activities, screenless robots) and (2) that even activities that do involve screen time can--and should--be constructed as interactive, rather than non-interactive uses of technology (NAEYC and Fred Rogers, 2012).

Why Integrate CT in Secondary Education

Some secondary educators may understandably feel that, unless they are planning to get an endorsement in information technology education, computational thinking has little to do with them. However, teaching CT concepts in English, history, math, science, second languages, and other core and elective subjects is actually a great way to "support problem solving across all disciplines" (Google, n.d.a) Grover (2018) argues, "Like any skill, CT is best taught and learned in context, and embedded into class subjects."

If CT education is embedded across multiple subject areas at the same school, it has additional advantages, such as helping students to "make powerful connections between their classes and beyond" and "have a rich toolkit to draw from that crosses traditional subject borders" when faced with problems that are difficult to categorize within a traditional subject area (Sheldon, 2017).

Thought Exercise: CT - A 21st Century Literacy?

Many claim that computational thinking is an essential 21st Century Literacy which ought to be taught alongside reading, writing, and arithmetic in our schools. While you don't necessarily have to agree with this assessment, it is important to understand the rationale behind it.

Consider the following statements from CT education proponents, then consider the questions listed below:

Just as basic literacy in math and science are considered essential for all children to understand how the world works, education must also address the development of knowledge and skills pertaining to computing, which is now so integrally intertwined with every profession (Grover, 2018).
Computational thinking is a fundamental skill for everyone, not just for computer scientists. To reading, writing, and arithmetic, we should add computational thinking to every child's analytical ability. Just as the printing press facilitated the spread of the three Rs, what is appropriately incestuous about this vision is that computing and computers facilitate the spread of computational thinking (Wing, 2006).

Questions to Ponder:

  • What is a "literacy"?
  • Do you agree that computational thinking is a literacy?
  • Do you agree that it is as fundamental as reading, writing, and math in the 21st Century? Why or why not?

How to Effectively Integrate CT into Your Classroom

This section is intended as a reference. Feel free to focus on reading the parts that are most relevant to you.

Research-Based Effective Practice for CT Integration

Teaching computational thinking has traditionally been viewed as a primarily constructionist endeavor (Bers et al., 2014; Buss and Gamboa, 2017). Constructionism posits that "children can learn deeply when they build their own meaningful projects in a community of learners and reflect carefully on the process" (Bers et al., 2014). In particular, the constructionist approach described by Seymour Papert "provides children the freedom to explore their own interests through technologies (Bers, 2008) while investigating domain-specific content learning and also exercising metacognitive, problem-solving, and reasoning skills" (Bers et al., 2014).

Within this broadly constructionist framework, a variety of instructional principles and methods have been identified as effective practices for teaching computational thinking. These practices can be adapted to most grade levels and subject areas.

How and When to Use Technology in CT Education

Teachers won't be utilizing technology every time they want to teach CT: they may be simply referencing CT vocabulary, helping students learn perseverance, or engaging students in an unplugged coding activity. However, since CT does involve "leverag[ing] the power of technological methods" (ISTE, 2014), a progressive program of CT instruction will inevitably lead to some integration of technological devices.

Just as PIC-RAT can be a valuable heuristic for evaluating classroom technology integration and designing technological learning experiences, it can also help guide educators in making decisions about how and when to use technology in the CT education process. In general, teachers should strive to provide learning experiences that guide students toward the creative and transformative ends of the PIC and RAT spectrums.

For example, an elementary teacher wanting to integrate CT into her curriculum might begin by explaining some key CT concepts to her students, such as decomposition and abstraction. She might then introduce a mathematical word problem that requires the students to break the problem into component parts and filter out unnecessary detail. So far, it has not been necessary to use technology, and most uses (e.g., an online worksheet) would likely have been passive or interactive replacements of traditional practice.

However, as the teacher helps her students to learn additional aspects of math and CT, she may see organic ways to integrate technology in creative and transformative ways. For instance, she may feel that the best way to teach shape properties and algorithm design is to bring some codable robots into the classroom and have the students program them to draw regular polygonal shapes. At first, the students may have some interactive time with the robots, simply so they can learn how they function. Eventually, however, their use will become creative as they design an algorithm to meet the teacher's challenge. Such an experience may transform the learning in several ways, such as

CT in Early Childhood and Elementary Education

In addition to other research-based effective practices, the following ideas, examples and resources may be useful in an early childhood teaching context.



Secondary Education

In addition to other research-based effective practices, consider the following ideas/examples for teaching CT in your specific subject area.

Language Arts & Foreign Language

Social Studies





Family and Consumer Science

Dance & Physical Education

CT Learning and Lesson Planning Resources Resources

The following table provides a number of resources for learning more about computational thinking and planning lessons that integrate its components.

ResourceFormatGrade Recommendation
CT Learning & Leadership
Computational Thinking Leadership Toolkit (ISTE)PDF
Digital Promise's 10 CT-related micro-credentialsWeb
BYU's Understanding Computational Thinking and Teaching Computational Thinking badgesWeb
Google for Education - Computational Thinking for Educators free online course.E- Course
Integration Activities Across the Curriculum
CAS Barefoot's Computational Thinking pageWeb
Google for Education - Exploring Computational Thinking: CT Materials Web  
Wonder Workshop's Code to Learn Lesson LibraryWeb
Computational Thinking Teacher Resources, 2nd Edition (ISTE)PDF
CT Vocabulary and Progression Chart (ISTE)PDF
Understanding Developmentally-Appropriate Integration
NAEYC's Technology & Media websiteWeb
Fred Rogers Center WebsiteWeb
Erikson InstituteWeb
Unplugged Activities
Code.org's CS Fundamentals UnpluggedWeb
CS UnpluggedWeb
Robotic Coding Activities
Coding as a Playground : Programming and Computational Thinking in the Early Childhood Classroom by Marina BersBook
Robotics for Young Children: STEM Activities and Simple Coding by An GadzikowskiBook
Ozobot Lesson LibraryWeb
CAS Barefoot's Bee-bot Activity GuidePDF
Wonder Workshop's Learn to Code CurriculumWeb
Ontario Math curriculum, Grades 1-8 Sphero Lesson PlansPDF
Block-Based Coding Activities & Tools
Code.org's Pre-Reader Express Course and courses A-FWeb Games
BootUp Curriculum for Scratch and Scratch Jr.Web
ScratchWeb Tool
KodableWeb Games


Computational thinking is a method of solving problems that is both widely applicable throughout the K-12 curriculum and increasingly relevant in the 21st Century. Integrating CT into traditional core and elective subject areas can help students to make important cross-curricular connections, improve their academic performance, and develop important skills for creating solutions in the wide variety of vocations in which they will one day engage. As the popularity and relevance of CT becomes more apparent, many countries, states, and institutions are adopting it into their curriculum, so teachers should be aware of how this affects them, how it may affect them in the future, and the variety of resources they can access as needed. They are also encouraged to become as familiar as they can with CT skills, attitudes, and approaches, and to develop these competencies in their personal and professional lives.


Angevine, C. (2018, February 22). Advancing computational thinking across K-12 education. Retrieved from http://www.gettingsmart.com/2018/02/advancing-computational-thinking-across-k-12-education/

Barr, D., Harrison, J., & Conery, L. (2011). Computational thinking: A digital age skill for everyone. Learning & Leading with Technology, 38(6), 20-23. Retrieved from https://files.eric.ed.gov/fulltext/EJ918910.pdf

Berdik, C. (2015, November 23). How one school district works computational thinking into every grade and class. Retrieved from http://hechingerreport.org/how-one-school-district-works-computational-thinking-into-every-grade-and-class/

Bers, M.U. (2008). Blocks to robots: Learning with technology in the early childhood classroom. New York, NY: Teachers College Press.

Bers, M.U., Seddighin, S., & Sullivan, A. (2013). Ready for robotics: Bringing together the T and E of STEM in early childhood teacher education. Journal of Technology and Teacher Education, 21(3), 355-377.

Bers, M.U., Flannery, L., Kazakoff, E. R., & Sullivan, A. (2014). Computational thinking and tinkering?: Exploration of an early childhood robotics curriculum. Computers & Education, 72, 145-157. https://doi.org/10.1016/j.compedu.2013.10.020.

Bureau of Labor Statistics (2018). Occupational outlook handbook. Retrieved from https://www.bls.gov/ooh/computer-and-information-technology/home.htm

Buss, A., & Gamboa, R. (2017). Teacher transformations in developing computational thinking: Gaming and robotics use in after-school settings. In P.J. Rich & C.B. Hodges (Eds.), Emerging research, practice, and policy on computational thinking (pp. 189-203). Cham, Switzerland: Springer. Retrieved from http://sci-hub.cc/downloads/1d8d/10.1007@978-3-319-52691-1.pdf

CAS Barefoot (2014). Computational thinking. Retrieved from https://barefootcas.org.uk/barefoot-primary-computing-resources/concepts/computational-thinking/.

CNN Wire. (2017, September 25). President Trump announces yearly investment of $200M for STEM expansion. Retrieved from Fox News: http://fox59.com/2017/09/25/president-trump-makes-jobs-announcement/

EdSurge. (2016). Computer science for all. Retrieved from https://www.edsurge.com/research/special-reports/state-of-edtech-2016/k12_edtech_trends/computer_science

Google (n.d.a). Exploring computational thinking? Retrieved from https://edu.google.com/resources/programs/exploring-computational-thinking/

Google (n.d.b). What is computational thinking? Retrieved from https://computationalthinkingcourse.withgoogle.com/unit?lesson=8&unit=1

Google (n.d.c). CT materials. Retrieved from https://edu.google.com/resources/programs/exploring-computational-thinking/#!ct-materials

Grover, S. (2018, March 13). The 5th 'C' of 21st century skills? Try computational thinking (not coding. Retrieved from EdSurge News: https://www.edsurge.com/news/2018-02-25-the-5th-c-of-21st-century-skills-try-computational-thinking-not-coding

Hartigan, M. (2013, August 27). 10 everyday objects that can be programmed to run code. Retrieved from https://www.fastcompany.com/3016427/10-everyday-objects-that-can-be-programmed-to-run-code

Highfield, K. (2015). Stepping into STEM with young children: Simple robotics and programming as catalysts for early learning. In C. Donohue (Ed.), Technology and digital media in the early years: Tools for teaching and learning (pp. 150-161). New York, NY: Routledge.

ISTE (2014, September 11). Computational thinking for all. Retrieved from https://www.iste.org/explore/articledetail?articleid=152 ISTE. (n.d.). Standards for students. Retrieved from https://www.iste.org/standards/for-students.

ISTE, & CSTA. (2011). Operational definition of computational thinking for K-12 education. Retrieved from http://www.iste.org/docs/ct-documents/computational-thinking-operational-definition-flyer.pdf

NAEYC, & Fred Rogers Center for early Learning and Children's Media. (2012). Technology and interactive media as tools in early childhood programs serving children from birth through age 8. Retrieved from https://www.naeyc.org/sites/default/files/globally-shared/downloads/PDFs/resources/topics/PS_technology_WEB.pdf

Partovi, H. (2017). Should computer science be a mandatory class in U.S. high schools? Retrieved from https://www.quora.com/Should-Computer-Science-be-a-mandatory-part-of-a-high-school-curriculum/answer/Hadi-Partovi

Randles, J. (2017, January 27). 3 easy lessons that teach coding and computational thinking. Retrieved from https://www.iste.org/explore/articleDetail?articleid=894&category=In-the-classroom&article=

Rich, P. J., Jones, B., Belikov, O., Yoshikawa, E., & Perkins, M. (2017). Computing and engineering in elementary school: The effect of year-long training on elementary teacher self-efficacy and beliefs about teaching computing and engineering. International Journal of Computer Science Education in Schools, 1 (1), 1-20.

Romm, T. (2017, September 26). Amazon, Facebook and others in tech will commit $300 million to the White House's new computer science push. Retrieved from https://www.recode.net/2017/9/26/16364662/amazon-facebook-google-tech-300-million-donald-trump-ivanka-computer-science

Schön, D. A. (1987). Educating the reflective practitioner: Toward a new design for teaching and learning in the professions. Ann Arbor, MI: Wiley.

Sheldon, E. (2017) Computational thinking across the curriculum. Retrieved from https://www.edutopia.org/blog/computational-thinking-across-the-curriculum-eli-sheldon

Sullivan, A., & Bers, M.U. (2016). Robotics in the early childhood classroom: Learning outcomes from an 8-week robotics curriculum in pre-kindergarten through second grade. International Journal of Technology and Design Education, 26(1), 3-20. https://doi.org/10.1007/s10798-015-9304-5

Ventura, M., Lai, E., & DiCerbo, K. (2017). Skills for today: What we know about teaching and assessing critical thinking [White paper]. Retrieved March 29, 2018, from Partnership for 21st Century Learning: http://www.p21.org/storage/documents/Skills_For_Today_Series-Pearson/White_Paper_-_P21_-_Skills_for_Today-What_We_Know_about_Teaching_and_Assessing_Critical_Thinking_v5.pdf

Wing, J. M. (2006). Computational thinking. Communications of the ACM, 49(3), 33-35. https://doi.org/10.1145/1118178.1118215

Wolfram, S. (2017, June 16). How to teach computational thinking. Retrieved from https://www.wired.com/2016/09/how-to-teach-computational-thinking/

Yadav, A., Mayfield, C., Zhou, N., Hambrusch, S., & Korb, J. T. (2014). Computational thinking in elementary and secondary teacher education. ACM Transactions on Computing Education (TOCE), 14(1), 5.

Yadav, A., Hong, H., & Stephenson, C. (2016). Computational thinking for all: Pedagogical approaches to embedding 21st century problem solving in K-12 classrooms. TechTrends, 60(6), 565-568. https://doi.org/10.1007/s11528-016-0087-7

Yadav, A., Stephenson, C., & Hong, H. (2017). Computational thinking for teacher education. Communications of the ACM, 60(4), 55-62. https://doi.org/10.1145/2994591

Enoch Hunsaker

Brigham Young University

Enoch Hunsaker is an Instructional Designer at Brigham Young University Online. He graduated with a Master's degree in Instructional Psychology and Technology from the same university in 2018. He has done substantial research and design work to help K-12 teachers integrate coding and computational thinking into their classrooms. His professional interests include purpose-centered design, agency in learning, and learning by doing.

This content is provided to you freely by BYU Open Learning Network.

Access it online or download it at https://open.byu.edu/k12handbook/computational_thinking.