A graduate course in software engineering

0
470

My part in this workshop is to describe the graduate software engineering course at UCSC, CMPE276, including the delivery mode, teaching and learning mechanisms, student profile, assessment methods, successes and problems, and improvements needed. The CMPE276 course gives students a strong background in software engineering. The traditional topics of software engineering are covered, using textbook readings, journal and conference papers.Students are required to prepare by commenting on their readings for each (or for every other) class meeting. The class sessions are spent as discussions woven together from the material in the students’ comments. The students are graded on the technical quality of their comments. The students are graded on their class participation. In addition, students are graded on a final exam covering material from these readings and from small team projects which are presented to the class at the end of the quarter. Project topics are problems suggested by local companies.Topics have included: the design of an experiment to determine the “goodness” of a testing plan, the design and optional implementation of a system to promote a company’s look and feel standard for user interfaces, investigation of defects found in a past release of software to determine effectiveness of development techniques, investigation of the process used for an inspection method of a requirements specification, and development of a model for software acquisition or internal development. Students are evaluated on their understanding of the theoretical basis of the problem as demonstrated in their written and oral reports, and their development of solutions to the stated problem.Most of the students in CMPE276 are computer science or engineering graduate students with some whose primary language is not English. Others come from other departments or from industry. Successes with this course include that my students read many (10-40) papers during the quarter.Critical to this is the required writing assignment for every paper, timely feedback, and timely discussion of the paper during class. Success with the project work requires readings that target relevant software engineering topics which provide a good starting point for the teams’ project work. Benefits include “real world” experience and contacts for the students. Problems include slips in the schedules of the industry projects and trouble coordinating the communication between the company and students. Additional time management problems arise trying to return students’ paper comments for each class session.One suggestion for improvement would be to ask students to evaluate each other’s work. Also, a reduced collection of software engineering standards would be useful for the students for use in their project work.Â