17-313 Foundations of Software Engineering
12 units, Carnegie Mellon University
Students gain exposure to the fundamental principles of software engineering. This includes both core CS technical knowledge and the means by which this knowledge can be applied in the practical engineering of complex software in real-world settings. Topics related to software artifacts include coding, software architecture, measurement, and quality assurance of various qualities (e.g., robustness, security, performance, maintainability) with static and dynamic analysis, testing, code review, and inspection. Topics related to software process include requirements engineering, process models and evaluation, personal and team development, and supply chain issues including outsourcing and open source. This course has a strong technical focus, a strong focus on developing team skills, and will include both written and programming assignments. Students will get experience with the latest software engineering tools and practices.
Prerequisites: 15-122 or 15-121
Offered: Spring 2027, Fall 2026, Spring 2026, Fall 2025
Courseweave needs JavaScript to show sections, workloads and planning tools.