Apr 20, 2021  
2020-21 Catalog 
2020-21 Catalog [ARCHIVED CATALOG]

Add to Favorites (opens a new window)

CS 311 - Software Patterns

5 CR

This course introduces software design paradigms, and design and architectural patterns essential for the creation of flexible, reusable, reliable and maintainable software applications. The course offers students a hands-on opportunity to apply creational, functional and behavioral design patterns, as well as architectural patterns, in a software design. 54

Prerequisite(s): CS 211   and admission to Computer Science, BS  program, or instructor’s permission.

Course Outcomes
  • Use a design paradigm to design a simple software system, and explain how system design principles have been applied in this design.
  • Identify the most suitable design pattern for a simple system suitable for a given scenario
  • Identify the software architecture pattern by differentiating among common software architectures such as layered, pipe-and-filter, and client-server
  • Apply examples of design patterns in a software design
  • Discuss and select appropriate software architecture for a simple system suitable for a given scenario.
  • Refactor an existing software implementation to improve some aspect of its design.
  • Discuss implementation trade-offs of certain patterns with respect to others

Find out when this course is offered

Add to Favorites (opens a new window)