The Executive Master’s of Science in Software Engineering degree plan requires a minimum of 33 hours of courses, which includes 5 core courses and 6 electives. The curriculum includes courses which employers view as the most valuable.
Core Requirements (15 hours)
Students must earn a minimum 3.2 grade point average in the core requirements.
SE 6329 Object Oriented Software Engineering (3 semester hours)
This course presents the Concepts, methods and techniques necessary to efficiently capture software requirements in use cases and transform them into design and implementation. Use of UML in the context of an iterative, agile process with an OO model transformation approach. Use of an advanced CASE tool that allows the synchronization between the various models and the code.
SE 6361 Advanced Requirements Engineering (3 semester hours)
Critical issues in requirements engineering. Models of requirements engineering process. Requirements analysis, modeling and specification. Requirements elicitation. Scenario analysis. Enterprise modeling. Functional requirements. Structured analysis. Structural and behavioral requirements. Non-functional requirements. Object-oriented, goal-oriented and agent-oriented methodologies.
SE 6362 Advanced Software Architecture and Design (3 semester hours)
Concepts and methodologies for the development, evolution, and reuse of software architecture and design, with an emphasis on object-orientation. Identification, analysis, and synthesis of system data, process, communication, and control components. Decomposition, assignment, and composition of functionality to design elements and connectors. Use of non-functional requirements for analyzing trade-offs and selecting among design alternatives. Software modeling techniques. Architecture styles and design patterns. Service-oriented architecture. The transition from requirements to software architecture, design, and to implementation. State of the practice and art.
SE 6367 Software Testing and Verification (3 semester hours)
Fundamental concepts of software testing. Functional testing. GUI based testing tools. Control flow based test adequacy criteria. Data flow based test adequacy criteria. White box based testing tools. Mutation testing and testing tools. The relationship between test adequacy criteria. Finite state machine based testing. Static and dynamic program slicing for testing and debugging. Software reliability.
SE 6387 Advanced Software Engineering Project (3 semester hours)
This course is intended to provide experience in a group project that requires advanced technical solutions, such as distributed multi-tier architectures, component-based technologies, automated software engineering, etc., for developing applications, such as web-based systems, knowledge-based systems, real-time systems, etc. The students will develop and maintain requirements, architecture and detailed design, implementation, and testing and their traceability relationships. Best practices in software engineering will be applied.
Additional Requirements (minimum of 18 hours)
The additional requirements include 18 hours of electives comprised from graduate level CS and SE courses. The courses are selected by the department. A list of possible selections includes these courses.
SE6388 Software Project Planning and Management (3 semester hours)
Techniques and disciplines for successful management of software projects. Project planning and contracts. Advanced cost estimation models. Risk management process and activities. Advanced scheduling techniques. Definition, management, and optimization of software engineering processes. Statistical process control. Software configuration management. Capability Maturity Model Integration (CMMI).
SE 6356 Software Maintenance, Evolution, and Re-Engineering (3 semester hours)
Principles and techniques of software maintenance. Impact of software development process on software justifiability, maintainability, evolvability, and planning of release cycles. Use of very high-level languages and dependencies for forward engineering and reverse engineering. Achievements, pitfalls, and trends in software reuse, reverse engineering, and re-engineering.
CS 6360 Database Design (3 semester hours)
Methods, principles, and concepts that are relevant to the practice of database software design. Database system architecture; conceptual database models; relational and object-oriented databases; database system implementation; query processing and optimization; transaction processing concepts, concurrency, and recovery; security
CS 6396 Real Time Systems (3 semester hours)
Introduction to real-time applications and concepts. Real-time operating systems and resource management. Specification and design methods for real-time systems. System performance analysis and optimization techniques. Project to specify, analyze, design, implement and test small real-time system.
CS 6324 Information Security (3 semester hours)
A comprehensive study of security vulnerabilities in information systems and the basic techniques for developing secure applications and practicing safe computing. Topics include common attacking techniques such as buffer overflow, Trojan, virus, etc. UNIX, Windows and Java security. Conventional encryption. Hashing functions and data integrity. Public-key encryption (RSA, Elliptic-Curve). Digital signature. Watermarking for multimedia. Security standards and applications. Building secure software and systems. Management and analysis of security. Legal and ethical issues in computer security.
CS 6375 Machine Learning (3 semester hours)
Algorithms for training perceptions and multi-layer neural nets: back propagation, Boltzmann machines, and self-organizing nets. The ID3 and the Nearest Neighbor algorithms. Formal models for analyzing learnability: exact identification in the limit and probably approximately correct (PAC) identification. Computational limitations of learning machines.
CS 6343 Cloud Computing (3 semester hours)
Different layers of cloud computing, infrastructure as a service (IaaS), platform as a service (PaaS), and software as a service (SaaS). Data centers. Resource management, power management, and health monitoring in IaaS cloud. Hadoop MapReduce for big data computing. PaaS examples such as GAE, Force.com. SaaS concepts and enabling technologies. Cloud storage theory and practical solutions such as GFS, Big Table, HDFS, HBase, Dynamo, Pnuts. Erasure coding and secret sharing based cloud storage. Virtualization and emulation. Server virtualization, storage virtualization, and network virtualization. Cloud security.
CS 6350 Big Data Management and Analytics (3 semester hours)
This course focuses on scalable data management and mining algorithms for analyzing very large amounts of data (i.e., Big Data). Included topics are: Mapreduce, NoSQL systems (e.g., key-value stores, column-oriented data stores, stream processing systems), association rule mining, large scale supervised and unsupervised learning, state of the art research in data streams, and applications including recommendation systems, web and big data security.
This list may change according to trends in the industry and in the field of computing.