Introduction
Software Engineering is the computer science discipline concerned with developing large applications. Software engineering covers not only the technical aspects of building software systems, but also management issues, such as directing programming teams, scheduling, and budgeting.
The SMU Master's degree program in Software Engineering offers a balanced approach to both the management and technical expertise necessary to succeed in this critically important field. Many of the courses are based upon those proposed by the Software Engineering Institute, specifically founded by the Department of Defense to assist in the development of a sound foundation for this rapidly emerging field. Centering on the problems of working professionals in this field, the SMU program in Software Engineering serves the needs of both the full- and part-time student.
The program requires 30 hours of coursework consisting of 12 hours of core courses and 18 hours of electives.
Admission Requirements
- Bachelor's degree in one of the quantitative sciences, mathematics, or computer science, or in one of the engineering disciplines.
- G.P.A. of at least 3.00 out of 4.00 scale in previous undergraduate and graduate study.
- A minimum of one year of college-level calculus.
- A minimum of one year of experience in software development and/or maintenance.
- Satisfactory TOEFL scores for students where English is not the primary language.
Degree Requirements
- Thirty term-credit hours of graduate courses with a minimum graduate G.P.A. of 3.00 on a 4.00 scale.
- Satisfactory completion of the core curriculum encompassing four courses:
- CSE 7316 SOFTWARE REQUIREMENTS
- CSE 7319 SOFTWARE ARCHITECTURE AND DESIGN
- CSE 7314 SOFTWARE TESTING AND QUALITY ASSURANCE
- CSE 7315 SOFTWARE PROJECT PLANNING AND MANAGEMENT
- Satisfactory completion of three advanced elective courses from the following list:
- CSE 7312 SYSTEMS ENGINEERING FOR SOFTWARE INTENSIVE SYSTEMS
- CSE 7345 ADVANCED JAVA PROGRAMMING
- CSE 7347 XML AND THE ENTERPRISE
- CSE 7348 DISTRIBUTED JAVA ENTERPRISE COMPUTING
- CSE 7359 SOFTWARE SECURITY
- CSE 8312 SOFTWARE GENERATION AND MAINTENANCE
- CSE 8313 OBJECT-ORIENTED ANALYSIS AND DESIGN
- CSE 8314 SOFTWARE METRICS AND QUALITY ENGINEERING
- CSE 8315 SOFTWARE ACQUISITION PRACTICES, LEGAL AND ECONOMIC ISSUES
- CSE 8316 USER INTERFACE DESIGN
- CSE 8317 SOFTWARE RELIABILITY AND SAFETY
- CSE 8340 ADVANCED TOPICS IN SOFTWARE ENGINEERING
- Satisfactory completion of three elective courses from available graduate-level course offerings.
Articulation
All students entering the program are expected to possess knowledge in the following core areas:
- Discrete Computational Structures
- Programming Languages
- Data Structures and Algorithms
- Operating Systems
- Computer Architecture and Networks
- Object-Oriented Programming
These core topic areas form the basis of an undergraduate major in computer science. Students entering the program with an undergraduate degree other than computer science will be asked to take an articulation course, CSE 5311, Fundamentals of Computer Science, to satisfy core competency in the above topic areas. CSE 5311 does not count toward the 30 hour degree requirement.
Entering students without a background in object-oriented programming will be asked to take CSE 7345, Advanced Java Programming, as one of their electives. CSE 7345 will count toward the 30 hour degree requirement.
CSE 5311 assumes the ability to program in Java or C++. Students asked to take CSE 5311, who do not have a background in Java or C++ are advised to take CSE 7345 concurrently or prior to taking CSE 5311.
Students without CS undergraduate degrees and asked to CSE 5311 as an articulation course will receive conditional admission to the program. Students must receive a grade of B or better in CSE 5311 to continue in the program.