MPCS 51220 Applied Software Engineering (Spring 2023)

Section 1
Instructor(s) Vassilatos, Peter (pete)
Location None
Meeting Times
Fulfills Elective Specialization - Software Engineering (SE-2)


*Please note: This is the syllabus from the 2021/22 academic year and subject to change.*

In this course, we will explore practical techniques to solving modern software challenges.

There's some flexibility in the syllabus, but planned topics include:

  • Code quality

  • Managing complexity

  • Test-driven development

  • Domain-driven design

  • Architectural design patterns

  • Source control techniques for small teams with Git

  • Security and cryptography essentials

  • Continuous integration & deployment

  • APIs and API management


Course work and Grading

  • 30% --  Individual homework 

  • 40% -- Group homework/project

  • 15% -- Course engagement 

  • 15% -- Exams (midterm, final)


Required Textbooks

To be announced.

Course Prerequisites

Core Programming

Other Prerequisites

This course requires competency in Unix and Linux. Please plan to attend the MPCS Unix Bootcamp ( or take the online MPCS Unix Bootcamp Course on Canvas.

Overlapping Classes

This class is scheduled at a time that does not conflict with any other classes this quarter.

Eligible Programs

Masters Program in Computer Science MS in Computational Analysis in Public Policy (Year 2) MS in Molecular Engineering MA in Computational Social Science (Year 2) Bx/MS in Computer Science (Option 1: Research-Oriented) Bx/MS in Computer Science (Option 2: Professionally-oriented - CS Majors) Bx/MS in Computer Science (Option 3: Profesionally-oriented - Non-CS Majors)