The design of algorithms is one of the hardest topics of high school computer science. This is mainly due to the universality of algorithms as solution methods that guarantee the calculation of a correct solution for all potentially infinitely many instances of an algorithmic problem. The goal of this paper is to present a comprehensible and robust algorithms design strategy called “constructive induction” that enables high school students to discover solution methods for a large variety of algorithmic problems. The concept of constructive induction is based on searching for a universal method for solving any instance of an algorithmic problem when solutions of smaller problem instances are available.
In general, our approach strengthens learners in problem solving and their ability to use and develop abstract representations. Here we present a large collection of tasks that can be solved by constructive induction and show how to use this method to teach algorithm design. For some representative algorithmic tasks, we offer a detailed design of lessons in high school classes. We explain how our implementation of teaching in classrooms supports critical thinking, sustainability of acquired knowledge, problem solving, and the ability to abstract, and so contributes to reaching deep competences in algorithmic thinking.
The creative programming language Processing can be used as a generative architectural design tool, which allows the designer to write design instructions (algorithms) and compute them, obtaining graphical outputs of great interest. This contribution addresses the inclusion of this language in the architecture curriculum, within the context of digital culture and alternative approaches to how digital tools are used and learned. It studies the different processes related to Computational Thinking that are triggered in the prototyping of computer applications and that lead to creativity. The similarity between architectural design and programming is analysed, both in problem solving (abstraction, decomposition, iterative revisions -debugging-, etc.) and in the use of mechanisms of a digital nature (loops, randomness, etc.). The results of the design and testing of a pilot course are shown, in which the way of teaching, learning and using this programming language is based on the graphical representation of problems through sketches.
Computing science which focuses on computational thinking, has been a compulsory subject in the Thai science curriculum since 2018. This study is an initial program to explore how and to what extend computing science that focused on STEM education learning approach can develop pre-service teachers' computational thinking. The online STEM-based activity-Computing Science Teacher Training (CSTT) Program was developed into a two-day course. The computational thinking test (CTT) data indicated pre-service teachers’ fundamental skills of computational thinking: decomposition, algorithms, pattern recognition, pattern generalization and abstractions. The post-test mean score was higher than the pre-test mean score from 9.27 to 10.9 or 13.58 percentage change. The content analysis indicated that there were five key characteristics founded in the online training program comprised: (1) technical support such as online meeting program, equipment, trainer ICT skills (2) learning management system such as Google Classroom, creating classroom section in code.org (3) the link among policy, curriculum and implementation (4) pre-service teachers' participation and (5) rigor and relevance of how to integrate the applications of computing science into the classroom.
Computer science concepts have an important part in other subjects and thinking computationally is being recognized as an important skill for everyone, which leads to the increasing interest in developing computational thinking (CT) as early as at the comprehensive school level. Therefore, research is needed to have a common understanding of CT skills and develop a model to describe the dimensions of CT. Through a systematic literature review, using the EBSCO Discovery Service and the ACM Digital Library search, this paper presents an overview of the dimensions of CT defined in scientific papers. A model for developing CT skills in three stages is proposed: i) defining the problem, ii) solving the problem, and iii) analyzing the solution. Those three stages consist of ten CT skills: problem formulation, abstraction, problem reformulation, decomposition, data collection and analysis, algorithmic design, parallelization and iteration, automation, generalization, and evaluation.
The European Commission Science Hub has been promoting Computational Thinking (CT) as an important 21st century skill or competence. However, "despite the high interest in developing computational thinking among schoolchildren and the large public and private investment in CT initiatives, there are a number of issues and challenges for the integration of CT in the school curricula". On the other hand, the Digital Competence (DC) Framework 2.0 (DigCom) is promoted in the same European Commission Science Hub portal. It shows that both topics have many things in common. Thus, there is the need of research on the relationship between CT and digital competence.
The goal of this paper is to analyse and discuss the relationship between DC and CT, and to help educators as well as educational policy makers to make informed decisions about how CT and DC can be included in their local institutions. We begin by defining DC and CT and then discuss the current state of both phenomena in education in multiple countries in Europe. By analysing official documents, we try to find the underlying commonness in both DC and CT, and discover all possible connections between them. Possible interconnections between the component groups of approaches are presented in Fig.