UMassCS Logo
 
 

The 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.

Requirements

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 Usability
    • 365 Digital Forensics
    • 377 Operating Systems
    • 401 Formal Lang. Theory
    • 410 Compilers
    • 445 Information Systems
    • 453 Computer Networks
    • 460 Intro to Security
    • 513 Logic in CS
    • 529 SE Project Mgmnt
    • 575 Comb. & Graph Thry
    • 499Y 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 499Y count towards degree. All courses x90–x99 require approval towards degree.

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