Unit Activities


These are the problem sets that each unit team will work on through the term.

Unit  Topics
Unit 1 Course Basics; Design Principles
Unit 2 Command, Composite, Facade, Iterator, Observer, Proxy, State
Unit 3 Adapter, Builder, Mediator, Memento, Strategy, Template Method
Unit 4 Abstract Factory, Chain of Responsibility, Decorator, Factory Method, Interpreter, Singleton, Visitor
 

Unit Introduction

Each unit has several sections that describe the unit and the activities that will be performed individually or with the unit team.

Unit Outcomes

The unit outcomes is a listing of the learning that you should achieve after studying a particular unit.  For the units that deal with patterns there are some common outcomes for all the patterns in the unit.  Each pattern also has individual learning outcomes.  These learning outcomes constitute your study guide for the unit quiz, mid-term and final.  While doing your individual reading of the text and working through unit activities with your unit team keep these outcomes in mind. Remember, you are individually responsible for, and will be tested on, the learning outcomes for each unit.

Lecturing

This course is taught with minimal planned lecturing. There is an overview lecture at the beginning of units 2, 3, and 4 covering the design patterns being studied in that unit. It is your responsibility to read the textbook material for each of the design patterns. Keep the learning outcomes for that pattern in mind when doing this studying. If you would like the instructor to clarify anything related to a pattern or one of its learning outcomes, you may request that the instructor discuss that topic during a class session. By 5pm the day prior to a class day, post your request in the myCourses lecture request discussion forum. You do this through the myCourses discussion board.

Unit Questions

This is a set of questions that highlight some of the more important aspects of the design patterns being studied.  Questions will cover many, but not all, of the learning outcomes for the patterns in this unit.  Typically, the questions will not cover outcomes that relate to simple facts about the pattern, such as its intention, structure, etc.  You will be tested on those "lower-level" topics but you should be able to acquire that knowledge from a straightforward reading of the textbook.  The questions will often require you to compare characteristics between two patterns, or make judgments on trade-offs in implementation of the pattern.

All of your work on these questions will be done online in a wiki setup for the course. Each team will have a space within the wiki that is restricted to the students within that team. You will edit the content of your answers for each question in the wiki space. To assist with the grading, please keep the text of each question followed by your answer to the question. Instructors may, at their discretion, permit the use of another collborative authoring tool as long as the tool clearly tracks revisions and the person responsible for them.

To receive credit for the team submission of the questions each individual student must contribute to the question answers. Every question must have original answers provided by least two students. All students should contribute comments, edit or modify answers, or both for all questions. A student must show contributions across all questions to receive credit for the team submission of answers. If your contributions are not apparent in the team's wiki space, then from your instructor's perspective you did not make any contributions.

The questions will be discussed in class after they have been submitted. You are free to post, and answer, questions about the questions on the discussion forum set up for that purpose, to ask questions of the instructor during class sessions, or to bring questions up to the instructor when he or she meets with the team during team project times.

Unit Design and Implementation Exercises

The unit exercises are design and implementation exercises that will be worked by the unit team for all but the first unit.  The exercise for the first unit is graded individually and does not follow these guidelines.  Refer to the unit one exercise for submission information.

The emphasis for this course is design using design patterns.  A carefully considered, well-documented, well-presented design is the goal to aim for. The exercises for units 2, 3 and 4 will highlight the patterns you are studying in that unit.  Every aspect of your design is not going to be a pattern but you should pay particular attention to how these patterns can be applied. You should also identify the use of design patterns in the standard libraries that you make use of as part of the design. The applications you will work with are not very complex. You should not use simplicity, or "overkill", as a reason not to use a pattern. Without going overboard in a design pattern frenzy, err in the direction of applying a design pattern as long as the pattern's intention fits the needs of the application.

The requirements for the high level design document are found in the information specific to each unit.

Units 2, 3, and 4 require an implementation of the design that you create.  There will be specific instructions for each implementation required. The source code should include class and method/function headers.  The definition of the method/function signatures will be complete, i.e. include method name, data type and description of parameters, data type and description of return values.  In Java, this will be done using Javadoc tags; for other languages, the conventions used for that language (e.g., RDoc in Ruby) will be adhered to.

Unit Presentation

Some or all the teams will present their design to the class on the day the unit is marked for completion. The presentation should include:

This is a formal presentation in that you should prepare it ahead of time and have visual material to support your presentation.  All team members are expected to participate in the presentation.  The team can decide on the approach to use. All team members must be present and be prepared to answer questions on the design. Your instructor will inform you in a prior class how long to plan your presentation.

Every student must be present for the presentations. Students on other teams listening to the presentations will need to pay close attention since individual students will be asked to provide feedback to the presenting team on positive and negative aspects of the design.

Some points to consider when preparing your presentation:

  1. Make sure to use visual support to assist the audience in understanding your presentation. For describing your design, diagrams are very helpful.
  2. It usually takes 2 to 3 minutes to cover the typical slide during a presentation. Use that as a guidline for your total number of slides when planning your presentation. A slide will go faster if it has minimal content.

The team must provide the instructor with a printed copy of the presentation material on the day of their presentation.  This material must be consistent with the  presentation file the team submits as part of the unit's design documentation.

Question Submission Instructions

You will submit your final answers as a single document by the date and time specified in the course schedule. You can create a Word or PDF document by exporting the questions wiki page to a Word or PDF file. If other collaborative authoring systems are permitted, you will need to consult the tool for instructions on converting it to one of the permitted formats.

Follow the instructions below to complete your submission:

  1. The name of the Word file must be unitQuestions.doc, unitQuestions.docx (for Word) or unitQuestions.pdf (for PDF). Your instructor is free to further restrict the acceptable formats.
  2. Deposit the file in the Questions dropbox for Unit N in myCourses.

Unit Design and Implementation Exercises Submissions

Unit design and implementation exercises require submission of design documentation describing your design, a copy of your presentation material, and the implementation of your design. These items are submitted in a zip archive that you will deposit in the Design dropbox for the Unit under myCourses. See each unit's design exercise webpage for any additional specific details on the submission.

Design and implementation exercises are due by the date and time specified on Design dropbox for the Unit in question.


  $Id: index.html 427 2013-04-02 11:57:10Z hawker $