Production and maintenance of long-term, large-scale programming projects. Topics covered include analysis of software requirements for project specifications, abstraction and modularity in software design, programming style, software reliability and performance evaluation. Students will be required to design, manage and implement a medium-sized project. (Offered irregularly.)