About this Course
4.7
224 ratings
44 reviews
Specialization
100% online

100% online

Start instantly and learn at your own schedule.
Flexible deadlines

Flexible deadlines

Reset deadlines in accordance to your schedule.
Intermediate Level

Intermediate Level

Hours to complete

Approx. 17 hours to complete

Suggested: Four weeks of study, 5 – 8 hours/week...
Available languages

English

Subtitles: English
Specialization
100% online

100% online

Start instantly and learn at your own schedule.
Flexible deadlines

Flexible deadlines

Reset deadlines in accordance to your schedule.
Intermediate Level

Intermediate Level

Hours to complete

Approx. 17 hours to complete

Suggested: Four weeks of study, 5 – 8 hours/week...
Available languages

English

Subtitles: English

Syllabus - What you will learn from this course

Week
1
Hours to complete
7 hours to complete

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....
Reading
9 videos (Total 66 min), 8 readings, 3 quizzes
Video9 videos
2.1.2 – Creational, Structural, and Behavioural Patterns6m
2.1.3 – Singleton Pattern5m
2.1.4 – Factory Method Pattern11m
2.1.5 – Facade Pattern6m
2.1.6 – Adapter Pattern4m
2.1.7 – Composite Pattern6m
2.1.8 – Proxy Pattern7m
2.1.9 – Decorator Pattern11m
Reading8 readings
Meet Your Presenter – Sam Jeffery10m
Meet Your Facilitators10m
Discussion: Introduce Yourself10m
Discussion: Design Pattern Examples10m
Design Patterns Course Notes10m
Design Patterns Glossary10m
Ungraded Assignment - Adapter Pattern (Solution)10m
Ungraded Assignment - Composite Pattern (Solution)10m
Quiz1 practice exercise
Module 1 Review24m
Week
2
Hours to complete
6 hours to complete

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!...
Reading
5 videos (Total 33 min), 4 readings, 3 quizzes
Video5 videos
2.2.2 – Chain of Responsibility Pattern5m
2.2.3 – State Pattern6m
2.2.4 – Command Pattern8m
2.2.5 – Observer Pattern5m
Reading4 readings
Discussion: Undo/Redo As a Pattern10m
Mediator Pattern10m
Capstone Assignment 2.1 - Implement the Command Pattern (Solution)10m
Ungraded Assignment - Observer Pattern (Solution)10m
Quiz1 practice exercise
Module 2 Review24m
Week
3
Hours to complete
6 hours to complete

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....
Reading
8 videos (Total 62 min), 4 readings, 3 quizzes
Video8 videos
2.3.2 – Open/Closed Principle5m
2.3.3 – Dependency Inversion Principle6m
2.3.4 – Composing Objects Principle5m
2.3.5 – Interface Segregation Principle4m
2.3.6 – Principle of Least Knowledge7m
2.3.7 – Part 1 - Code Smells11m
2.3.7 – Part 2 - Code Smells12m
Reading4 readings
Ungraded Assignment - MVC Pattern (Solution)10m
Capstone Assignment 2.2 - Implement MVC Pattern (Solution)10m
Liskov Substitution Principle10m
Discussion: Stories of Bad Coding10m
Quiz1 practice exercise
Module 3 Review24m
Week
4
Hours to complete
4 hours to complete

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....
Reading
4 readings, 2 quizzes
Reading4 readings
Capstone Assignment 2.3 - Identify and Fix Code Smells (Solution)10m
Discussion: Last Word – Design Patterns10m
Acknowledgements10m
Credits10m
Quiz1 practice exercise
Final Examm
4.7
44 ReviewsChevron Right

Top Reviews

By ASApr 1st 2018

Its a wonderful course for all the software engineers who use object-oriented paradigm for software application development.

By MKNov 27th 2018

Very very useful to both academician and industry professionals..Thanks Coursera and University of Alberta

Instructor

Avatar

Kenny Wong

Associate Professor
Computing Science, Faculty of Science

About 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....

About the Software Design and Architecture Specialization

In the Software Design and Architecture Specialization, you will learn how to apply design principles, patterns, and architectures to create reusable and flexible software applications and systems. You will learn how to express and document the design and architecture of a software system using a visual notation. Practical examples and opportunities to apply your knowledge will help you develop employable skills and relevant expertise in the software industry....
Software Design and Architecture

Frequently Asked Questions

  • Once you enroll for a Certificate, you’ll have access to all videos, quizzes, and programming assignments (if applicable). Peer review assignments can only be submitted and reviewed once your session has begun. If you choose to explore the course without purchasing, you may not be able to access certain assignments.

  • When you enroll in the course, you get access to all of the courses in the Specialization, and you earn a certificate when you complete the work. Your electronic Certificate will be added to your Accomplishments page - from there, you can print your Certificate or add it to your LinkedIn profile. If you only want to read and view the course content, you can audit the course for free.

More questions? Visit the Learner Help Center.