University of Alberta

Design Patterns

This course extends object-oriented analysis and design by incorporating design patterns to create interactive applications.
Length 3 to 4 weeks
Effort 5-8 hours per week
Price Free
Subject Design, Computer Science
Level Intermediate
Languages English
Video Transcripts English
About this Course
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.

What you'll learn

:
  • 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.

Course syllabus

Week 1: Introduction to Design Patterns: Creational & Structural Patterns Week 2: Behavioural Design Patterns Week 3: Working with Design Patterns & Anti-patterns Week 4: Capstone Challenge

Meet the instructors

Kenny Wong

Associate Professor

Computing Science, Faculty of Science