As defined by Jeannette Wing, computational thinking is “a way of solving problems, designing systems, and understanding human behavior by drawing on the concepts of computer science.” To the students at my school, it’s an approach to tackling challenging questions and ambiguous puzzles. We explicitly integrate computational thinking into all of our classes, allowing students to draw parallels between what they’re learning and how they’re approaching problems across all disciplines.
Our students rely on four computational thinking skills, as well as a set of essential attitudes.
Students demonstrate algorithmic thinking whenever they create or use a well-defined series of steps to achieve a desired outcome. In our sixth-grade math class, for example, students identify and plot a set of ordered pairs on a coordinate plane to re-create a piece of art they’ve made. Students practice the algorithm for Punnett squares by refashioning themselves as cartoon babies, meticulously crossing their genotypes to create endless generations of children. In orchestra, students learn about the history of algorithmic music composition, from Mozart’s dice music to Emily Howell, a computer program created by David Cope, to modern, all-robot bands.
While humans can get a bit more creative in following an algorithm than a computer can, it’s important for students to be able to both communicate and interpret clear instructions for a predictable, reliable output.
Decomposition means breaking down a complicated problem into its components and working on one component at a time. In our seventh-grade humanities class, students dissect the American criminal justice system, identifying problems and proposing solutions that better represent a fair and balanced system. Toward the end of a basketball unit in fitness class, our sixth graders decompose a LeBron James dunk, using the NBA’s public motion tracking data to plot and analyze motion graphs to better understand the offensive strategy.
With the power of decomposition, problems that seem overwhelming at first become much more approachable for students.
Abstraction refers to stripping away unnecessary details to develop a generic solution, or representing a complicated system with a simple model or visualization. In humanities class, students simulate their own ancient civilization by choosing natural resources and technologies and seeing how their populations fare over centuries, while ignoring complexities like government structures and religion. While learning about human anatomy, seventh graders team up to create 3D amusement parks based on a human body, representing blood cells with bumper cars and neural networks with ziplines—without stressing over details like molecular composition or energy production.
Learning what information is important and what can be left out is a critical skill for students to develop as problems grow in complexity.
Students leverage pattern recognition by analyzing trends in data and using that information to work out solutions. Students in science class save the world by analyzing real-time earthquake data and identifying where seismic activity is clustered, forming their own hypotheses about how tectonic plates may be to blame. In math class, students optimize fantasy football teams by using proportional reasoning skills to draft players with the best performance data.
Applying a real-world context to your lessons helps students realize that the skills they’re learning are not just relevant but vital beyond the classroom. Trevor Muir offers fantastic ideas and evidence on this approach in his TEDx talk on real-world learning.
Solving problems as a computational thinker also requires some specific attitudes toward problem solving in general. We strive to empower our students with the confidence needed to tackle ambiguous problems, the tenacity to persist through challenges requiring iteration and experimentation, strong communication skills to facilitate collaboration and presentation, and a general curiosity across all disciplines that leads them to ask and answer big, scary questions. Chris O’Brien discusses developing these muscles in a school makerspace, and project-based learning in any classroom is a phenomenal way to foster this mindset in your students.
You may be thinking to yourself, “My students already do a lot of these things!” In fact, computational thinking is happening in many classrooms already, likely by many other names. Computational thinking is intricately linked with critical thinking, STEM (science, technology, engineering, and math) learning, and project-based learning. By employing the language of computational thinking across multiple disciplines, students can make powerful connections between their classes and beyond. Better yet, when faced with challenges that are difficult to categorize, students will have a rich toolkit to draw from that crosses traditional subject borders.
Bringing computational thinking into your classroom is simple, and can only help your students achieve the learning objectives you’ve already identified. Think about these skills and attitudes when planning lessons, and use this language throughout the year. Introduce some ambiguity in your projects, link lessons to real-world examples and evidence, and dream big—over time, your students may surprise you with the connections they make and their confidence in diving into new challenges.
Looking for a quick way to get started? Most of the above lessons and activities are available as free lesson plans on our curriculum website. And Google offers a great online course for teachers looking to bring computational thinking into their classrooms.