Software Engineering Track

Objectives

The track is designed to prepare students to become software engineers who:

understand and can use the principles and techniques of software engineering essential for the design and development of large software products,

are familiar with and can effectively use a variety of tools for software analysis, design, testing, and maintenance, and

can effectively work in teams and communicate orally and in writing.

Note -- This track replaces the current interdisciplinary specialization in Software Engineering offered to CS majors.  The interdisciplinary specialization in Software Engineering will continue to be offered to Industrial Engineering and Electrical and Computer Engineering majors.

Required Courses

Course Title
CS 30700 Software Engineering I
CS 35200 or
CS 35400
Compilers: Principles and Practice or Operating Systems
CS 49000 Software Testing
CS 49000 Senior Project

All track requirements, regardless of department, must be completed with a grade of C or higher (effective Fall 2011).

Electives

Select at least 2 additional courses

Course Title
CS 34800 Information Systems
CS 35200 Compilers: Principles and Practice
CS 35400 Operating Systems
CS 38100 Introduction to the Analysis of Algorithms
CS 42600 Computer Security
CS 44800 Introduction to Relational Database Systems
CS 45600 Programming Languages

Note: CS 35200/35400 cannot be double counted towards the required and elective courses