Description
Focuses on the tools and techniques for designing and implementing elegant, robust, and flexible software systems. Coverage includes object discovery, system modeling, composition and inheritance, design patterns, test-driven development, and emergent design. Fall Term even years. Prerequisite: CS 120.