Designing a Syllabus for a Course on Empirical Software Engineering
By: Paris Avgeriou , Nauman bin Ali , Marcos Kalinowski and more
Potential Business Impact:
Helps teachers create better software research classes.
Increasingly, courses on Empirical Software Engineering research methods are being offered in higher education institutes across the world, mostly at the M.Sc. and Ph.D. levels. While the need for such courses is evident and in line with modern software engineering curricula, educators designing and implementing such courses have so far been reinventing the wheel; every course is designed from scratch with little to no reuse of ideas or content across the community. Due to the nature of the topic, it is rather difficult to get it right the first time when defining the learning objectives, selecting the material, compiling a reader, and, more importantly, designing relevant and appropriate practical work. This leads to substantial effort (through numerous iterations) and poses risks to the course quality. This chapter attempts to support educators in the first and most crucial step in their course design: creating the syllabus. It does so by consolidating the collective experience of the authors as well as of members of the Empirical Software Engineering community; the latter was mined through two working sessions and an online survey. Specifically, it offers a list of the fundamental building blocks for a syllabus, namely course aims, course topics, and practical assignments. The course topics are also linked to the subsequent chapters of this book, so that readers can dig deeper into those chapters and get support on teaching specific research methods or cross-cutting topics. Finally, we guide educators on how to take these building blocks as a starting point and consider a number of relevant aspects to design a syllabus to meet the needs of their own program, students, and curriculum.
Similar Papers
Teaching Empirical Research Methods in Software Engineering: An Editorial Introduction
Software Engineering
Teaches how to do science for computer programs.
Teaching Simulation as a Research Method in Empirical Software Engineering
Software Engineering
Teaches how to test computer programs with fake scenarios.
A Call for Critically Rethinking and Reforming Data Analysis in Empirical Software Engineering
Software Engineering
Fixes bad math in computer science research.