Abstract

In this chapter, we define and advocate the subfield of educational software engineering (i.e., software engineering for education) within the domain of software engineering research. This subfield develops software engineering technologies (e.g., software testing and analysis [2], software analytics [3,4]) for general educational tasks, going beyond educational tasks for software engineering. For example, general educational tasks can even be on teaching math [5–7]. As an analogy, data mining for software engineering [8] (also called mining software repositories [9]) leverages data mining technologies (which typically come from the data mining community) to address tasks in software engineering, whereas educational software engineering leverages software engineering technologies (which typically come from the software engineering community) to address tasks in education. In addition, in the solution space, gaming technologies often play an important role together with software engineering technologies.