Michael Lodi, Alma Mater Studiorum – Università di Bologna, Italy
Dario Malchiodi, Mattia Monga, Anna Morpurgo, Università degli Studi di – Milano, Italy
Bernadette Spieler, Graz University of Technology, Austria
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 diffi culties 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 infi nite 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.
LODI, M. MALCHIODI, D, MONGA, M., MORPURGO, A., AND SPIELER, B. 2018. Learning to program in a constructionist way, In Proceedings of Constructionism 2018, 20 – 25 August, 2018, Vilnius, Lithuania. 901-924.