Lecture notes for Loyola University Chicago CS 313/413: Intermediate Object-Oriented Development