Prerequisites, the Approach, and Learning Outcomes

Get an overview of why we need design patterns.


Welcome aboard! Before starting this course on design and architectural patterns, you need to have an understanding of these programming concepts:

  • Advanced C++
  • Object-oriented programming

Our approach

We’re using a practical approach in this course. We include a coding example with every pattern. In the design patterns, we explain scenarios without the design pattern applied and discuss the issue in the design. Then, we show how a specific design will solve the issue. Finally, we’ve added diagrams to help illustrate the different concepts.

Along with the lessons, we have assessments in the form of quizzes and challenges so you can test your understanding.

Course learning outcomes

Let’s take a look at the outcomes of this course. Upon the completion of this course, you should:

  • Understand design principles and their usage in different scenarios.
  • Understand how the idioms and architectural/concurrency patterns can increase maintainability, reusability, and scalability.