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


