When learning to program, different types of knowledge and skills have to be built: syntactic knowledge, i.e., knowledge of the language features; conceptual knowledge, i.e., knowledge of the semantics of the various constructs; strategic knowledge, i.e. the ability to use syntactic and conceptual knowledge in the most appropriate and effective way to solve programming problems. Strategic knowledge also includes the ability to exploit and combine solutions to known problems to solve new ones and is one of the hardest skills to acquire when learning to programm [5, 6, 11]. Terms such as goals[10] patterns [5, 6, 11]. schema,[9] strategies[4], and variables' roles[3] have been used to refer to this kind of knowledge. Several authors suggest that strategic knowledge should be taught explicitly, however there are three main issues to address: plans/patterns/schema are used sometimes interchangeably and sometimes similarly but not correspondingly; it is claimed that a small number of plans/patterns is needed in an introductory programming course, however there is no agreed upon inventory of plans/patterns among the CS community; the notion of variables' roles isn't always explicitly linked to the notion of plans/patterns; little instructional material is available that explicitly teaches strategies, and it is neither easy nor obvious how to design such material. The aim of this study is to investigate whether and how such notions of plans/patterns/schema and variables' roles can be integrated into introductory programming courses. The idea is to establish a framework that includes and arranges the different definitions presented in literature. The framework developed will be used for building a catalogue of plans/pattern and variables' roles encountered in CS1 practice, in CS1 assessment, and in the literature on introductory programming; this catalogue will be the basis for designing new instructional/learning material for fostering strategic knowledge. The developed material will be used in one of our introductory programming courses and in peer tutoring activities for the students. The effectiveness will be tested evaluating students programming skills with a pre-test and a post-test, using a group as a treatment group and another one as control group.

Toward an Inventory of Plans and Patterns, and Their Use to Foster Strategic Knowledge in Programming Novices / U. Costantini, V. Lonati, A. Morpurgo - In: ICER '20: Proceedings / [a cura di] A. Robins, A. Moskal, A.J. Ko. R. McCauley. - [s.l] : ACM, 2020 Aug. - ISBN 9781450370929. - pp. 305-305 (( Intervento presentato al 16. convegno ICER tenutosi a Virtual nel 2020 [10.1145/3372782.3408115].

Toward an Inventory of Plans and Patterns, and Their Use to Foster Strategic Knowledge in Programming Novices

V. Lonati;A. Morpurgo
2020

Abstract

When learning to program, different types of knowledge and skills have to be built: syntactic knowledge, i.e., knowledge of the language features; conceptual knowledge, i.e., knowledge of the semantics of the various constructs; strategic knowledge, i.e. the ability to use syntactic and conceptual knowledge in the most appropriate and effective way to solve programming problems. Strategic knowledge also includes the ability to exploit and combine solutions to known problems to solve new ones and is one of the hardest skills to acquire when learning to programm [5, 6, 11]. Terms such as goals[10] patterns [5, 6, 11]. schema,[9] strategies[4], and variables' roles[3] have been used to refer to this kind of knowledge. Several authors suggest that strategic knowledge should be taught explicitly, however there are three main issues to address: plans/patterns/schema are used sometimes interchangeably and sometimes similarly but not correspondingly; it is claimed that a small number of plans/patterns is needed in an introductory programming course, however there is no agreed upon inventory of plans/patterns among the CS community; the notion of variables' roles isn't always explicitly linked to the notion of plans/patterns; little instructional material is available that explicitly teaches strategies, and it is neither easy nor obvious how to design such material. The aim of this study is to investigate whether and how such notions of plans/patterns/schema and variables' roles can be integrated into introductory programming courses. The idea is to establish a framework that includes and arranges the different definitions presented in literature. The framework developed will be used for building a catalogue of plans/pattern and variables' roles encountered in CS1 practice, in CS1 assessment, and in the literature on introductory programming; this catalogue will be the basis for designing new instructional/learning material for fostering strategic knowledge. The developed material will be used in one of our introductory programming courses and in peer tutoring activities for the students. The effectiveness will be tested evaluating students programming skills with a pre-test and a post-test, using a group as a treatment group and another one as control group.
cs1; novice programmers; programming learning; programming patterns; programming plans; strategic knowledge
Settore INF/01 - Informatica
ago-2020
ACM Special Interest Group on Computer Science Education (SIGCSE)
Book Part (author)
File in questo prodotto:
File Dimensione Formato  
3372782.3408115.pdf

accesso aperto

Tipologia: Publisher's version/PDF
Dimensione 727.13 kB
Formato Adobe PDF
727.13 kB Adobe PDF Visualizza/Apri
Pubblicazioni consigliate

I documenti in IRIS sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/2434/900224
Citazioni
  • ???jsp.display-item.citation.pmc??? ND
  • Scopus 0
  • ???jsp.display-item.citation.isi??? ND
social impact