Home Contact

CMSC435: Software Engineering (Summer 2013)

Dept. of Computer Science, University of Maryland, College Park, MD, USA.

Important Updates

  • May 27. This page is created.

About the Course

Welcome to the home-page for the Software Engineering Course (CMSC 435, Section 0101).

In most of our computer science classes, we have written small programs and developed software that had few users, if any. What can we say about the design, analysis, quality, and reusability of these programs? Did we keep these issues in mind when we developed our programs? In other words, did we "engineer" the software?

In the real world, we will be required to team-develop large software that may be used by hundreds of people. We want to make sure that the software we develop is "engineered" well. In this course, we will learn how to engineer software by developing a detailed design, testing/debugging the design for correctness, writing the code, and testing the quality of our software.

More specifically, we will study techniques for:

  • Planning and managing a software development project
  • Capturing the requirements
  • Designing the system
  • Writing the code
  • Testing each functional unit and the overall system
  • Delivering the software
  • Maintaining the software
Most importantly, we will work on a large, team-based project (or multiple interrelated projects) to apply all the techniques. Happy Software Engineering!

Meeting Times & Location

Mon.Tue.Wed.Thu. - 9:30AM - 10:50AM (CSIC 3120).

Office Hours

Mon.Tue.Wed.Thu. - 8:30AM - 9:30AM (4115 A. V. Williams Building) Other meetings may be scheduled individually and held over Skype and Phone.

Course TA

Bao Nguyen (baonn AT cs.umd.edu). Office hours: Mon.Wed. - 2:30PM - 5:30PM (in the TA room).

Catalog Course Description

State-of-the-art techniques in software design and development. Laboratory experience in applying the techniques covered. Structured design, structured programming, top-down design and development, segmentation and modularization techniques, iterative enhancement, design and code inspection techniques, correctness, and chief-programmer teams. The development of a large software project.


The grade of the course will be determined as follows: 20% midterm exam, 20% quizzes, 20% final exam, 40% class project.