Towards Data-Driven Learning Paths to Develop Computational Thinking with Scratch

With the introduction of computer programming in schools around the world, a myriad of guides are being published to support educators who are teaching this subject, often for the first time. Most of these books offer a learning path based on the experience of the experts who author them. In this paper we propose and investigate an alternative way of determining the most suitable learning paths by analyzing projects developed by learners hosted in public repositories. Therefore, we downloaded 250 projects of different types from the Scratch online platform, and identified the differences and clustered them based on a quantitative measure, the computational thinking score provided by Dr. Scratch. We then triangulated the results by qualitatively studying in detail the source code of the prototypical projects to explain the progression required to move from one cluster to the next one. The result is a data-driven itinerary that can support teachers and policy makers in the creation of a curriculum for learning to program. Aiming to generalize this approach, we discuss a potential recommender tool, populated with data from public repositories, to allow educators and learners creating their own learning paths, contributing thus to a personalized learning connected with students’ interests.

[1]  Eric Rosenbaum,et al.  Scratch: programming for all , 2009, Commun. ACM.

[2]  Alexander Repenning Agentsheets: a tool for building domain-oriented visual programming environments , 1993, CHI '93.

[3]  E. Rosch,et al.  Family resemblances: Studies in the internal structure of categories , 1975, Cognitive Psychology.

[4]  Gregorio Robles,et al.  Dr. Scratch: Automatic Analysis of Scratch Projects to Assess and Foster Computational Thinking , 2015 .

[5]  Caitlin Kelleher,et al.  Storytelling alice motivates middle school girls to learn computer programming , 2007, CHI.

[6]  Joel C. Adams Scratching middle schoolers' creative itch , 2010, SIGCSE.

[7]  Gregorio Robles,et al.  Comparing computational thinking development assessment scores with software complexity metrics , 2016, 2016 IEEE Global Engineering Education Conference (EDUCON).

[8]  Diana Franklin,et al.  Assessment of computer science learning in a scratch-based outreach program , 2013, SIGCSE '13.

[9]  Jeannette M. Wing An introduction to computer science for non-majors using principles of computation , 2007, SIGCSE.

[10]  Diana Franklin,et al.  Hairball: lint-inspired static analysis of scratch projects , 2013, SIGCSE '13.

[11]  Linda M. Seiter,et al.  Modeling the learning progressions of computational thinking of primary grade students , 2013, ICER.

[12]  Benjamin Mako Hill,et al.  A longitudinal dataset of five years of public activity in the Scratch online community , 2017, Scientific Data.

[13]  Gregorio Robles,et al.  Automatic detection of bad programming habits in scratch: A preliminary study , 2014, 2014 IEEE Frontiers in Education Conference (FIE) Proceedings.

[14]  Neil Smith,et al.  Code club: bringing programming to UK primary schools through scratch , 2014, SIGCSE '14.

[15]  Seymour Papert,et al.  Mindstorms: Children, Computers, and Powerful Ideas , 1981 .

[16]  Randy Pausch,et al.  Alice: a 3-D tool for introductory programming concepts , 2000 .

[17]  Yasmin B. Kafai,et al.  The writers' workshop for youth programmers: digital storytelling with scratch in middle school classrooms , 2012, SIGCSE '12.

[18]  Mordechai Ben-Ari,et al.  Learning computer science concepts with scratch , 2010, ICER '10.

[19]  Jirí Vanícek Programming in Scratch Using Inquiry-Based Approach , 2015, ISSEP.

[20]  Chris Stephenson,et al.  Bringing computational thinking to K-12: what is Involved and what is the role of the computer science education community? , 2011, INROADS.

[21]  Ahmet Baytak,et al.  An investigation of the artifacts and process of constructing computers games about environmental science in a fifth grade classroom , 2011 .

[22]  Gregorio Robles,et al.  Dr. Scratch: a Web Tool to Automatically Evaluate Scratch Projects , 2015, WiPSCE.

[23]  Thomas Connolly,et al.  Evaluation of Computer Games Developed by Primary School Children to Gauge Understanding of Programming Concepts , 2012 .

[24]  Sayamindu Dasgupta,et al.  Remixing as a Pathway to Computational Thinking , 2016, CSCW.

[25]  Eleanor Rosch,et al.  Principles of Categorization , 1978 .

[26]  Mordechai Ben-Ari,et al.  Habits of programming in scratch , 2011, ITiCSE '11.

[27]  Chen-Chung Liu,et al.  A remix-oriented approach to promoting student engagement in a long-term participatory learning program , 2017, Comput. Educ..

[28]  Majed Marji Learn to Program with Scratch: A Visual Introduction to Programming with Games, Art, Science, and Math , 2014 .

[29]  Sarah Clinch,et al.  Teaching Computer Science to 5-7 year-olds: An initial study with Scratch, Cubelets and unplugged computing , 2015, WiPSCE.

[30]  Gregorio Robles,et al.  Examining the Relationship between Socialization and Improved Software Development Skills in the Scratch Code Learning Environment , 2016, J. Univers. Comput. Sci..

[31]  Gregorio Robles,et al.  The Europe Code Week (CodeEU) initiative shaping the skills of future engineers , 2015, 2015 IEEE Global Engineering Education Conference (EDUCON).

[32]  Joel C. Adams,et al.  What do students learn about programming from game, music video, and storytelling projects? , 2012, SIGCSE '12.

[33]  Katherine Malan,et al.  Examples that can do harm in learning programming , 2004, OOPSLA '04.

[34]  Gregorio Robles,et al.  On the Automatic Assessment of Computational Thinking Skills: A Comparison with Human Experts , 2017, CHI Extended Abstracts.

[35]  Mitchel Resnick,et al.  Programming by choice: urban youth learning programming with scratch , 2008, SIGCSE '08.