Academics
  /  
Courses
  /  
Descriptions
COMP_SCI 396: Software Design Principles and Practices


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)