Software Design and Architecture

About the course

Think like an expert architect and create quality software using design patterns and principles.

In this specialization, you will learn how to apply design principles, patterns, and architectures to create reusable, flexible, and maintainable software applications and systems, as well as the expression and documentation of software systems 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.

What background knowledge is necessary?

Familiarity with object-oriented programming structures is essential. Basic Java programming knowledge is expected. Assignments and quizzes will require coding in Java. The capstone application will require you to use Android Studio, an integrated development environment.


Ken Wong is an associate professor in computing science at the University of Alberta.

Develop employable skills and relevant expertise in the software industry.


Course format

Each of the four courses in the Specialization are designed to be completed in 4 weeks; the entire Specialization can be completed in 16 weeks.

On average there is one assignment per week for the first 8 weeks (occasionally a week without an assignment will be followed by a week with two assignments). The last 8 weeks average fewer than one assignment per week.

Depending on capacity to complete assignments, we expect learners to finish any of the courses in 3 - 5 weeks.

About the specialization

The Software Design and Architecture specialization is a series of courses which build on each other and culminate in a capstone project. Upon successful completion, a certificate from the University of Alberta is awarded. Each of the specialization's courses can also be taken individually.

Software Design and Architecture courses are not eligible for university credit.