Faculty Recruiting Support CICS

Software Engineering Track

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.

  • Four required courses:
    • 311 Algorithms
    • 320 Software Engineering
    • 520 SE-Synthesis
    • 521 SE-Analysis & Eval
  • Any two courses from the following:
    • 325 Intro to Human Computer Interaction (or 590C Human Computer Interaction)
    • 365 Digital Forensics
    • 377 Operating Systems
    • 410 Compilers
    • 445 Information Systems
    • 453 Computer Networks
    • 460 Intro to Security
    • 501 Formal Lang. Theory
    • 513 Logic in CS
    • 529 SE Project Mgmnt
    • 575 Comb. & Graph Thry
    • 499T/P or 496 (see note)
  • Two CS electives numbered 300 or above (not including 305).
  • Note: All course numbers refer to CS courses unless designated otherwise. Only 3 credits of 499T/P OR 496 count toward major requirements, regardless of whether it is listed in the menu. All courses x90-x99 require approval of the Undergraduate Program Director to be applied toward degree.

Please note that CS 491OO Object-Oriented Languages and Systems, offered in Fall 2009 counts toward this track as well.