The software engineering track is designed to help students understand the issues involved in designing, developing, evolving, and validating complex software systems. It provides excellent preparation for those wishing to pursue industrial careers in software engineering, but is also excellent preparation for those interested in research issues such as software reliability, verification, security, extensibility, model and component-based development, software process models and process-driven systems, and human-computer collaborative systems. Many of the methods learned in this track are applicable to a wide range of applications, including computer and non-computer based systems. Students interested in a capstone project will have the opportunity to work in areas such as healthcare, assistive living, digital government, and scientific workflow to name just a few possibilities.
Note that for students graduating by May 2012, if CS 291SP (now called CS 230) has not been taken, then Operating Systems (377) is a required course below.
Please note that CS 491OO Object-Oriented Languages and Systems, offered in Fall 2009 counts toward this track as well.