Abstract

Computational thinking is the capacity of undertaking a problem-solving process in various disciplines (including STEM, i.e. science, technology, engineering and mathematics) using distinctive techniques that are typical of computer science. It is nowadays considered a fundamental skill for students and citizens, that has the potential to affect future generations. At the roots of computational-thinking abilities stands the knowledge of computer programming, i.e. coding. With the goal of fostering computational thinking in young students, we address the challenging and open problem of using methods, tools and techniques to support teaching and learning of computer-programming skills in school curricula of the secondary grade and university courses. This problem is made complex by several factors. In fact, coding requires abstraction capabilities and complex cognitive skills such as procedural and conditional reasoning, planning, and analogical reasoning. In this paper, we introduce a new paradigm called ACME (“Code Animation by Evolved Metaphors”) that stands at the foundation of the Diogene-CT code visualization environment and methodology. We develop consistent visual metaphors for both procedural and object-oriented programming. Based on the metaphors, we introduce a playground architecture to support teaching and learning of the principles of coding. To the best of our knowledge, this is the first scalable code visualization tool using consistent metaphors in the field of the Computing Education Research (CER). It might be considered as a new kind of tools named as code visualization environments.

Highlights

  • Introduction and motivationThe ability to face problem-solving challenges of STEM disciplines—i.e., science, technology, engineering and mathematics—is nowadays universally considered as a crucial skill (Siekmann and Korbel 2016; Marginson et al 2013; Watt 2016)

  • Based on the analysis of related works in this field, we argued that Diogene-CT represents the first of a new breed of approaches, that we called code-animation environments

  • We discussed our practical experiences in the framework of the Computer Science bachelor degree at the University

Read more

Summary

Introduction

Introduction and motivationThe ability to face problem-solving challenges of STEM disciplines—i.e., science, technology, engineering and mathematics—is nowadays universally considered as a crucial skill (Siekmann and Korbel 2016; Marginson et al 2013; Watt 2016). Computational thinking has been defined as the capacity of undertaking a problem-solving process in various disciplines using techniques that are distinctive of computer science We may say that coding abilities are a fundamental building block of any computational-thinking based approach to teaching. Mecca et al Int J Educ Technol High Educ (2021) 18:12 to simplify the teaching and learning of coding. This is a complex problem, that poses several important challenges. The prominent one is that acquiring coding skills requires abstraction capabilities. The main reason for this is that several of the typical coding tasks require capacity of abstraction:

Objectives
Methods
Discussion
Conclusion
Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call