Design Patterns

  • 4.7
Approx. 15 hours to complete

Course Summary

This course teaches the fundamentals of design patterns, a widely used software engineering concept that helps to solve common problems in programming. Students will learn how to implement and apply design patterns to real-world scenarios.

Key Learning Points

  • Learn how to recognize and apply design patterns in software development
  • Understand the benefits and drawbacks of using design patterns
  • Gain experience implementing design patterns in practical projects

Related Topics for further study


Learning Outcomes

  • Understand the principles and benefits of design patterns
  • Be able to recognize and implement common design patterns
  • Gain practical experience applying design patterns to real-world scenarios

Prerequisites or good to have knowledge before taking this course

  • Basic programming knowledge in a language like Java, C++, or Python
  • Familiarity with object-oriented programming concepts

Course Difficulty Level

Intermediate

Course Format

  • Self-paced online course
  • Video lectures and coding exercises

Similar Courses

  • Advanced Object-Oriented Programming
  • Software Architecture

Related Education Paths


Notable People in This Field

  • Martin Fowler
  • Robert C. Martin

Related Books

Description

This course extends object-oriented analysis and design by incorporating design patterns to create interactive applications. Through a survey of established design patterns, you will gain a foundation for more complex software applications. Finally, you will identify problematic software designs by referencing a catalog of code smells.

Outline

  • Introduction to Design Patterns: Creational & Structural Patterns
  • 2.1.1 – What is a Design Pattern?
  • 2.1.2 – Creational, Structural, and Behavioural Patterns
  • 2.1.3 – Singleton Pattern
  • 2.1.4 – Factory Method Pattern
  • 2.1.5 – Facade Pattern
  • 2.1.6 – Adapter Pattern
  • 2.1.7 – Composite Pattern
  • 2.1.8 – Proxy Pattern
  • 2.1.9 – Decorator Pattern
  • Meet Your Presenter – Sam Jeffery
  • Meet Your Facilitator– Cecilia Xiang
  • Discussion: Introduce Yourself
  • Discussion: Design Pattern Examples
  • Design Patterns Course Notes
  • Design Patterns Glossary
  • Ungraded Assignment - Adapter Pattern (Solution)
  • Ungraded Assignment - Composite Pattern (Solution)
  • Module 1 Review
  • Behavioural Design Patterns
  • 2.2.1 – Template Method Pattern
  • 2.2.2 – Chain of Responsibility Pattern
  • 2.2.3 – State Pattern
  • 2.2.4 – Command Pattern
  • 2.2.5 – Observer Pattern
  • Discussion: Undo/Redo As a Pattern
  • Mediator Pattern
  • Peer Review Request Forum
  • Capstone Assignment 2.1 - Implement the Command Pattern (Solution)
  • Ungraded Assignment - Observer Pattern (Solution)
  • Module 2 Review
  • Working with Design Patterns & Anti-patterns
  • 2.3.1 – MVC Pattern
  • 2.3.2 – Open/Closed Principle
  • 2.3.3 – Dependency Inversion Principle
  • 2.3.4 – Composing Objects Principle
  • 2.3.5 – Interface Segregation Principle
  • 2.3.6 – Principle of Least Knowledge
  • 2.3.7 – Part 1 - Code Smells
  • 2.3.7 – Part 2 - Code Smells
  • Ungraded Assignment - MVC Pattern (Solution)
  • Capstone Assignment 2.2 - Implement MVC Pattern (Solution)
  • Liskov Substitution Principle
  • Discussion: Stories of Bad Coding
  • Module 3 Review
  • Capstone Challenge
  • Capstone Assignment 2.3 - Identify and Fix Code Smells (Solution)
  • Discussion: Last Word – Design Patterns
  • Acknowledgements
  • Credits
  • Final Exam

Summary of User Reviews

The Design Patterns course on Coursera has received high praise from users. Many have found it to be a valuable resource for learning about design patterns and software engineering. One key aspect that users have appreciated is the clear and concise explanations provided by the instructor.

Pros from User Reviews

  • Clear and concise explanations
  • Thorough coverage of design patterns
  • Engaging assignments and projects
  • Helpful feedback from instructors

Cons from User Reviews

  • Some users found the course to be too basic
  • Several users reported technical difficulties with the platform
  • A few users felt that the course was not worth the price
  • Some users found the pace of the course to be too slow
  • A few users felt that the course could benefit from more real-world examples
English
Available now
Approx. 15 hours to complete
Kenny Wong
University of Alberta
Coursera

Instructor

Kenny Wong

  • 4.7 Raiting
Share
Saved Course list
Cancel
Get Course Update
Computer Courses