We report on our successful experience teaching the theory and practice of software engineering to ~150 undergraduate students majoring primarily in computer science. These students know how to write code, but not how to engineer software products. We found that teaching theory in parallel with practice was too late for students to apply their newfound knowledge, and thus chose to teach sequentially instead.
Our courses focus on interactivity and problem-solving, with exams that ask open-ended design and programming questions, yet remain scalable to over a hundred students with no obvious bottleneck. The sequential nature of our teaching enabled us to iterate on the theory course quickly based on results from the practice course.
Yuxia Zhang Beijing Institute of Technology, Mian Qin Beijing Institute of Technology, Klaas-Jan Stol Lero; University College Cork; SINTEF Digital , Minghui Zhou Peking University, Hui Liu Beijing Institute of Technology