Computational thinking is a process for formulating problems and their solutions. Although its roots are in computer science, many additional disciplines have adopted computational thinking as a required, foundational approach to educating students at the undergraduate and even K–12 levels.
Computational thinking is a fundamental skill for everyone, not just for computer scientists.Dr. Jeannette Wing, Director of the Data Science Institute, Columbia University
Computational thinking involves applying traditional computer programming techniques when solving mathematical, scientific, and engineering problems by expressing them in a programming language or other runnable application software. The thinker’s ideas are expressed and captured in a reusable and maintainable form, and the computer can produce the solutions. For example, computational thinking is at work when geoscientists develop mathematical models to predict the effect of climate change or seismic activity. Similarly, neuroscientists use algorithms that analyze signal data generated from brainwaves and muscle movements to plan the optimal prostheses. In both cases, they’re using computational models to express science and engineering concepts.
In recent years, educators in multiple science and math disciplines—such as geoscience, biology, and physics—have undertaken major efforts, funded by organizations such as NSF, NIH, the EU, and other science-focused groups, to transform their courses, curricula, and even whole departments to incorporate applied computation. Their common goal is to incorporate computational thinking best practices and software tools into teaching, thinking, learning and, ultimately, places of work, such as weather research stations, financial investment firms, and companies focused on automated driving and advanced decision-support technologies.
With computational thinking, students can solve small and large problems in logical, scalable ways. As shown in Figure 1, four main processes and skills make up the computational thinking framework1:
- Decomposition: Breaking down large, complex problems into smaller, more manageable problems that can be solved
- Pattern recognition: Noting similarities among problems and the ways they have been solved previously
- Abstraction: Identifying information that is irrelevant and focusing only on the information important to solving the problem
- Algorithms: Designing simple, scalable steps for solving the smaller, more manageable problems in the series
Instilling computational thinking competency requires software tools matched to the relevant science and math courses, including related homework problem sets and research projects. The software must grow with students as both their quantitative and programming skills evolve. Operationalizing computational thinking involves tasks such as data analysis, algorithm development, model design, and code generation.
MATLAB® and Simulink® support and enable these computational thinking tasks, as well as related applications, such as computational finance and biology; data analysis, including machine learning and deep learning; and signal and image processing.
1 “Introduction to computational thinking,” Bitesize, BBC, October 2018. https://www.bbc.com/bitesize/guides/zp92mp3/revision/1.