The solar system is a fascinating entity which we are all familiar with on different levels of expertise and from different perspectives (e.g., astronomical, geological, and biological). Some of us are only familiar with its basic elements, while experts explore the different forces that cause its movement and the gradients of its planets. In this post, we explore the solar system through the computational thinking lens and describe our choice of the solar system as one of the main illustrative examples used in our MOOC on computational thinking.
The MOOC was designed based on a F2F course taught for the past six years at the Technion and Beit Berl College to different populations of preservice teachers. In the MOOC version of the course, the focus is placed on three main thinking skills: decomposition of a problem into sub-problems, abstraction, and generalization. These skills are included in most definitions of computational thinking. Moreover, these thinking skills are considered as general heuristics for problem-solving processes in any domain of our life, whose implementation is not limited to computational environments.
Computational thinking is commonly defined as a set of cognitive and social skills that are applied in problem-solving processes. Following Papert (1980), who planted the seeds of the concept, the discussion about computational thinking was re-opened by Wing (2006) and the term has since been interpreted through different prisms as a collection of various skills—both cognitive and social—required for problem solving. It is now well agreed upon that students who are growing up in today's education system will live their adult lives in a multi-tasking, multi-faceted, technology-driven, and highly diverse environment. Therefore, they must acquire the skills needed for this era, many of which are encompassed in computational thinking (Haseski, Ilic, and Tugtekin, 2018).
Although computational thinking skills can be learned and practiced without technological tools (for example, through games or with pen and paper), learning computational thinking should, in our opinion, involve problem-solving processes in technological environments. Therefore, based on the constructionist approach (Harel and Papert, 1991), when teaching computational thinking in the MOOC, we focus on the learners' development of simulations of computational processes in Scratch—a free programming language designed to be fun, educational, and easy to learn.
The term computational process, as is conveyed in our course, expresses an active phenomenon or an occurrence in any field of knowledge, that can be expressed visually by an animated script in which entities are active and interact with each other (e.g., a traffic jam, a development process of a software system, and decision-making processes). The development of a simulation of a computational process taken from any topic in any domain of knowledge, according to the learner's choice, is one way to foster learners' motivation and develop their computational thinking skills both with respect to a domain knowledge and with respect to coding in a digital environment.
A computational thinking perspective on the solar system
In what follows, we explain why we chose the solar system as one of the main illustrative examples included in our Computational Thinking MOOC offered to a highly diverse audience. We first describe characteristics of the solar system and then we illustrate main computational thinking skills as they are reflected in the development of a simulation of the solar system.
Figure 1 presents a snip of the simulation. The simulation can be viewed on the Scratch website here . To execute it, click the green flag.
Figure 1. An image from the solar system simulation
Credit: Ayelet Bukai
Characteristics of the solar system that make it suitable as an illustrative example in a general course on computational thinking
We present four characteristics of the solar system that explain why it is appropriate for a general course on computational thinking that targets diverse learner populations without any specific compulsory prior knowledge.
- Familiarity: The solar system has attracted attention from the early days of humanity: it is a part of our daily life, it influences our lives, and it is addressed by the education systems all over the world. Thus, unlike other examples that can be used to demonstrate many computational thinking ideas, which are not necessarily familiar to all learners (e.g., the circulatory system or a basketball game), everyone knows something about the solar system and it can, therefore, be analyzed and developed on different levels of complexity according to the learners' background: a child can draw only the Sun and Earth; in middle school, a few planets may be added; high school students can add the gravitational force, a solar eclipse, a lunar eclipse, and tides; and university students can simulate comets as well.
- Visuality and dynamics: The visuality and dynamics of the solar system make it a computational process whose simulation development in a visual development environment such as Scratch, comes naturally.
- Continuous scientific deepening: Development of a solar system simulation can be carried out in a gradual and continuous development process in which details, as well as their degree of precision, are added gradually. For example, the motion of Earth around the Sun can be first described as a circle, and at a later stage, accuracy may be enhanced and its movement may be then described as an ellipse. Another example are the forces that determine the movements of the different entities in the atmosphere (planets and moons for example): in earlier versions of the development, all celestial bodies can move at the same velocity; at later stages, these forces can be programmed and actual velocities may be determined (although the forces themselves, as entities, are not necessarily shown visually in the simulation).
- Continuous programming deepening: While a simulation of the solar system can be developed using only basic programming tools to express only basic programming concepts, its development can apply advanced programming tools and express advanced computational concepts. For example, the development process of a solar system simulation is a suitable platform for discussing different programming paradigms at different depths: procedural, object-oriented, and parallel, as well as differences, similarities, and interrelations among them.
Computational thinking skills as reflected in the development of a solar system simulation
The development process of a solar system simulation enables to demonstrate many computational thinking concepts and skills. We focus on the expression of three main computational thinking skills, which, as mentioned above, are emphasized in our MOOC : decomposition of a problem into sub-problems, abstraction, and generalization.
- Decomposition of a problem into sub-problems: On the one hand, the development of a solar system simulation enables to provide a clear and meaningful illustration of the application of the decomposition-into-sub-problems skill, while on the other hand, the future treatment of each sub-problem is not always trivial and sometimes requires additional decomposition into sub-problems of different levels of complexity. In greater detail, the most trivial decomposition into sub-problems is according to the main celestial bodies of the solar system: the Sun, Earth (and its moon), Mars, and Saturn (for example, with three of its 82 moons). After this decomposition, each sub-problem should be analyzed to determine whether further decomposition into sub-problems is needed (e.g., the sub-problems of the Sun simulation), and so on.
- Abstraction: In the MOOC, we highlight two facets of abstraction. First, postponement of the treatment of details during the development process. Thus, for example, we simulate the movement of the various planets around the Sun as circles, while in reality the orbits are elliptical. It is explicitly explained to the learners that postponing the consideration of such details enables to develop the simulation gradually, in stages, while avoiding cognitive load. The second facet of abstraction discussed in the course is the examination of common patterns expressed by different entities in the simulation. This examination follows by abstracting these patterns and their usage for generalization. Thus, for example, as soon as we notice that all planets circle the Sun in an elliptical trajectory, we can abstract this movement pattern into "a-planet-movement-around-the-Sun" concept and use it in the development process as the planets are gradually added.
- Generalization: Generalization is demonstrated and applied in the development of the solar system simulation, among other ways, by the movement of the moons around planets. Specifically, after developing the movement of the Moon around Earth, we can generalize this movement for the movement of a moon (or moons) around any other planet. Furthermore, since some planets have multiple moons (e.g., Saturn), we can use this pattern for all moons. As the level of learners' understanding and experience increases, generalizations can be applied in the simulation of other solar systems (there are millions of them in our galaxy alone) and other galaxies.
In this post, we illustrated how the development of a simulation of the solar system enables:
- to demonstrate three main ideas of computational thinking: decomposition of a problem into sub-problems, abstraction, and generalization. Clearly, additional computational thinking concepts and skills can be taught using this development process (e.g., control structures);
- to offer the course to a diverse audience, across the entire education system, in all subject matters, and to all learner ages.
Harel, I. and Papert, S. (Eds) (1991). Constructionism. Ablex Publishing Corporation. Norwood, NJ.
Haseski, H. ., Ilic, U., & Tugtekin, U. (2018). Defining a New 21st Century Skill-Computational Thinking: Concepts and Trends. International Education Studies, 11(4), 29-42.
Papert, S. (1980). Mindstorms: Children, computers, and powerful ideas. Basic Books, Inc.
Wing, J. M. (2006). Computational thinking. Communications of the ACM, 49(3), 33–35.
Noa Ragonis is a senior lecturer of computer science and computer science education at Beit Berl College's Faculty of Education. Her research focuses on computer science education, computational thinking and innovation in education. For additional details, see https://www.beitberl.ac.il/english/lecturers/pages/noa-ragonis.aspx. Orit Hazzan is a professor at the Technion's Department of Education in Science and Technology. Her research focuses on computer science, software engineering and data science education. For additional details, see https://orithazzan.net.technion.ac.il/.