CIS 310 Program Design and Implementation II
Presents a comparative approach to software design patterns and paradigms, including object-oriented and functional programming. Reviews polymorphism in object-oriented languages. Illustrates the impact of design-time decisions on software correctness, maintainability and reusability. Fosters a deeper understanding of the principles of structured program design including interface design, test-driven development, graphical design notations, reusable software components and open-source ecosystems. Collaborating in pairs, students work throughout the semester to design and implement a large software project. This course consists of a three-hour lecture and a one-and-one-half-hour recitation.