Carnegie Mellon University

Electrical and Computer Engineering

College of Engineering

Course Information

18-652SA: Foundations of Software Engineering




In this course, you will learn about software engineering paradigms that have shaped the software industry over the past few decades. You will be exposed to fundamental disciplines of software engineering as well as engineering practices that crosscut system, project, and user perspectives. You will learn to iteratively define requirements, and architect, design, implement, integrate, test, and deploy a solution. You will work on self-organizing teams and manage the work collaboratively. You will also learn to solve a real problem subject to multiple constraints while keeping the stakeholders involved throughout the lifecycle and balancing the underlying engineering tradeoffs. The topics are applied in the context of a semester-long group project. Please note that this course is intended for ECE master students with a concentration in Software Engineering and will satisfy the "Software Engineering and Design" course area requirement. Students should be familiar with basic software development experience with proficiency in at least one modern programming language and modern programming concepts.

Prior to admission, students must successfully complete a programming assignment to demonstrate familiarity with required software technologies.

Last Modified: 2024-01-19 10:47AM

Semesters offered:

  • Spring 2024
  • Fall 2023
  • Spring 2023
  • Fall 2022
  • Spring 2022
  • Fall 2021
  • Spring 2021
  • Fall 2020
  • Spring 2020
  • Fall 2019
  • Spring 2019
  • Fall 2018
  • Spring 2018
  • Fall 2017
  • Spring 2017
  • Fall 2016
  • Spring 2016
  • Fall 2015
  • Spring 2015
  • Fall 2014