MPCS 51220 Applied Software Engineering (Spring 2022)

Section 1
Instructor(s) Vassilatos, Peter (pete)
Location JCL 298
Meeting Times Thursday 5:30pm - 8:30pm
Fulfills Elective Specialization - Software Engineering (SE-2)


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 conflicts with these other classes:

  • MPCS 51083-1 -- Cloud Computing
  • MPCS 53001-1 -- Databases

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)