TY - GEN
T1 - Re-use of programming patterns or problem solving?
T2 - 15th Workshop in Primary and Secondary Computing Education, WiPSCE 2020
AU - Talbot, Mike
AU - Geldreich, Katharina
AU - Sommer, Julia
AU - Hubwieser, Peter
N1 - Publisher Copyright:
© 2020 ACM.
PY - 2020/10/28
Y1 - 2020/10/28
N2 - Novice programmers seem to learn basic programming skills amazingly fast by using visual programming environments like Scratch or Snap. Yet at a second glance, in many cases, the students' programming projects make use of pre-learned solution patterns like collision detection. Aiming to investigate how far such pre-learned patterns are used and adapted, we have to analyze the program structure of a substantially large number of Scratch projects, e.g. from the Scratch repository, in a very detailed way. To automate the static code analysis of these projects, we developed a scheme to transform Scratch projects into a common graph format (TGraph), which was used up to now to analyze programs in Java and Haskell as well as UML diagrams and mathematical solutions. In a second step, this representation enabled us to apply a SQL-like query language for graphs (GReQL) to detect programming patterns in students' Scratch projects. This paper describes the design of our TGraph scheme for Scratch as well as how to query patterns in Scratch code using GReQL, in order to stimulate the use of this methodology by other researchers. As a feasibility study, we report its application on the outcomes of one of our Scratch courses attended by 143 children aged 8-12 years. The study showed that with the presented methodology any code structure can be detected in Scratch projects. To check the validity of the methodology, the programs were additionally checked manually for the occurrence of two patterns - the results were consistent.
AB - Novice programmers seem to learn basic programming skills amazingly fast by using visual programming environments like Scratch or Snap. Yet at a second glance, in many cases, the students' programming projects make use of pre-learned solution patterns like collision detection. Aiming to investigate how far such pre-learned patterns are used and adapted, we have to analyze the program structure of a substantially large number of Scratch projects, e.g. from the Scratch repository, in a very detailed way. To automate the static code analysis of these projects, we developed a scheme to transform Scratch projects into a common graph format (TGraph), which was used up to now to analyze programs in Java and Haskell as well as UML diagrams and mathematical solutions. In a second step, this representation enabled us to apply a SQL-like query language for graphs (GReQL) to detect programming patterns in students' Scratch projects. This paper describes the design of our TGraph scheme for Scratch as well as how to query patterns in Scratch code using GReQL, in order to stimulate the use of this methodology by other researchers. As a feasibility study, we report its application on the outcomes of one of our Scratch courses attended by 143 children aged 8-12 years. The study showed that with the presented methodology any code structure can be detected in Scratch projects. To check the validity of the methodology, the programs were additionally checked manually for the occurrence of two patterns - the results were consistent.
KW - Assessment
KW - Computer science education
KW - Patterns, code analysis
KW - Programming
KW - Scratch
UR - http://www.scopus.com/inward/record.url?scp=85094953235&partnerID=8YFLogxK
U2 - 10.1145/3421590.3421604
DO - 10.1145/3421590.3421604
M3 - Conference contribution
AN - SCOPUS:85094953235
T3 - ACM International Conference Proceeding Series
BT - Proceedings of the 15th Workshop in Primary and Secondary Computing Education, WiPSCE 2020
A2 - Brinda, Torsten
A2 - Armoni, Michal
PB - Association for Computing Machinery
Y2 - 28 October 2020 through 30 October 2020
ER -