Carnegie Mellon University ———

MS in Software Engineering

Mastering Advanced Software Skills in the Age of AI

The Master of Science in Software Engineering (MS in SE) is a unique program offered exclusively at CMU's Silicon Valley campus. It emphasizes a rigorous foundation in the core disciplines of software engineering, while preparing students for a field increasingly shaped by AI.

The program provides fundamental knowledge, skills, and hands-on experience by balancing theory and practice, engaging students in active learning, and encouraging collaboration on projects drawn from real-world contexts. Students learn how to work effectively with AI by building on solid software engineering skills, design software systems that incorporate AI capabilities, and ensure that the resulting systems are of high quality and ready for real-world deployment.

Our students enter the program with a strong foundation in computer science. They leave with a deep understanding of modern software engineering and the ability to build, evaluate, operate, and maintain complex systems in the age of AI.

Program Learning Objectives

  1. Demonstrate Technical Expertise in a particular area (concentration areas)
         a) By solving problems in which they apply ECE fundamentals
         b) By solving complex problems that draw on multiple aspects of ECE
         c) By solving challenging problems that reflect a depth of understanding in ECE
  2. Demonstrate a spirit of Innovation, Collaboration and Leadership
         a) By displaying out-of-the-box thinking in solving current complex problems where there are no existing answers
         b) By successfully collaborating in multidisciplinary teams
         c) By applying holistic systems-oriented thinking to their designs
         d) By participating in research projects
  3. Demonstrate professional preparation
         a) By engaging in job search and internships
         b) By successfully securing a job as a practicing engineer
         c) By honing professional skills in teamwork, work organization, and oral and written communication
  4. Demonstrate software engineering expertise
         a) By building software systems through disciplined use of software engineering practices and processes.
         b) By ensuring high quality of delivered systems through rigorous testing and analysis techniques.
         c) By incorporating the use of professional-grade AI tools across the software development lifecycle.
         d) By applying design thinking to build human-centered software systems through understanding needs, ideating solutions, prototyping, and validation.
         e) By conceiving and documenting architectures and designs that follow both novel and proven patterns to produce durable and maintainable systems.

Navigation:

> What is Software Engineering?
> How does software engineering change in the age of AI?
> Core Software Engineering Courses
> Research Opportunities
> Networking and Career Opportunities
> Teaching Assistantships
> Program Expectations
> Application Guidelines
> Further Information

What is Software Engineering?

Despite overlaps, software engineering is not the same as computer science. Computer science focuses on the foundations of computing (e.g., algorithms, computer architecture, compilers, programming languages, operating systems, machine learning). Software engineering focuses on the technical and organizational methods, practices, and tools required to develop complex software systems in teams. It addresses real-world problems across the software lifecycle, from requirements and design to implementation, quality assurance, and delivery. Because this work is inherently collaborative, software engineering is as much about team organization and communication as it is about technical execution.

^Back to top

How does software engineering change in the age of AI?

AI is transforming how software is built, but not what good engineering requires. As code generation becomes increasingly automated, software engineers must have a strong focus on understanding user needs, specifying requirements, designing robust architectures and effective tests, and validating system behavior. While AI becomes a force multiplier within the software engineering workflow, human software engineers remain in the driver seat and ultimately are responsible for the delivery of quality software systems. The MS in SE program equips students with the ability to be in control of the development process while leveraging AI effectively and responsively.

AI is also changing the software systems we build. Modern applications increasingly incorporate AI capabilities, such as intelligent assistants, recommendation engines, and automated decision-making. These systems introduce new challenges due to their non-deterministic behavior. Software engineers must integrate AI capabilities into larger software systems, validate system behavior beyond traditional code-level checks, and ensure these systems operate reliably in practice. The MS in SE program prepares students to build systems that remain architecturally sound, reliable, observable, and safe for real-world deployment.

Core Software Engineering Courses

The MS in SE program does offer the possibility of taking courses in a variety of computing fields, including computer science, cyberphysical systems, mobile computing,  security and privacy, data science, machine learning, and artificial intelligence, but its main orientation is software engineering. The following are core software engineering courses:

Check the program requirements for more information about which and how many of the above courses you need to take to obtain an MS in SE.

^Back to top

Research Opportunities

ECE's MS in SE faculty conduct research in core software engineering topics as well as complementary areas where software's role is pivotal. MS in SE students contribute to a variety of projects pursued by the MS in SE faculty and other ECE faculty across both Pittsburgh and Silicon Valley campuses to hone and apply their skills and gain experience in a research context. MS in SE students are able to participate in research activities either for credit by enrolling in ECE's MS Graduate Project course or for pay as graduate research assistants.

^Back to top

Networking and Career Opportunities

CMU's Silicon Valley campus is located at the heart of a unique and rich ecosystem with the world's highest concentration of technology organizations. From startups to giants, software is a central component of these organizations' business models, delivery systems, and operations. Students have ample opportunities to participate in this ecosystem and Silicon Valley's entrepreneurial culture via internships, tech talks, meetups, hackathons, and other on- and off-campus career development experiences. These experiences help our graduates build a career path with lifelong networking skills. Our graduates are competitively recruited by small and large companies alike, including Alphabet, Meta, Apple, Amazon, Microsoft, TikTok (Bytedance), LinkedIn, Tesla, Uber, NVIDIA and many others in the San Francisco Bay Area and high-technology centers elsewhere. Some of our students choose to develop their own business acumen through elective courses and become entrepreneurs themselves upon graduation.

Visit the Silicon Valley career services page for professional development activities available to students. For job placement statistics, visit the Postgraduate Outcomes dashboard at the CMU Career & Professional Development Center.

^Back to top

Teaching Assistantships

Teaching assistantships are available to high-performing and interested MS-SE students on a paid basis, typically after their first semester. Being a Teaching Assistant is a great way for students to improve their mentoring, communication, and leadership skills. Students invariably characterize their experience as Teaching Assistants as rewarding and an invaluable addition to their resumes.

^Back to top

Program Expectations

Computing Background and Experience: We expect most applicants to have an undergraduate degree in computer science, computer engineering, or a related computing field with a sufficient number of foundational courses in computer science and focusing on software. These foundational topics are not taught in the program: we assume all incoming students have the required knowledge. 

The list of relevant foundational courses includes:
  • Programming languages
  • Object-oriented programming
  • Software development
  • Algorithms and complexity
  • Data structures
  • Databases
  • Computer architecture
  • Operating systems
  • Compilers
While we occasionally accept exceptional applicants whose undergraduate degree is in a non-computing field, this is rare. In such cases, we look for (1) evidence of having completed qualifying foundational courses at the college or university level in relevant topics, and (2) evidence of significant work experience related to software development.

Applicants with Job Experience in Software Development: While relevant job experience is not a requirement, applicants who possess a certain level of job experience in software development, either through internships or through post-graduation employment, maximally benefit from the program.

^Back to top

Application Guidelines

Please review the graduate applications guidelines page for recommendations on how best to prepare your application package. Please also view the following guidelines specific to the MS in SE program. Following this additional guidance is central to increasing your chances of admission to the program:

  • Core program plan and motivation: Explain your plan and motivation for taking the core software engineering courses listed above. Note that 18-651 and 18-652 are mandatory courses of the program.
  • In your curriculum vitae or resume: List 1) relevant foundational courses with grades as well as 2) software development technologies with which you are familiar (beginner, intermediate, advanced, expert), including programming languages, frameworks, tools, methods, and development practices. List technologies in which you truly have proficiency. You must be able to apply them with or without AI assistance.

^Back to top

Further Information

If you have questions about the MS in SE program, contact the ECE admissions team at apps@ece.cmu.edu

For questions about the application process and administrative issues, please first explore these pages:


Additional information about the Bureau for Private Postsecondary Education (BPPE) can be found here.

^Back to top