This course teaches principles and practices of advanced object-oriented design and programming. Students learn the following concepts: Class-Level Method design Class design Classes and interfaces Subtyping and inheritance Implementing inheritance Design by contract…