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

Felienne Hermans, Efthimia Aivaloglou

Research output: Chapter in Book/Conference proceedings/Edited volumeConference contributionScientificpeer-review

37 Citations (Scopus)


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.
Original languageEnglish
Title of host publication2017 IEEE/ACM 39th International Conference on Software Engineering
Subtitle of host publicationSoftware Engineering Education and Training Track (ICSE-SEET)
EditorsR. Bilof
Place of PublicationLos Alamitos, CA
Number of pages10
ISBN (Electronic)978-1-5386-2671-9
ISBN (Print)978-1-5386-2672-6
Publication statusPublished - 2017
Event2017 IEEE/ACM 39th International Conference on Software Engineering: Software Engineering Education and Training Track (ICSE-SEET) - Buenos Aires, Argentina
Duration: 20 May 201728 May 2017


Conference2017 IEEE/ACM 39th International Conference on Software Engineering
CityBuenos Aires


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


Dive into the research topics of 'Teaching Software Engineering Principles to K-12 Students: A MOOC on Scratch'. Together they form a unique fingerprint.

Cite this