A subprogram in software engineering is available to PhD, MS thesis, and MS non-thesis students. All requirements for your graduate degree remain as defined in the ECE graduate manual. Successful completion of the specific coursework requirements described in the subprogram results in a degree designation that specifies the software engineering subprogram on a student's transcript. The subprogram coursework may satisfy both the subprogram requirements and contribute to the coursework that constitutes the cohesive plan of study for the primary degree.

The software engineering subprogram requires the following course work.

1) The following two are required courses (6 s.h.):

ECE:5820 Software Engineering Languages and Tools
ECE:5830​ Software Engineering Project

2) At least two of the following courses must also be taken (6 s.h.): 

ECE:5810​ Formal Methods in Software Engineering​
ECE:5330​ Graph Algorithms and Combinatorial Optimization​
ECE:5320​ High Performance Computer Architecture​
ECE:5840 Software Security​
ECE:5450 Machine Learning

3) A total of 18 semester hours must be taken from the pool of approved ECE software engineering-related courses listed below (including approved special topics courses):

ECE:5820 Software Engineering Languages and Tools
ECE:5830 Software Engineering Project
ECE:5810 Formal Methods in Software Engineering
ECE:5330 Graph Algorithms and Combinatorial Optimization
ECE:5320 High Performance Computer Architecture
ECE:5840 Software Security
ECE:5450 Machine Learning
ECE:5800 Fundamentals of Software Engineering
ECE:5845 Modern Databases
ECE: 5995 **By approval of Graduate Committee


Students that complete one or more required courses as an undergraduate can substitute courses from the list of approved ECE courses; see the list of approved courses in the ECE Graduate Manual.