MPCS 51220 Applied Software Engineering (Spring 2025)

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

Syllabus

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. If you attended the MPCS Unix Bootcamp you covered the required material. If you did not, please review the UChicago CS Student Resource Guide here: https://uchicago-cs.github.io/student-resource-guide/.

Course request information for non-MPCS students: https://masters.cs.uchicago.edu/student-resources/non-mpcs-student-course-requests/

Overlapping Classes

This class is scheduled at a time that conflicts with these other classes:

  • MPCS 55001-1 -- Algorithms
  • MPCS 51240-1 -- Product Management
  • MPCS 52040-1 -- Distributed Systems

Eligible Programs

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 2: Professionally-oriented - CS Majors) Bx/MS in Computer Science (Option 3: Profesionally-oriented - Non-CS Majors) Masters Program in Computer Science