Menu Expand Search
CS4530, Summer 2025

CS4530, Summer 2025: Fundamentals of Software Engineering

Overview

Building, delivering and maintaining successful software products requires more than being good at programming. Software engineering encompasses the tools and processes that we use to design, construct and maintain programs over time in coordination with other people. Development processes that work well for a single developer do not scale to large or even medium-sized teams. Similarly, development processes that work well for quickly delivering a one-off program to a client will cause chaos when applied to a codebase that needs to be maintained and updated over months and years. This class will begin to explore these tradeoffs throughout the entire software development lifecycle, with a particular focus on how these decisions affect the quality of the resulting software.

This class will serve as an introduction to the field of software engineering, covering key topics such as:

Course Outcomes

Acknowledgements

This class and its contents were inspired by Software Engineering courses at various institutions, including:

The design of this website is taken from Kevin Lin’s Just the Class Jekyll template.