The below table is the guide to the entire semester listing the topics and reading material. The syllabus is tentative; changes might be made to the syllabus according to the progress made by the class.

Students are responsible for the readings. Assignments and exams will cover the reading material.

Lecture Date Topics Required
Readings
Extra
Material
1,2,3 5/11, 5/13, 5/15
  • Requirements
  • Abstraction Barriers
  • Specification
  • Code
4,5 5/18, 5/20
  • Information Hiding
  • Unit Testing
  • Interchangeable Parts
  • Semester Project Kickoff
  • Teamwork
  • Code Reviews
  • Object-Oriented Programming
  • Polymorphism
6 5/27
  • HTTP
  • Web Services
  • REST
7,8 6/1, 6/3
  • Design Patterns
  • Reuse
  • Refactor
None.
9,10 6/8, 6/10
  • Mocking
  • Logging
  • Linux Containers - Docker
None.
11 6/17
  • Reflection
Material created by Prof. Will Clinger; used by permission.