Architecture and Programming Principles
49-787 (Since 2016)

Software products are becoming increasingly large and complex, and the responsibility of Software Product Managers has extended beyond core product functionality into non-functional aspects like cloud platform selection, scale and reliability decisions, interoperability with other products, and future extensibility considerations. For this, they rely heavily on their development team to architect and design products that are reliable, scalable, flexible, cost-effective and "future-proof." They are surprised when the product fails to met these expectations - discovered only when the rubber meets the road - often too late to make any fundamental changes. These failures may manifest themselves in the inability of a product to scale the next million users, to integrate with other software systems, to support an international user base, or to enable sales through channels.

This course aims to get product managers technically savvy about the non-functional aspects of a software system, and enable them to be influential in the architecture and design phase of product development. It will review a variety of architectures archetypes and analyze them for relevance to specific business requirements. It will also review some well-known products and explore their architectural characteristics. Students will architect and implement a software product using the principles learned in the course. Most coding will be done in Python, JavaScript and HTML.

This course is designed for students with some experience in programming but who need to get a handle on architecture-level technical concepts.

Registering for the Course

  • MSSM First Year 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 Second Year Students – This course is generally not recommended in your final semester. 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.