Computer Science 121 - Introduction to and Overview of Projects

Fall 2009

$Id: index.html 131 2007-11-05 16:47:09Z Mark $

Introduction and Background

It is traditional, in Software Engineering courses, to have students build a large project. This is intended to give students the opportunity to apply many of the skills covered in the reading and lectures. And I must concede that building software is the most obvious form for projects in a Software Engineering class to take.

In looking at what students have actually done in these projects, I have found a few major concerns:

My goal, in defining projects for this course, has been to create a series of projects that will focus primarily on the primary skills taught in the course.

Another goal of these projects is to develop organizational, planning, time management, and post-mortem review skills. This is accomplished by not breaking the second project into small pieces, but rather, requiring the students to do this. The students are not merely responsible for producing the required work products, but plans for their production. The project grades are based, in part, on the quality of the plans, the dilligence that was paid to them, and the insights gained in retrospect. It is further hoped that the post-mortem reviews will help consolidate learning of both process and technical lessons.

Thus the assigned projects should be seen, both in terms of the primary technical skills they exercise, and successively more demanding sets of project management responsibilities. I assert that it is these skills (and not additional programming ability) that are the primary focus of this course.

Conclusion

By the end of this course, the students will have not only studied, but actually performed, all of the major (non-coding/debugging) steps of a large software project. It is hoped that these exercises will consolidate the learning of these skills and well-prepare students for larger projects to come.