Pattern Presentation Instructions:


A presentation of a single pattern should take around 10 minutes. Try to work through your presentation orally before class, so that you are sure you will hit within that range. Although you may wonder how you will talk for a full 10 minutes about anything, I will be praying that you actually succeed in communicating the pattern in just 10 minutes! The advice of Thoreau is nowhere more apt than in this context: SIMPLIFY, SIMPLIFY, SIMPLIFY. Your goals with your presentation will be to simply explain, clearly and concisely, what the pattern accomplishes, why it would be used, and then give as simple an example of its implementation that you can come up with. KISS!

The general format of a Pattern Presentation should be as follows:

1. General Description of Purpose of Pattern

What design problem(s) does this pattern solve? Why is this pattern significant? How might it help the designer?   What forces does this pattern resolve?  What is the problem context?

2. Description of Example

Verbally describe your example. Show a UML model that you have created (no you cannot copy and paste the UML from Wikipedia) which demonstrates the implementation of the pattern. Explain how the pattern in question is used in your example.  Note that those brave few who go before we have discussed UML may use any notation they wish to communicate their design (SON Notation, scribble on napkin).  Most of you should use a tool such as astah, LucidChart, Dia, gliffy, Visio ($), graffle ($), Visual Paradigm ($), etc.

For your UML model of the pattern, I will be less impressed if you simply regurgitate the GoF example than if you think up one on your own.  Even if your example runs abit abeam of the point, that miss would be instructive for the rest of us as you lead us in understanding the details of the design.  And I, for one,  will be impressed with your valor.  But remember, whatever you do, KISS.

3.  Implementation of Example

An actual example implementation in source code (Java, C++, C#, Python, Ruby, even PseudoCode) that demonstrates your pattern.  Kudos if it runs!  In AS CONCISE A FORM AS POSSIBLE, show how this pattern might be implemented in your example you modeled in item 2.

Grading:

Your grade on the presentation will be based on:

1. How clearly you describe the pattern.

2. How clear your example is in demonstrating how the pattern is implemented.

3. The clarity of your courage with which you have tackled the problem.

Your grade on the presentation will not be based on:

1.    Your achievement of perfection.
 

N.B.  If your example is brilliant, scintillating, but recondite, if it obfuscates the central theme of the pattern with an exquisite sesquipedalian musing, if the point is lost in a recalcitrant pattern of perplexity, if only those members of le salon des refusés would appreciate your enigmatic landscape, your grade will surely suffer. Your job is to teach the pattern to those of us who don't know it as well as you do in plain English.  Be gentle, be concise, and above all be clear.  KISS!