Carnegie Mellon University

Plan of Study

The MSE Scalable and Embedded Systems programs are both 16-month long and consist of three traditional semesters and one summer internship. The programs begin in the fall and conclude the following year in December. While the summer session is reserved exclusively for the requisite internship, the second fall semester is dedicated to an intensive practicum project.

Courses in the first year are divided into 7-week mini-semesters to allow students to concurrently learn a wider range of topics, while scaffolding learning to more advanced topics later in the program. For example, Semester 1-2 is the second half of the first program semester, normally in the Fall.

Sample Curriculum — Scalable Systems Focus

Semester 1-1

17-603 Communications for Software Leaders I
17-611 Statistics for Decision Making
17-619 Product Management Essentials I
17-614 Formal Methods
17-695 Design Patterns

 

Semester 1-2

17-603 Communications for Software Leaders I
17-622 Agile Methods
17-623 Quality Assurance
17-625 API Design
17-626 Requirements for Information Systems

Semester 2-1

17-604 Communications for Software Engineers II
17-632 Software Project Management
17-635 Software Architecture
17-636 DevOps: Engineering for Secure Development and Deployment
+ Elective course

Semester 2-2

17-604 Communications for Software Leader II
17-636 DevOps: Engineering for Secure Development and Deployment
17-643 Quality Management
17-647 Data-intensive and Scalable Systems
+ Elective course

Semester 3

17-667 Internship for Software Engineers

Semester 4

17-675 Software Engineering Practicum
+ Elective course

Scalable Systems Learning Outcomes

Outcome 1: Produce scalable system designs to include: identifying suitable scalability, integration, and operations patterns and use disciplined analysis techniques to perform engineering tradeoffs and determine the fitness of their designs.
Outcome 2: Design software for scalable systems to include: selecting appropriate data structures and algorithms, software structures and patterns, to satisfy systemic functional and quality attribute requirements (e. g. scalability, modifiability, performance, etc.).
Outcome 3: Select the appropriate development lifecycles and processes for an scalable systems project in a given organizational and business context, and manage small project development teams to include: developing project plans, tracking progress, and utilizing data driven project controls.
Outcome 4: Assure systems hardware and software quality with respect to functional correctness and key system qualities (e g. safety, reliability, performance, and so forth) using disciplined testing, analysis, verification and validation methodologies and technologies.
Outcome 5: Interact with internal and external customers to perform systems requirements engineering (elicitation, analysis, and change management) for a scalable systems project in a given organizational and business context.
Outcome 6: Create clear and concise technical and project documentation (e g. requirements, design, planning, and so forth) and effectively communicate such information to managerial, customer, and technical stakeholders.

Sample Curriculum — Embedded Systems Focus

Semester 1-1

17-603 Communications for Software Leaders I
17-611 Statistics for Decision Making
17-619 Product Management Essentials I
17-614 Formal Methods
17-638 Engineering Embedded Systems

 

Semester 1-2

17-603 Communications for Software Leaders I
17-622 Agile Methods
17-623 Quality Assurance
17-625 API Design
17-627 Requirements for Embedded Systems

Semester 2-1

17-604 Communications for Software Leaders II
17-632 Software Project Management
17-635 Software Architecture
17-636 DevOps: Engineering for Secure Development and Deployment
+ Elective course

Semester 2-2

17-604 Communications for Software Leaders II
17-636 DevOps: Engineering for Secure Development and Deployment
17-643 Quality Management
17-648 Sensor-based Systems
+ Elective course

Semester 3

17-667 Internship for Software Engineers

Semester 4

17-675 Software Engineering Practicum
+ Elective course

Embedded Systems Learning Outcomes

Outcome 1: Produce embedded system designs to include: identifying suitable microcontrollers, peripheral hardware, operating systems, and utilize disciplined analysis techniques to perform engineering tradeoffs and determine the fitness of their designs.
Outcome 2: Design software for embedded systems to include: selecting appropriate data structures and algorithms, software structures and patterns, to satisfy systemic functional and quality attribute requirements (e. g. safety, reliability, performance, etc.).
Outcome 3: Design and develop embedded systems and software involving the use and selection of bare metal techniques as well as suitable operating systems for embedded microcontrollers.
Outcome 4: Select the appropriate development lifecycles and processes for an embedded systems project in a given organizational and business context, and manage small project development teams to include: developing project plans, tracking progress, and utilizing data driven project controls.
Outcome 5: Assure systems hardware and software quality with respect to functional correctness and key system qualities (e g. safety, reliability, performance, and so forth) using disciplined testing, analysis, verification and validation methodologies and technologies.
Outcome 6: Interact internal and external customers to perform systems requirements engineering (elicitation, analysis, and change management) for an embedded systems project in a given organizational and business context.
Outcome 7: Create clear and concise technical and project documentation (e g. requirements, design, planning, and so forth) and effectively communicate such information to managerial, customer, and technical stakeholders.