Spring 2009 Course Homepage

CSE 210 - Principles of Software Engineering
Bill Griswold
Tu-Th 11:00am - 12:30pm
EBU3b 2154
Office Hours by appointment

Building a great, successful software system is an intellectually challenging activity that is more likely to fail than succeed. Yet, software is becoming increasingly sophisticated and now permeates every aspect of our lives. Thus, software is becoming harder to build, but it's increasingly important to build it right.

The methods for creating software have changed dramatically to keep pace. This course is an introduction to the state of the art and hot trends in software development. This course will not only introduce the salient concepts of software engineering, but it will also introduce valuable practices and develop our skills in applying them through a small team project (four projects from prior years are in production use today). We will study insightful case studies such as the Mythical Man Month and Microsoft Secrets, as well as classic and leading edge articles from the research literature, including XP and Design Patterns.

An undergraduate background in computer science (or equivalent) is a prerequisite, but an undergraduate software engineering class is not.

Announcements

  • Participation Rubric

  • Slides from Introductory Lecture (2007)

  • Readings and reading schedule

  • Course structure

  • Course abstract

  • Project and project schedule

  • Themes of class

  • Software engineering research resources

  • The Software Evolution Lab's and the ActiveCampus Project's web pages

  • Article on Global SW Development practices

  • Article on the Space Shuttle Software Development Process