Software products are increasingly built as distributed, API‑driven systems that must evolve quickly while remaining reliable, secure, and cost‑effective. The responsibility of Software Product Managers and technical leaders now extends well beyond core features into non‑functional aspects such as cloud platform choices, scalability, interoperability, observability, and responsible use of AI.
This course makes students technically savvy about the architecture of modern software products so they can influence design decisions before failures surface in production. Students will learn to analyze layered and service‑oriented architectures, design and critique RESTful APIs, reason about quality attributes (for example, scalability, reliability, security, performance), and understand how patterns such as data pipelines, serverless, and AI services fit into an overall system.
Rather than focusing on low‑level coding, the course emphasizes architecture models, trade‑off analysis, and collaboration with engineering teams; light implementation work (primarily in Python and JavaScript) is used to illuminate core concepts. The course also teaches students how to leverage AI‑assisted tools as “junior architects” and code assistants—using them to generate options and tests, while retaining human judgment over system design. Some class sessions use a Flipped Classroom model, where lectures are delivered as short videos and class time is dedicated to clarification, discussion, and working on architecture and API design assignments.
All downloads require Andrew login. Files are subject to change and latest versions are available on course Canvas pages. This year, we will incorporate AI concepts into the course. The final module structure will be available in August.