Assignment 3 - Investigation of Design Patterns

Due - Sunday, October 19, 2025

This is a group project of 2 or 3 students per group. The groups can be found in the document Assignment3_Groups.docx.

Introduction

There are several behavioural design patterns and one structural design pattern which have not been presented in class. These are the facade design pattern (structural), the mediator pattern, the command pattern, the state pattern, the visitor pattern, the interpreter pattern, the iterator pattern, and the flyweight pattern. Each group is to choose one of these patterns, or a non-standard design pattern, create a lesson plan, and make a presentation to the class. Since there are more groups than patterns, up to two groups can research and present on one pattern. For a summary of standard design patterns, see Common Patterns.docx and Design Patterns by OODesign.com.

The Lesson Plan

The lesson plan mimics what has been used in this course, and should contain the following:

  1. The name of the pattern, its type, and a short introduction to it.
  2. Two YouTube videos describing the pattern (about 10 minutes in length).
  3. The rationale for the design pattern.
  4. A UML diagram, with a description of the components.
  5. A simple code example (one language only)
  6. Common usage in the software industry.
  7. A complex code problem. State the problem, state how the pattern solves the problem, and provide code (one language only). Keep in mind that at least one of your assignments has to be written in Java and at least one in C#.

The Presentation (Thursday, October 16)

Prepare a five minute presentation for the class on the following:

  1. The name of the pattern, its type, and a short introduction to it.
  2. The rationale for the design pattern.
  3. A UML diagram, with a description of the components.

Marking Rubric

Note that this assignment partially fulfills two of the Canadian Engineering Accreditation Board graduate attributes that our engineering graduates should have:
- Communication Skills (CS.2),
- Lifelong Learning (LL2).
Both attributes are assessed here.

You will be marked out of 10 according to the following:

Does not meet expectationsSatisfactoryGoodExceeds Expectations

Introduction
(1 mark) LL.2
Does not meet requirementsMeets the most important requirementsMeets all requirements with minor errorsMeets all requirements with no errors

YouTube Videos
(1 marks) LL.2
Does not meet requirementsMeets the most important requirementsMeets all requirements with minor errorsMeets all requirements with no errors

Rationale
(1 marks) LL.2
Does not meet requirementsMeets the most important requirementsMeets all requirements with minor errorsMeets all requirements with no errors

UML Diagram
(1 marks) LL.2
Does not meet requirementsMeets the most important requirementsMeets all requirements with minor errorsMeets all requirements with no errors

Simple Code Example
(1 marks) LL.2
Does not meet requirementsMeets the most important requirementsMeets all requirements with minor errorsMeets all requirements with no errors

Common Usage
(1 marks) LL.2
Does not meet requirementsMeets the most important requirementsMeets all requirements with minor errorsMeets all requirements with no errors

Complex Code Example
(2 marks) LL.2
Does not meet requirementsMeets the most important requirementsMeets all requirements with minor errorsMeets all requirements with no errors

Presentation
(2 marks) CS.2
Does not meet requirementsMeets the most important requirementsMeets all requirements with minor errorsMeets all requirements with no errors

Submission

Please email your lesson plan to: miguel.watler@senecapolytechnic.ca

Late Policy

You will be docked 10% if your assignment is submitted 1-2 days late.
You will be docked 20% if your assignment is submitted 3-4 days late.
You will be docked 30% if your assignment is submitted 5-6 days late.
You will be docked 40% if your assignment is submitted 7 days late.
You will be docked 50% if your assignment is submitted over 7 days late.