Design Patterns & System Design

collapse

Course Details

About this Course


In software engineering, a software design pattern is a general, reusable solution to a commonly occurring problem. This course aims to arm students with the software design skills required to produce real-world, extensible, performant and scalable software systems.  

Starting with an introduction to code design patterns such as Factory, Singleton and Adapter, this course exposes students to the SOLID design principles used to build extensible designs efficiently. We’ll explore common system design components such as databases, caching and different kinds of architectural patterns, and then dive deeper into the techniques used to scale software systems like database sharding, distributed transactions, load balancing and asynchronous communication. By the end of the course, you’ll be familiar with the critical aspects of software architecture. 

What You'll Learn

  • Ways to apply software design principles and design patterns to build components of a software application
  • How to define system architecture and concepts
  • Techniques for answering and solving common system design interview problems
  • Experience with the latest specialized design paradigms
  • How and when to choose between relational and non-relational databases 

Get Hands-On Experience 

You'll design an individual software component and then build the architecture of a larger system that includes the interactions between multiple components.

Program Overview

This course is part of the Certificate in Software Development & Design Essentials.

  Get our email newsletter with career tips, event invites and upcoming program info.       Sign Up Now