Software Engineering, SCS Concentration
Michael Hilton, Concentration Director and Advisor
Location: Wean Hall 5122
Software Engineering Concentration
This concentration is available to SCS students only.
Effectively building modern software systems at scale requires not just programming skills, but also engineering skills. These skills include the ability to interact effectively with customers to gather the requirements for a system in a precise way; to develop a design that resolves competing quality attributes; to make tradeoffs among schedule, cost, features, and quality to maximize value to stakeholders; to work effectively with other engineers; and to assure the quality of the delivered software system. We hear regularly from industry that these skills are crucial to them, and that they are interested in students with a strong software engineering background.
Learning Objectives
The software engineering concentration is designed to teach the fundamental tools, techniques, and processes of software engineering. Through internships and a mentored project experience, students gain an understanding of the issues of scale and complexity that motivate software engineering tools and techniques. The core curriculum includes material both on engineering the software product and on the process, teamwork, and management skills that are essential to successful engineering. Graduates of the program should have the technical, process, and teamwork skills to be immediately productive in a mature engineering organization.
Curriculum
Prerequisites
SCS students should have completed the following courses before completing this concentration:
| Units | ||
| 17-214 | Principles of Software Construction: Objects, Design, and Concurrency | 12 |
Course Requirements
Overall, the concentration requires five (5) courses and an internship. One of the five courses consists of a 6-credit course that serves as a writing workshop in which the student reflects upon and integrates the lessons of the internship.
Required Courses (complete all of the following):
Electives (complete each category):
| At least 9 units total. | ||
| 15-414 | Bug Catching: Automated Program Verification and Testing | 9 |
| 17-355 | Program Analysis | 12 |
| 17-356 | Software Engineering for Startups | 12 |
| 17-480 | API Design and Implementation | 12 |
| 17-653 | Managing Software Development (prerequisite 17-413 or an internship) | 6 |
| 17-423 | Software System Design | 12 |
| Methods Elective (take both 6-unit mini courses) | ||
| 17-614 | Formal Methods | 6 |
| 17-624 | Advanced Formal Methods | 6 |
| Requirements Elective: Design & Marketing (take two 6-unit mini courses) | ||
| 17-612 | Business and Marketing Strategy | 6 |
| Take either: | ||
| 17-626 | Requirements for Information Systems | 6 |
| 17-627 | Requirements for Embedded Systems | 6 |
| Managing Development (take two 6-unit mini courses) | ||
| 17-622 | Agile Methods | 6 |
| Another mini course of your choice from within this larger list. | ||
| Quality Engineering (take two 6-unit mini courses) | ||
| 17-443 | Quality Management | 6 |
| 17-623 | Quality Assurance | 6 |
| 17-731 | Foundations of Privacy | 12 |
| Crosslisted courses allowed. | ||
| 15-390 | Entrepreneurship for Computer Science | 12 |
| 17-200 | Ethics and Policy Issues in Computing | 9 |
| 70-311 | Organizational Behavior | 9 |
| 17-331 | Information Security, Privacy and Policy in the Age of AI | 12 |
| 17-333 | Privacy Policy, Law, and Technology | 9 |
| 17-334 | Usable Privacy and Security | 9 |
| 19-403 | Policies of Wireless Systems | 12 |
| 70-471 | Supply Chain Management | 9 |
| 17-562 | Computer and AI Law | 9 |
| 17-781 | Mobile and IoT Computing Services | 12 |
| 17-801 | AI Enabled Network Science | 12 |
| 17-821 | Computer Simulation of Complex Socio-Technical Systems | 12 |
| 88-341 | Team Dynamics and Leadership | 9 |
| Crosslisted courses allowed. | ||
See concentration website for additional course options; additional courses may be counted if prior-approval is given by the Concentration Director.
Students can apply one semester of a senior honors research thesis or research-based independent study in a topic related to this concentration, as approved by the concentration director/advisor, as one of the elective courses for this concentration. This research must have a significant communication component, including a paper or technical report, and a poster presentation. Any research course can count for at most 12 units toward the concentration and can count for at most one elective. Consult with the concentration director on what elective can be replaced in this option.
Internship and Reflection
| 17-415 | Software Engineering Reflection | 6 |
