Learning to program in a constructionist way
- Others:
- Università degli Studi di Milano = University of Milan (UNIMI)
- Foundations of Component-based Ubiquitous Systems (FOCUS) ; Inria Sophia Antipolis - Méditerranée (CRISAM) ; Institut National de Recherche en Informatique et en Automatique (Inria)-Institut National de Recherche en Informatique et en Automatique (Inria)-Dipartimento di Informatica - Scienza e Ingegneria [Bologna] (DISI) ; Alma Mater Studiorum Università di Bologna [Bologna] (UNIBO)-Alma Mater Studiorum Università di Bologna [Bologna] (UNIBO)
- Technische Universität Graz (TU Graz)
Description
Although programming is often seen as a key element of constructionist approaches, the research on learning to program through a constructionist strategy is somewhat limited, mostly focusing on how to bring the abstract and formal nature of programming languages into "concrete" or even tangible objects, graspable even by children with limited abstraction power. However, in order to enable constructionism in programming several challenges must be addressed. One of the crucial difficulties for novice programmers is to understand the complex relationship between the program itself (the text of the code) and the actions that take place when the program is run by the interpreter. A good command of the notional machine is a necessary condition to build programming skills, as is recognizing how a relatively low number of abstract patterns can be applied to a potentially infinite spectrum of specific situations. Programming languages and environments can either help or distract novices, thus the choice is not neutral and their characteristics should be analyzed carefully to foster a good learning context. The mastery of the notional machine, however, is just the beginning of the game: to develop a real competence one must be able to think about problems in a way suitable to automatic elaboration; to devise, analyse, and compare solutions, being able to adapt them to unexpected hurdles and needs. Moreover, it is important to learn to work productively in a team, in an "organized" way: agile methods seem based on common philosophical grounds with constructionism.
Abstract
International audience
Additional details
- URL
- https://hal.inria.fr/hal-01913065
- URN
- urn:oai:HAL:hal-01913065v1
- Origin repository
- UNICA