Posted in February 2017

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

This paper is accepted for Software Engineering Education and Training @ 39th International Conference on Software Engineering (SEET-ICSE 2017) in Buenos Aires in May 2017.


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 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.


Programming education, MOOC, Scratch, code, smells, dropout prediction


Felienne Hermans, Efthimia Aivaloglou (2017) Teaching Software Engineering Principles to K-12 Students: A MOOC on Scratch. TUD-SERG-2017-003. ISSN 1872-5392


© 2011 TU Delft