Software Engineering

Course Information

Course Description

An intense hands-on study of practical techniques and methods of software engineering. Topics include: software processes and management, requirements engineering, software evolution and configuration management, advanced object-oriented design, design patterns, code construction techniques, verification and validation techniques, and code optimization and tuning. All topics are integrated and applied during the semester-long group project. The aim of the project is to prepare students for dynamics in a real workplace. Members of the group will meet on a regular basis to discuss the project and to assign individual tasks. Students will be judged primarily on the final project.


Familiarity with C++, experience with at least one large software project.


Recommended: Sommerville, Ian. Software Engineering, Seventh or Eighth Edition (abbreviated as SE).
Recommended: Meyers, Scott. Effective C++, Third Edition (abbreviated as EC++).
Recommended: McConnell, Steve. Code Complete, Second Edition (abbreviated as CC2).

Some suggested C++ references:
Lippman, Stanley. Essential C++.
Lippman, Stanley. C++ Primer, Third Edition.
Lakos, John. Large-Scale C++ Software Design.
Stroustrup, Bjarne. The C++ Programming Language.


Tuesday and Thursday 2:00-3:15pm in room 102 of Warren Weaver Hall.

Office hours


Final grades will be based on the following:

10% Project Proposal
10% Individual Presentation
40% Weekly Assignments
40% Final Project

Academic Integrity

Please review the
departmental academic integrity policy. In this course, you are encouraged to work together on the project and assignments. However, any help you receive must be clearly explained. Also, you should consult the instructor before using materials or code other than that provided in class. Copying without giving appropriate acknowledgement is a serious offense with consequences ranging from no credit to potential expulsion.


In preparing material for this class, I have drawn from the above-mentioned texts, as well as the following web page: