Realism in Project-Based Software Engineering Courses: Rewards, Risks, and Recommendations
A software engineering course is often the capstone of a general undergraduate curriculum in computer science. It is usually at least partly a project-based course, with the intention that student groups can deploy their already acquired skills on programming, verification, databases, and human-computer interaction, while applying the new material about requirements, architecture, and project management on a project. I have taught a software engineering course six times, using a combination of ideas that I have never seen elsewhere, with a strong emphasis on realism. I here reflect on the rewards and risks of this approach, and make some recommendations for future offerings.
KeywordsSoftware Engineering Software Engineer Requirement Elicitation Team Software Mind Change
Unable to display preview. Download preview PDF.
- 1.Conference on Software Engineering Education and Training (CSEE&T) annual series. Early proceedings in Lecture Notes in Computer Science at Springer-Verlag, later ones at IEEE Computer Society Press (present, 1987)Google Scholar
- 2.Ghezzi, C., Jazayeri, M., Mandrioli, D.: Fundamentals of Software Engineering, 2nd edn. Prentice-Hall, Englewood Cliffs (2003)Google Scholar
- 3.Humphrey, W.S.: TSPi – Introduction to the Team Software Process. Addison-Wesley, Reading (2000)Google Scholar
- 4.Pfleeger, S.L.: Software Engineering: Theory and Practice, 2nd edn. Prentice-Hall, Englewood Cliffs (2001)Google Scholar
- 5.Robertson, S., Robertson, J.: Mastering the Requirements Process. Addison-Wesley, Reading (1999)Google Scholar
- 6.Woods, D.R.: Problem-Based Learning: How to Gain the Most from PBL, Helping Your Students Gain the Most from PBL, and Resources to Gain the Most from PBL. Department of Chemical Engineering, McMaster University, CanadaGoogle Scholar