Organizing and testing code is important in managing software complexity. Students in this course are introduced to Object Oriented Programming (OOP) as a way to structure software in a maintainable and testable way. Topics include interfaces, polymorphism, inheritance, type systems, and important data structures. Students build working applications and learn to validate their programs using appropriate tests.
This course is delivered using the Java programming language.