Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

University of Alberta

Design Patterns

University of Alberta via Coursera


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.

You will be challenged in the Capstone Project to redesign an existing Java-based Android application to implement a combination of design patterns. You will also critique a given Java codebase for code smells.

After completing this course, you will be able to:
• Demonstrate how to use design patterns to address user interface design issues.
• Identify the most suitable design pattern to address a given application design problem.
• Apply design principles (e.g., open-closed, dependency inversion, least knowledge).
• Critique code by identifying and refactoring anti-patterns.
• Apply the model-view-controller architectural pattern.

Taught by

Kenny Wong


4.6 rating, based on 27 Class Central reviews

Start your review of Design Patterns

  • Anonymous
    The course was great and really helpful... Just 1 problem I have faced a lot is the programming language, I don't have experience in Java, and setting up the environment for Java and giving assignments in Java was very difficult for me.
  • Mattneri

    Mattneri completed this course, spending 2 hours a week on it and found the course difficulty to be easy.

    Content is ok for a beginner. Usually it just scratch the surface and doesn't go in great detail.
    Exercises quality is quite poor. Many errors in the UML diagrams and code examples.
  • Profile image for Sylvain Kouemo
    Sylvain Kouemo
    I started the specialization of this course, for software architecture, it's a very amazing course, well done with the maximum of information for the student
  • Anonymous
    Nice course for beginners. It teaches the base for start learning patterns.

    Som explaniations are superficial and are not so clear and it is hard to understand I recommend take notes and read the transcription to understand better.

    Something I hate are the Peer rewiew excersises because almost the 80% of them are plagarism and doesn't give a real feedback.
  • Anonymous
    The Design Pattern Course Content is really understandable. The assignments helps to learn by experiencing design topics. I enjoyed the lesson very much. I recommend
    the course to every Software Engineer.
  • Anonymous
    I think it lacked a little more practical examples. Other than that, the course is very complete and interesting.
  • Anonymous
    I really enjoy this course. All information is useful and interesting. You will get really essential skills for software development after completing this course. Material is quality and assignments are really helpful. Thanks to the creators!
  • Anonymous
    Not a complete catalouge of DPs but explains the underlying principles behind the major categories. Exams and exercises are good for practice.
  • Anonymous

    Anonymous completed this course.

    This is an excellent course for the individuals who are seeking to advance career in programming because design patterns are the flavor of programming and the code smells if it does not have patterns implemented.
    So I would recommend everyone to take this course.
  • Profile image for Stefan Karschti
    Stefan Karschti

    Stefan Karschti completed this course.

    It's a very good course to take if you're specializing in software architecture or just formalizing your specialization. The course details the most used design patterns then follows up with assignments and quizzes. I am very satisfied having taken this course.
  • Anonymous
    Great course Great course Great course Great course Great course Great course Great course Great course
  • Anonymous

    Anonymous completed this course.

    Design pattern is really useful for any developer in the world .it facilitate problem's design and make avoid some code smells to be the code flexible reusable and maintainable.
  • Profile image for Konstantinos Efkarpidis
    Konstantinos Efkarpidis
    In my opinion this course is really good start to design patterns if you are new. Before the course i had no idea what design patterns are , but now i consider that this course covered a big variety of them.
  • Anonymous
    Very good fundamental course, with clear explanations of design principles and patterns. This course is exactly what I was looking for long time!

  • Anonymous
    Excellent course! I have learned a lot. It is very useful for my career. Design patterns are essential for good design and good code.
  • Anonymous
    Great course to know a good quantity of design patterns and anti-patterns, good explanations and good practical exercises.
  • Anonymous
    Very good course with a lot of material and chances to apply what you learn with capstone peer reviewed assignments.
  • Anonymous

    Anonymous completed this course.

    Good course even if you know the basic design patterns.
    My only wish is that the course could have covered all the design patterns in the GOF pattern list which are used in day to day softwares (eg Builder pattern)
    Also I think one should not enforce knowledge of android for design pattern.
  • Profile image for Cassiano Reinert Novais Dos Santos
    Cassiano Reinert Novais Dos Santos

    Cassiano Reinert Novais Dos Santos completed this course.

    Great course to a general view of Design Patterns. I could get really a good understanding.

    The instructor are very direct and concise with great examples to make us understand.

    I recommend it for anyone searching for an online course in Design Patterns and Software Architecture.

    Thank you!
  • Anonymous
    Very good course, well balanced between theory and practice.

    I recommend it if you want to understand how to structure SW applications.

    This is my second course in the Coursera SW Design and Architecture specialization, and after having completed it, I decided to continue with the next one.

Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more.