Teaching Software Engineering Principles to K-12 Students: A MOOC on Scratch

In the last few years, many books, online puzzles, apps and games have been created to teach young children programming. However, most of these do not introduce children to broader concepts from software engineering, such as debugging and code quality issues like smells, duplication, refactoring and naming. To address this, we designed and ran an online introductory Scratch programming course in which we teach elementary programming concepts and software engineering concepts simultaneously. In total 2,220 children actively participated in our course in June and July of 2016, most of which (73%) between the ages of 7 and 11. In this paper we describe our course design and analyze the resulting data. More specifically, we investigate whether 1) students find programming concepts more difficult than software engineering concepts, 2) there are age-related differences in their performance, and 3) we can predict successful course completion. Our results show that there is no difference in students' scores between the programming concepts and the software engineering concepts, suggesting that it is indeed possible to teach these concepts to this age group. We also find that students over 12 years of age perform significantly better in questions related to operators and procedures. Finally, we identify the factors from the students' profile and their behaviour in the first week of the course that can be used to predict its successful completion.

[1]  Yin Yin,et al.  A classroom at home: children and the lived world of MOOCs , 2015 .

[2]  Youngjun Lee,et al.  A review of online course dropout research: implications for practice and future research , 2011 .

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

[4]  Sherif A. Halawa,et al.  Dropout Prediction in MOOCs using Learner Activity Features , 2014 .

[5]  Khairuddin Hashim,et al.  Application of Bloom's taxonomy in software engineering assessments , 2008 .

[6]  Inés Friss de Kereki,et al.  SM4T: Scratch MOOC for Teens: A pioneer pilot experience in Uruguay , 2014, 2014 IEEE Frontiers in Education Conference (FIE) Proceedings.

[7]  Yasmin B. Kafai,et al.  Programming in the wild: trends in youth computational participation in the online scratch community , 2014, WiPSCE.

[8]  Mark Warschauer,et al.  Predicting MOOC performance with Week 1 Behavior , 2014, EDM.

[9]  Errol Thompson,et al.  Bloom's taxonomy for CS assessment , 2008, ACE '08.

[10]  Felienne Hermans,et al.  How Kids Code and How We Know: An Exploratory Study on the Scratch Repository , 2016, ICER.

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

[12]  Niels Pinkwart,et al.  Predicting MOOC Dropout over Weeks Using Machine Learning Methods , 2014, EMNLP 2014.

[13]  Hai Hong,et al.  K-12 Computer Science Education Across the U.S , 2016, ISSEP.

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

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

[16]  Mauricio A. Saca Refactoring improving the design of existing code , 2017, 2017 IEEE 37th Central America and Panama Convention (CONCAPAN XXXVII).

[17]  Philip J. Guo,et al.  How video production affects student engagement: an empirical study of MOOC videos , 2014, L@S.

[18]  Felienne Hermans,et al.  Do code smells hamper novice programming? A controlled experiment on Scratch programs , 2016, 2016 IEEE 24th International Conference on Program Comprehension (ICPC).

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

[20]  Jaakko Kurhila,et al.  A Purposeful MOOC to Alleviate Insufficient CS Education in Finnish Schools , 2015, ACM Trans. Comput. Educ..

[21]  Jos Tolboom,et al.  A New Informatics Curriculum for Secondary Education in The Netherlands , 2016, ISSEP.

[22]  Aditya Johri,et al.  Uncovering Trajectories of Informal Learning in Large Online Communities of Creators , 2015, L@S.

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