Skip to Main Content
This paper describes approaches used in two different software engineering courses, where the goal is to give students some experience in the major aspects of real world software projects. The first course is a capstone project course, part of an undergraduate short program in software engineering. The second course is a course on software maintenance and testing, part of a full undergraduate program on software engineering. Each course's content, general organization and student workflow is described. In the case of the capstone project course, graduate students are used as experts/clients in the context of a course in their own program. For the software maintenance and testing course, the emphasis is put on laboratory work. Both courses are considered to have succeeded with respect to the stated objectives. The positive aspects and major challenges with each course are also summarized.