Master of Science in Software Engineering

Computer Engineering Track


The Master of Science in Software Engineering objectives are: 1) to provide students with an understanding of the fundamentals of software development in the framework of a software engineering process and 2) to insure our graduates can apply their classroom knowledge in the real-world where they would normally be part of a software development team.These objectives are achieved through classes that cover all phases of the software development process and by augmenting classroom instruction with significant amounts of practical experience in using modern software tools and techniques in a team environment.††


The Master of Science in Software Engineering at the University of Alabama in Huntsville is offered through two separate tracks.The MSSE Computer Engineering Track is offered by the Department of Electrical and Computer Engineering through the College of Engineering. The MSSE Computer Science track is offered by the Computer Science Department through the College of Science.


Admission Requirements for MSSE in Computer Engineering Track


For unconditional admission to the MSSE, the requiremnets are:


1.               A Bachelorís degree from an ABET or CSAB accredited program with a minimum of 3.0 average on a 4.0 scale.


2.               5 or more years of related work experience, having passed FE exam, orcombined GRE score of 1700 (for GRE tests taken after October 1, 2002 the score on the analytical portion is obtained by taking 100 times [raw score +2]).


3.               For international students, a TOEFL score of 600 (213 computer-based test).


4.               Conditional admission may be granted to individuals who fail to meet one or more requirements for unconditional admission.



An applicant is expected to demonstrate knowledge at the undergraduate level in:

Programming in C, C++, or Java

Data Structures

Discrete Structures

Algorithm Design and Analysis

Operating Systems

Computer Architecture

Experience in the development of a large scale software system is highly desirable.


Program Requirements:


Non-thesis Option


CS Core ( 12 hours)


1. CS650 Software Engineering

2. One course from each of the following three areas (a total of 3 courses)



Area 1: Formal Methods

CS 617 algorithms

CS655 formal methods


Area 2: Software Engineering and Design

CS 652 Object Oriented analysis and design

CS 551 software modeling

CS 552 analysis and design patterns


Area 3: Software Applications:

CS 553 client server arch

CS 658 software process and product improvement

CS656 software testing


3. CM601, EE691, EE692 (3 hours)


4. Software Design Studio I and II (CPE 656, CPE 658), (6 hours)


5. Four courses selected from (12 hours)


CPE 538 Real time and embedded systems

CPE 536 Operating system internals

CPE 512 Parallel processing

CPE 548 Introduction to networks

CPE 549 Introduction to Information Assurance Engineering

CPE 628 Testing of hardware systems

CPE 631 Advanced architecture

CPE 633 Fault tolerant computing

CPE 645 Computer Network Security

CPE 647 Ubiquitous Computing

CPE 648 Advanced networks

CPE 649 Advanced Information Assurance Engineering

CPE 661 Code optimization

CPE 726 Algorithms for VLSI design

CPE 731 Distributed shared memory, and

CPE 748 Wireless Networks.

Thesis Option


CS Core ( 9 hours)


1. CS650 Software Engineering (3 hours)


2. One course taken from any two of the three CS areas identified in the non-thesis option (6 hours)


3. Three additional CPE electives from CPE (9 hours)


4. Software Engineering Studio I and II(6 hours)


5. At least 6 hours of Masters Thesis