University of Minnesota
Master of Science in Software Engineering

You are here

Course Descriptions

Created by faculty from the Computer Science and Engineering Department and by industry experts, the MSSE curriculum delivers a powerful blend of software engineering theory and practice. Expect program content that is consistently cutting-edge, rigorous, and relevant. Topics include requirements engineering, project management, quality assurance, and database management systems.

The curriculum is fixed for the first three semesters. The fourth semester offers electives, including an optional independent project. A total of 30 semester credits and satisfactory performance on either an independent project or at least 3 class projects is required for graduation. Following is a brief semester-by-semester outline of the curriculum:


Software Engineering ISoftware DesignSoftware ArchitectureUser Interface Design & Eval.
Data ModelingSoftware Process & QAProject ManagementElective I
Industrial SeminarsSoftware Test & Verif.Industrial SeminarsElective II
7 credits8 credits7 credits8-9 credits

Semester 1:

SENG 5707: Data Modeling

Hands-on course in database systems, including modeling and querying. Fundamental concepts, data models, data manipulation languages, extending data types, database design, and security and integrity policy. Application techniques for the use of database systems. Concepts practiced in design and development of database applications. (3 credits)

SENG 5801: Software Engineering I: Overview, Requirements, and Modeling

Broad introduction of software engineering as a discipline and a preview of topics to be covered in subsequent courses in the Master of Science in Software Engineering Program; in depth study of Requirements Engineering; and an overview of various modeling techniques applicable to requirements and specification, including UML and formal modeling. (3 credits)

SENG 5899: Industrial Seminar Series

Four half-day tutorials on a variety of topics. (1 credit) Here are a few samples of past seminar topics. Seminars are generally scheduled on Saturdays, and are open to the public.
  • Professional ethics for software engineers
  • Software re-engineering and maintenance
  • Legal and intellectual property issues
  • Configuration management
  • System management & computer security
  • Safety-critical systems engineering
  • Entrepreneurship
  • Technical writing
  • Software engineering in a start-up environment

Semester 2:

SENG 5802: Software Engineering II: Software Design

Develop fluency in object-oriented design. We study semantics of object-oriented languages, strengths and limitations of the object-oriented approach, processes that can lead to good design outcomes, graphical and textual representations for design including UML, common problems and some of the patterns that can solve them, and refactoring. Students develop an ability to read and critique designs, and to clearly present and advocate design ideas. Students work in teams to complete a multi-phase design project.(3 credits)

SENG 5811: Software Testing and Verification

Theoretical and practical aspects of testing software. Students participate in the entire range of test activities, from analyzing a requirements document for test conditions through executing test cases and writing a test report. In addition there will be much discussion on the types of testing that should be done, who should do it, and why it should be done at all. At course completion, the student should confidently be able to organize and carry out the software testing phase for any small or medium-size software project. (2 credits)

SEng 5852: Quality Assurance and Process Improvement

Theory and application of the capability maturity model: process assessment, modeling, and improvement techniques. Life cycle issues related to development and maintenance, quality, safety, and security assurance, project management, and automated support environments. Students participate in group projects and case studies. (3 credits)

Semester 3:

SENG 5851: Software Project Management

This course covers the core processes, tools, techniques and fundamentals of project management. The class covers both traditional and Agile project management methodology. At the end of the class, you will understand pros and cons of both methodologies and will know how to apply the appropriate methodology to a given situation.

SENG 5861: Introduction to Software Architecture

Software architecture is primarily concerned with partitioning large systems into smaller ones that can be created separately, that individually have business value, and that can be straightforwardly integrated with one another and with existing systems, and that can scale independently of each other. The goal of this course is to master skills that support this partitioning. At the end of the course, a proficient student should be able to:
  • Use different viewpoints to organize partitioning to support deployment, maintenance and functional extension.

SENG 5899: Industrial Seminar Series

Four half-day tutorials on a variety of topics. (1 credit) Here are a few samples of past seminar topics. Seminars are generally scheduled on Saturdays, and are open to the public.
  • Professional ethics for software engineers
  • Software re-engineering and maintenance
  • Legal and intellectual property issues
  • Configuration management
  • System management & computer security
  • Safety-critical systems engineering
  • Entrepreneurship
  • Technical writing
  • Software engineering in a start-up environment

Semester 4:

SENG 5115: Graphical User Interface Design and Evaluation

This class covers the theory, design, and evaluation process for interactive application interfaces. The course is built around a design and evaluation project that is completed in groups. Topics include: human capabilities and limitations, the interface design and engineering process, prototyping, and interface evaluation. As time permits, we’ll cover topics such as ubiquitous and wearable computing, social computing, games, etc.


Each year, second-year students vote for a set of elective offerings, and may register for 1 or 2 electives in the fourth semester. Examples of electives offered in recent years include:

SENG 5511: Artificial Intelligence and Software Agents

Problems in search, logic, and game playing, first order predicate logic, inference, and knowledge representation. Definitions of "intelligent" or "autonomous" agents, agent classifications, agent architectures, and various application areas, such as electronic commerce and robotics. Includes a semester project, which may be done individually or in teams.

SENG 5708: Data Analytics

Data Analytics is the collection of technologies that enable an enterprise to analyze its entire collection of data to extract knowledge that can help it in its day-today functions as well as strategic directions. Practically every function of the enterprise, including marketing, customer service, operations, security, purchase, etc., can benefit from it. This course provides a detailed introduction of the technologies that comprise data analytics, including data warehousing, data mining, and reporting, with a strong emphasis on applications.

SENG 5831: Software Development for Real-Time and Embedded systems

Real-time systems are systems in which a timely response by a computer to external stimuli is vital to the performance of the system's objective. We begin with basic computer architecture and hardware elements relevant to the study of real-time issues, including low-level input/output devices, interrupt controllers, and CPU cores. Next we study software design and specification methods such as flowcharts, state transition diagrams (finite state automata), and petri nets.

SENG 5841: Formal Modeling and Analysis in Software Engineering

Traditionally, software development has been largely a manual endeavor. Validation that we are building the right system has been achieved through requirements and specification inspections and reviews. Verification that the system is developed to satisfy its specification is archived through inspections of design artifacts and extensive testing of the implementations.

SENG 8891: Independent Project

Students will work individually or in teams with an advisor on an advanced software or research project. (2 or 3 credits)

SENG Topics: Data and Network Security: Theory and Practice

This course introduces major topics of cyber security, often focusing on specific aspects like cloud computing or mobility. Class time focuses on demonstrations, exercises, mini-projects, and discussions. Materials are introduced through readings or video lectures, with comprehension checked through online quizzes (multiple retries allowed). Topics include authentication, access control, file system forensics, symmetric and asymmetric cryptography, email security, and dynamic web site attacks.

SENG Topics: Exploring Dynamic Languages

Technology changes, it's a fact of life. And while many developers are attracted to the challenge of change, many organizations do a particularly poor job of adapting. We've all worked on projects with, ahem, less than new technologies even though newer approaches would better serve the business. But how do we convince those holding the purse strings to pony up the cash when things are "working" today? At a personal level, how do we keep up with the change in our industry?

SENG Topics: Internet of Things

Project-based examples from modern “Internet of Things” (IoT) systems. Hands-on experiments with core wireless hardware, sensors, and software elements. Students will gain the practical system-level skills and understandings able to be applied to any IoT system, and walk away with an IoT project created themselves. There will be discussions and team-centric activities focused on market trends, ground-breaking tech and products, security, communication protocols, and exciting emerging technologies related to IoT including machine learning, artificial intelligence, and augmented reality.

SENG Topics: Mobile Application Development

This elective will be based around a mobile development project and will require programming. Students will be asked to choose a mobile platform and work through an application throughout the semester. The mobile application project will completed individually or in teams of two. Students can select their own application (of appropriate scope) or work through a project proposed by the instructors.

SENG Topics: Web Application Development

This is a hands-on, project-oriented course where students will learn about numerous aspects of developing modern web-based applications by actually developing systems during the course of the semester. The course will cover topics such as object-relational mapping, transactions, model view controller architectures, web services, integration, sending email, security, deployment, and web presentation layer technologies.