English

Flipping a Graduate-Level Software Engineering Foundations Course

Software Engineering 2017-02-24 v1 Computers and Society

Abstract

Creating a graduate-level software engineering breadth course is challenging. The scope is wide. Students prefer hands-on work over theory. Industry increasingly values soft skills. Changing software technology requires the syllabus to be technology-agnostic, yet abstracting away technology compromises realism. Instructors must balance scope with depth of learning. At Carnegie Mellon University, we designed a flipped-classroom course that tackles these tradeoffs. The course has been offered since Fall 2014 in the Silicon Valley campus. In this paper, we describe the course's key features and summarize our experiences and lessons learned while designing, teaching, and maintaining it. We found that the pure flipped-classroom format was not optimal in ensuring sufficient transfer of knowledge, especially in remote settings. We initially underestimated teaching assistantship resources. We gradually complemented video lectures and hands-on live sessions with additional live components: easily replaceable recitations that focus on current technology and mini lectures that address application of theory and common wisdom. We also provided the students with more opportunities to share their successes and experiments with their peers. We achieved scalability by increasing the number of teaching assistants, paying attention to teaching assistant recruitment, and fostering a culture of mentoring among the teaching team.

Keywords

Cite

@article{arxiv.1702.07069,
  title  = {Flipping a Graduate-Level Software Engineering Foundations Course},
  author = {Hakan Erdogmus and Cecile Peraire},
  journal= {arXiv preprint arXiv:1702.07069},
  year   = {2017}
}

Comments

10 pages, accepted to ICSE 2017, Software Engineering and Education Track

R2 v1 2026-06-22T18:26:02.209Z