MS in Software Engineering
About the Program
The Software Engineering master's degree program is designed to prepare students for professional practice, as well as further studies and research in the software engineering field. The program offers a 30-credit hour curriculum consisting of required core courses and technical electives, which provide opportunities to design and implement large-scale software systems and embedded systems.
All courses have access to a wide variety of computing resources: local area networks of approximately 200 Quad Core and I7 PC's, as well as the Games and Multimedia Entertainment Laboratory.
The department schedules all SWE courses during late afternoons or evenings to enable students to earn their master's degree through part-time study. The program may be completed entirely on campus, entirely online, or through a combination of on-campus and online courses."
Students with an interest in pursuing doctoral studies or working in a research and development environment are encouraged to elect the thesis option.
If you have questions about the curriculum, please contact the program director: Dr. Zhiwei Xu (zwxu@umich.edu). If you have questions about the application process, deadlines, tuition, scholarships and assistantships, and other questions please contact the Office of Graduate Studies (umd-graduatestudies@umich.edu ).
Get an Inside Look
We focus mainly on software testing problems, software maintenance, and evaluation problems because it is required by the software industry.— Dr. Marouane Kessentini, Assistant Professor, CIS Department
Program Details
-
Students will be able to use mathematical and scientific techniques to solve software engineering problems
-
Students will be able to formulate problems, design experiments, collect, verify, validate, analyze, and interpret data and use this knowledge to design a reliable system, component, or process to meet requirements
-
Students will be able to use the techniques, skills, and modern software tools necessary for reliable and robust software engineering practice
-
Students will be able to recognize a problem, evaluate different methods and use software engineering principles to derive a feasible solution
Applicants for the MS in SWE are required to meet the following requirements:
A bachelor's degree in Computer Science or Computer Engineering from an accredited institution with a grade point average of "B" or better. Applicants who do not meet the minimum GPA requirements may be offered admission. Admission in such cases will depend heavily on other indices of the student's ability to handle graduate-level work. These might include strong performance on standardized tests, GPA in the major, and/or other experiences that are clearly indicative of strong academic ability.
Preference will be given to students with a background in Computer and Information Science and Computer Engineering.
Satisfactory completion of the following:
- Calculus I & II
- One course in probability and statistics or linear algebra)
- Programming Language (Preferably C/C++ I & II)
- One course in data structures with algorithm analysis
- One course in microprocessors
- One course in computer architecture
- One course in operating systems
International applicants, applicants whose native language is not English or who have received their Bachelor's or Master's degree from outside the United States, Australia or England please refer to the following English Proficiency requirements.
MS SWE Course Prerequisites
CIS 310 - Computer Organization
CIS 350 - Data Structures and Algorithm Analysis
CIS 450 - Operating Systems
IMSE 317 - Engineering Probability and Statistics
|
Curriculum
To satisfy the requirements for the MS degree in Software Engineering, all students admitted to the program are expected to complete thirty semester hours of graduate coursework, with a cumulative grade point average of B or better. The program of study consists of core courses, concentration courses, and the coursework/project/thesis option.
Please contact the Computer and Information Science Department about the policy on the minimum grade for a course to satisfy graduation requirements.
The 30 semester hours of required coursework are distributed as follows:
All students are required to take the following courses:
- Three out of the following six CIS courses
- CIS 549 - Software Security
- CIS 553 - Software Engineering
- CIS 565 - Software Quality Assurance
- CIS 566 - Software Architecture and Design Patterns
- CIS 575 - Software Engineering Management
- CIS 580 - Data Analytics in Software Engineering
- ECE 554 - Embedded Systems
- ECE 574 - Advanced Software Techniques in Engineering Applications
-
Web Engineering
- CIS 525 - Web Technology
- CIS 534 - The Semantic Web
- CIS 536 - Text Mining and Information Retrieval
- CIS 540 - Foundation of Information Security
- CIS 544 - Computer and Network Security
- CIS 549*- Software Security
- CIS 559 - Principles of Social Network Science
- CIS 562 - Web Information Management
- CIS 565* - Software Quality Assurance
- CIS 566* - Software Architecture and Design Patterns
- CIS 571 - Web Services
- CIS 577 - Software User Interface Design & Analysis
- CIS 580* - Data Analytics in Software Engineering
- CIS 584 - Advanced Computer and Network Security
- CIS 589 - Edge Computing
- CIS 678 - Research Advances in Software Engineering
- ECE 528 - Cloud Computing
- ECE 570 - Computer Networks and Data Communications
-
Game Engineering
- CIS 515 - Computer Graphics
- CIS 552 - Information Visualization and Multimedia Gaming
- CIS 553* - Software Engineering
- CIS 575* - Software Engineering Management
- CIS 577 - Software User Interface Design and Analysis
- CIS 579 - Artificial Intelligence
- CIS 580* - Data Analytics in Software Engineering
- CIS 587 - Game Design and Implementation I
- CIS 588 - Game Design and Implementation II
- CIS 652 - Information Visualization and Computer Animation
- CIS 678 - Research Advances in Software Engineering
- ECE 524 - Interactive Media
- ECE 5251 - Multimedia Design Tools I
- ECE 5252 - Multimedia Design Tools II
- ECE 579 - Intelligent Systems
-
Data Engineering and Analytics
- CIS 536 – Text Mining and Information Retrieval
- CIS 540 - Foundation of Information Security
- CIS 545 - Data Security and Privacy
- CIS 549* - Software Security
- CIS 556 - Database Systems
- CIS 5570 - Introduction to Big Data
- CIS 562 - Web Information Management
- CIS 568 / ECE 537 - Data Mining
- CIS 5700 - Advanced Data Mining
- CIS 579 - Artificial Intelligence
- CIS 580* - Data Analytics in Software Engineering
- CIS 583- Deep Learning
- CIS 585 - Advanced Artificial Intelligence
- CIS 586 - Advanced Data Management
- CIS 658 - Research Advances in Data Management
- CIS 678 - Research Advances in Software Engineering
- ECE 525 - Multimedia Data Storage and Retrieval
- ECE 576 - Information Engineering
- ECE 579 - Intelligent Systems
-
Information and Knowledge Engineering
- CIS 511 - Natural Language Processing
- CIS 536 – Text Mining and Information Retrieval
- CIS 540- Foundation of Information Security
- CIS 549* -Software Security
- CIS 5570 - Introduction to Big Data
- CIS 559 - Principles of Social Network Science
- CIS 562 - Web Information Management
- CIS 568 / ECE 537 - Data Mining
- CIS 5700 - Advanced Data Mining
- CIS 574 - Compiler Design
- CIS 579 - Artificial Intelligence
- CIS 580* - Data Analytics in Software Engineering
- CIS 581 - Computational Learning
- CIS 583 - Deep Learning
- CIS 585 - Advanced Artificial Intelligence
- CIS 586 - Advanced Data Management
- CIS 678 - Research Advances in Software Engineering
- CIS 679 - Computational Game Theory
- ECE 5251 - Multimedia Design Tools I
- ECE 527 - Multimedia Security and Forensics
- ECE 531 - Intelligent Vehicle Systems
- ECE 537 - Data Mining
- ECE 552 - Fuzzy Systems
- ECE 576 - Information Engineering
- ECE 577 - Engineering in Virtual World
- ECE 579 - Intelligent Systems
- ECE 5831 - Pattern Recognition and Neural Networks
- ECE 588 - Robot Vision
-
Mobile and Cloud Computing
- CIS 535 - Programmable Mobile/Wireless Technology and Pervasive Computing
- CIS 537 - Advanced Networking and Distributed Systems
- CIS 546 - Security and Privacy in Wireless Networks
- CIS 548 - Security and Privacy in Cloud Computing
- CIS 550 - Object-Oriented Programming and Its Applications
- CIS 553* - Software Engineering
- CIS 565* - Software Quality Assurance
- CIS 566* - Software Architecture and Design Patterns
- CIS 589 - Edge Computing
- CIS 647 - Research Advances in Networking and Distributed Systems
- ECE 528 - Cloud Computing
- ECE 535 - Mobile Devices and Ubiquitous Computing Systems
- ECE 570 - Computer Networks and Data Communications
- ECE 5701 - Wireless Communications
-
Embedded Systems
- CIS 525 - Web Technology
- CIS 527 - Computer Networks
- CIS 535 - Programmable Mobile/Wireless Technology and Pervasive Computing
- CIS 537 - Advanced Networking and Distributed Systems
- CIS 546 - Security and Privacy in Wireless Networks
- CIS 566* - Software Architecture and Design Patterns
- CIS 569 - Wireless Sensor Networks
- CIS 575* - Software Engineering Management
- CIS 589 - Edge Computing
- ECE 505 - Introduction to Microprocessors and Embedded Systems
- ECE 535 - Mobile Devices and Ubiquitous Computing Systems
- ECE 5541 - Embedded Networks
- ECE 5542 - Embedded Signal Processing and Control
- ECE 5752 - Reconfigurable Computing
* May not be used as both core and application courses
Students can take any graduate-level courses approved by the student's advisor, as described in the requirements for graduation.
Students desiring to obtain deep/broad knowledge are encouraged to take two elective courses (6 credits) listed above that are not used to satisfy your core or application requirements.
- Core courses - 15 credit hours
- Application courses - 9 credit hours
- CIS/ECE elective course - 6 credit hours
Students desiring to obtain project experience are encouraged to elect the directed studies CIS/ECE 591 (3 credits) or Project Course CIS/ECE 695 (3 credits) to work under the supervision of a faculty advisor. In addition, the student must take one additional 3-credit course listed above or any other CIS/ECE course related to the project and approved by the Graduate Program Director.
- Core courses - 15 credit hours
- Application courses - 9 credit hours
- CIS/ECE elective course - 3 credit hours
- Project - 3 credit hours
Students desiring to obtain research experience are encouraged to elect CIS/ECE 699 (6 credits) and work under the supervision of a faculty advisor.
- Core courses - 15 credit hours
- Application courses - 9 credit hours
- Thesis - 6 credit hours