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 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 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.