Academics / Courses / DescriptionsCOMP_SCI 396: Software Design Principles and Practices
Academics
/ Courses
/ Descriptions
VIEW ALL COURSE TIMES AND SESSIONS
Prerequisites
CS Graduate Standing, OR (COMP_SCI211 Fundamentals of Computer Programming II, AND COMP_SCI214 Data Structures and Algorithms)Description
In this course, students will explore software design principles like S.O.L.I.D. by learning the object-oriented design patterns introduced by the Gang of Four (GoF). We will critically examine each design pattern, discussing the underlying design principles and the reasons for their necessity. Additionally, we will address the potential misuse and overuse of these patterns and principles. Students will analyze the trade-offs between different design solutions for the same problem and model software using UML diagrams.
COURSE COORDINATORS: Prof. Yiji Zhang
COURSE INSTRUCTOR: Prof. Yiji Zhang (Spring)