“This Software Engineering course will focus on the process of Object-Oriented Analysis and Design. Students will be expected to complete a large number of exercises in Domain Modeling, Use Case Analysis, and Object-Oriented Design. In addition, the course will investigate Design Patterns, which are elements of reusable object-oriented software designs. This course will survey a set of design patterns and consider how these patterns are described and used to solve design problems. Recommended Background: CS 2303 and CS 3733.”
CS 4233 introduced many different design patterns and utilized large software projects to hammer in the concepts. Test-driven development was used extensively in both assignments, and other patterns such as the observer pattern, SOLID design principles, and dependency injection were in the major Escape game (a project requiring multiple iterations). This project also helped practice concepts such as lambdas, interfaces, abstraction, and overall maintenance of readable code.