Design Patterns

Product type

Design Patterns

Coursera (CC)
Logo Coursera (CC)
Provider rating: starstarstarstar_halfstar_border 7.2 Coursera (CC) has an average rating of 7.2 (out of 6 reviews)

Need more information? Get more details on the site of the provider.

Description

When you enroll for courses through Coursera you get to choose for a paid plan or for a free plan

  • Free plan: No certicification and/or audit only. You will have access to all course materials except graded items.
  • Paid plan: Commit to earning a Certificate—it's a trusted, shareable way to showcase your new skills.

About this course: Design problems in applications can be resolved through design patterns commonly applied by experts. This course extends object-oriented analysis and design by incorporating design patterns to create interactive applications. Through a survey of established design patterns, learners will gain a foundation for more complex software applications. Finally, learners will identify problematic software designs by referencing a catalog of code smells. Learners will be challenged in the capstone project to critique an existing Java application for code smells. They will redesign the application to combine design patterns such as within the Model-View-Controller (MVC) design. …

Read the complete description

Frequently asked questions

There are no frequently asked questions yet. If you have any more questions or need help, contact our customer service.

When you enroll for courses through Coursera you get to choose for a paid plan or for a free plan

  • Free plan: No certicification and/or audit only. You will have access to all course materials except graded items.
  • Paid plan: Commit to earning a Certificate—it's a trusted, shareable way to showcase your new skills.

About this course: Design problems in applications can be resolved through design patterns commonly applied by experts. This course extends object-oriented analysis and design by incorporating design patterns to create interactive applications. Through a survey of established design patterns, learners will gain a foundation for more complex software applications. Finally, learners will identify problematic software designs by referencing a catalog of code smells. Learners will be challenged in the capstone project to critique an existing Java application for code smells. They will redesign the application to combine design patterns such as within the Model-View-Controller (MVC) design. After completing this course, a learner 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.

Created by:  University of Alberta
  • Taught by:  Kenny Wong, Associate Professor

    Computing Science, Faculty of Science
Basic Info Course 2 of 4 in the Software Design and Architecture Specialization Level Intermediate Commitment Four weeks of study, 5 – 8 hours/week Language English How To Pass Pass all graded assignments to complete the course. Coursework

Each course is like an interactive textbook, featuring pre-recorded videos, quizzes and projects.

Help from your peers

Connect with thousands of other learners and debate ideas, discuss course material, and get help mastering concepts.

Certificates

Earn official recognition for your work, and share your success with friends, colleagues, and employers.

University of Alberta UAlberta is considered among the world’s leading public research- and teaching-intensive universities. As one of Canada’s top universities, we’re known for excellence across the humanities, sciences, creative arts, business, engineering and health sciences.

Syllabus


WEEK 1


Introduction to Design Patterns: Creational & Structural Patterns



Design patterns help to solve common design issues in object-oriented software. You will learn what they are and how they can be applied. In this module you will learn the creational and structural design patterns. You will continue to learn and practice expressing designs in UML, and code some of these patterns in Java.


9 videos, 5 readings expand


  1. Reading: Meet Your Presenter – Sam Jeffery
  2. Reading: Meet Your Facilitator – Christopher Djuric
  3. Video: 2.1.1 – What is a Design Pattern?
  4. Discussion Prompt: Introduce Yourself
  5. Discussion Prompt: Design Pattern Examples
  6. Reading: Design Patterns Glossary
  7. Video: 2.1.2 – Creational, Structural, and Behavioural Patterns
  8. Video: 2.1.3 – Singleton Pattern
  9. Video: 2.1.4 – Factory Method Pattern
  10. Video: 2.1.5 – Facade Pattern
  11. Video: 2.1.6 – Adapter Pattern
  12. Peer Review: Ungraded Assignment – Adapter Pattern
  13. Reading: Ungraded Assignment - Adapter Pattern (Solution)
  14. Video: 2.1.7 – Composite Pattern
  15. Peer Review: Ungraded Assessment – Composite Pattern
  16. Reading: Ungraded Assignment - Composite Pattern (Solution)
  17. Video: 2.1.8 – Proxy Pattern
  18. Video: 2.1.9 – Decorator Pattern

Graded: Module 1 Review

WEEK 2


Behavioural Design Patterns
You will continue learning useful design patterns and add them to your toolbox. In this module, you will learn the behavioural patterns. This will include communicating them in UML and coding them in Java!


5 videos, 3 readings expand


  1. Video: 2.2.1 – Template Method Pattern
  2. Video: 2.2.2 – Chain of Responsibility Pattern
  3. Video: 2.2.3 – State Pattern
  4. Discussion Prompt: Undo/Redo As a Pattern
  5. Video: 2.2.4 – Command Pattern
  6. Reading: Mediator Pattern
  7. Reading: Capstone Assignment 2.1 - Implement the Command Pattern (Solution)
  8. Video: 2.2.5 – Observer Pattern
  9. Peer Review: Ungraded Assignment – Observer Pattern
  10. Reading: Ungraded Assignment - Observer Pattern (Solution)

Graded: Capstone Assignment 2.1– Implement the Command Pattern
Graded: Module 2 Review

WEEK 3


Working with Design Patterns & Anti-patterns



You will learn a design pattern that is very useful for user interfaces: model-view-controller, or MVC. Then you will learn some principles underlying the design patterns, to create software that is flexible, reusable, and maintainable. Finally, you will learn some of the symptoms of bad design, which we call code smells or antipatterns.


8 videos, 3 readings expand


  1. Video: 2.3.1 – MVC Pattern
  2. Peer Review: Ungraded Assignment – MVC Pattern
  3. Reading: Ungraded Assignment - MVC Pattern (Solution)
  4. Reading: Capstone Assignment 2.2 - Implement MVC Pattern (Solution)
  5. Reading: Liskov Substitution Principle
  6. Video: 2.3.2 – Open/Closed Principle
  7. Video: 2.3.3 – Dependency Inversion Principle
  8. Video: 2.3.4 – Composing Objects Principle
  9. Video: 2.3.5 – Interface Segregation Principle
  10. Video: 2.3.6 – Principle of Least Knowledge
  11. Discussion Prompt: Stories of Bad Coding
  12. Video: 2.3.7 – Part 1 - Code Smells
  13. Video: 2.3.7 – Part 2 - Code Smells

Graded: Capstone Assignment 2.2 – Implement MVC Pattern
Graded: Module 3 Review

WEEK 4


Capstone Challenge



In the previous modules, you were introduced to a variety of design patterns, and applied two of these to the example Android code base. Now, in the final module of the course, you will identify and fix specific code smells in this code base. After completing these tasks, you will be ready to complete the final exam.


3 readings expand


  1. Reading: Capstone Assignment 2.3 - Identify and Fix Code Smells (Solution)
  2. Discussion Prompt: Last Word – Design Patterns
  3. Reading: Acknowledgements
  4. Reading: Credits

Graded: Capstone Assignment 2.3 – Identify and Fix Code Smells
Graded: Final Exam
There are no reviews yet.

Share your review

Do you have experience with this course? Submit your review and help other people make the right choice. As a thank you for your effort we will donate $1.- to Stichting Edukans.

There are no frequently asked questions yet. If you have any more questions or need help, contact our customer service.