This course covers advanced topics in software engineering. Aspects of problem specification, design, verification, and evaluation are discussed. We will focus on design methods, including software patterns and software architecture, plus some advanced topics involving formal methods of software specification or evaluation using software metrics. Students will participate in team projects to apply the methods discussed