Architecture and Programming Principles
49-787 (Offered since 2016)

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.

Registering for the Course

  • MSSM Incoming Students – Your academic advisor will make a recommendation whether you should take this course. This happens on the course registration day as part of the orientation before your first semester.
  • MSSM Continuing Students – This course may be useful if you have not developed any technical skills in the program until now. Please reach out to the instructor with your request
  • Non-MSSM Students – You are not permitted to take this course as it is exclusively designed for MSSM students. Please do not contact the instructor for an exception.

Downloads

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.