Presentation __TOC__
Due: TBA==Exercises==
Value: 10%[[Architectural Pattern Exercise]] Pics and Links to the Patterns
For the presentation you will have to elaborate on the design patterns in the text book. The goal is to "extend" the text in ways that will make understanding patterns easier for current and future students (i.e. give explanations and examples from domains with which students are familiar). I will ask you to sign up for a design pattern in class, and then you will build a wiki page for that pattern. The page will include three parts: 1) a UML diagram, 2) a brief description of the pattern and, 3) a list of at least two examples that are easy to follow in at least two different OO programming languages you've studied (JAva, C++, .net, etc). [[Code Reading Exercise]]
For part a)==Presentation Topics==<table border="1"><tr><th>Pattern</th><th>Taken By</th><th>Presentation Date</th></tr><tr><td>[[Factory Method]]</td><td>[[user:smcolli1|Skyler Collisson]]</td><td rowspan="36" width="200">All presentations are due at midinight, the description should be brief and easy to follow. Think about how you would explain it to a friend as you were walking to your next exactly one week after we discuss them in class. Even better if you could explain it in such a way your mother</fathertd></deaf uncle would understand over Sunday dinner.tr>
For part b), the OMT diagram can be copied from the text and tweaked to make it conform to UML.<tr><td>[[Strategy]]</td><td>[[User:Rfainsht|Roman]]</td></tr><tr><td>[[Iterator]]</td><td>[[Adam Delyea]]</td>For part c), you should include code samples from real programs. You must provide a link to the source code repository or files from which this sample is taken. Include appropriate licensing info. Don't drop in sample code you find on web pages unless it is a part of a larger code base to which you can refer (and which can be compiled and run!). Pick code from problem domains you understand and you think other students would understand. '''Don't''', for example, use code snippets from an air traffic control system or an online credit transfer system. '''Do''' pick examples from domains everyone is at least familiar with, like POS, GUI editors, command line applications, etc. Add in your own comments, highlighted in red, that refer back to the pattern diagrams to help explain how the pattern was implemented and</or modified to meet the particular needs of this situation. If you have to pick from a domain that you think would be unfamiliar to most of the students, then you will have to provide an additional explanation of that problem, one that students would find easy to follow.tr><tr>During the last few weeks of semester, you will have to present your page to the class. Before then, you might want to encourage other students to comment on your description<td>[[Composite]]</examples (it's easy, just click edit and add your comments). So the sooner you post, the more likely you are to get suggestions. If someone suggests a better example, feel free to use it td><td>[[user:jsafavi- if you think it is better. (Also, if you are having problems understanding a particular pattern, you might want to check the wiki to see if any information has been posted on that pattern, and comment (politely) on how useful you found their material!)|Jason Safavi]]</td></tr>Please feel free to use google source code search: http<tr><td>[[Decorator]]</td><td>[[user:dtolj|Dejan]]</td></www.google.comtr><tr><td>[[Abstract Factory]]</codesearch.td><td>[[user:kglee|Kenneth Lee]]</td> Note that to edit these wiki pages you must sign up for an account. Please enter your real name so I can see who is editing the pages. Do not "vandalize" pages - you may make polite remarks or suggestions by appending them to anyone's page, but do not delete content, including any comments made on the work on your page or on other people's pages. You may only delete content you've created. If I find inappropriate content, I will delete it (and penalize the person who posted it!). I will also penalize students who "vandalize" pages.</tr>
<table border="1">
<tr>
<thtd>Pattern[[Observer]]</thtd><thtd>Taken By[[user:bbarcick|Bartosz Barcicki]]</th><th>Presentation Date</thtd>
</tr>
<tr>
<td>[[Singleton]]</td><td>Bob</td><td>Jan 29[[user:YiShen|Yi Shen]]</td>
</tr>
<tr>
<td>Factory Method[[Command]]</td><td></td><td>Feb 5[[Evan Marinzel]]</td>
</tr>
<tr>
<td>Strategy[[Adapter]]</td><td></td><td>Feb 8[[user:rfiez-mo|Rueen Fiez]]</td>
</tr>
<tr>
<td>Decorator[[Facade]]</td><td></td><td>Feb 12[[User:smcavoy|Steven McAvoy]]</td>
</tr>
<tr>
<td>Composite[[Template Method]]</td><td></td>Shaun<td>Feb 15[[user:ayfung|Andrew F]]</td>
</tr>
<tr>
<td>Iterator[[State]]</td><td></td><td>Feb 19[[user:rmwang|Ryan M. Wang]]</td>
</tr>
<tr>
<td>Template Method[[Proxy]]</td><td></td><td>Feb 23Leah Spontaneo</td>
</tr>
<tr>
<td>Abstract Factory[[Bridge]]</td><td></td><td>Mar 5[[user:vlam6|Vincent Lam]]</td>
</tr>
<tr>
<td>[[Builder]]</td><td></td><td>Mar 5[[user:dominic|Dominic B]]</td>
</tr>
<tr>
<td>Proxy[[Chain of Responsibility]]</td><td></td><td>Mar 8Dilak Jeyaratnam</td>
</tr>
<tr>
<td>AdapterFlyweight</td><td></td><td>Mar 12[[User:rsakedad|Roya Sakedad]]</td>
</tr>
<tr>
<td>Bridge[[Interpreter]]</td><td></td><td>Mar 12[[user:Cdolivei|Cesar Oliveira]]</td>
</tr>
<tr>
<td>[[Mediator]]</td><td></td><td>Mar 15Peter Smith</td>
</tr>
<tr>
<td>Observer[[Memento]]</td><td></td><td>Mar 19Aaron Hooper</td>
</tr>
<tr>
<td>Memento[[Prototype]]</td><td></td><td>Mar 19[[user:aashaye1|Ali Ashayeri]]</td>
</tr>
<tr>
<td>Command[[Visitor]]</td><td></td><td>Mar 22Shaun Naraidoo</td>
</tr>
<tr>
<td>Prototype[[MVC]]</td><td></td><td>Mar 26Timothy Duavis</td>
</tr>
<tr>
<td>State[[Chapter 2 Case Study on Wikipedia]]</td><td></td><td>Mar 26[[user:lkates|Lorne Kates]]</td>
</tr>
</table>
==Assignment 2 Teams==
<table border="1">
<th>Team #</th> <th>Names</th> <th>Page</th>
<tr>
<td>Facade1</td><td>Rueen Fiez, Jason Safavi, Ali Ashayeri</td><td>Mar 29[[btp600_gameoflife1]]</td>
</tr>
<tr>
<td>Flyweight2</td><td>[[user:dtolj|Dejan]], Shaun, [[user:YiShen|Yi(Eric) Shen]]</td><td>Apr 2[[btp600_gameoflife2]]</td>
</tr>
<tr>
<td>Chain of Responsibilities3</td><td>Ken, Andrew</td><td>Apr 2[[btp600_gameoflife3]]</td>
</tr>
<tr>
<td>Interpreter4</td><td>[[user:dominic|Dominic Baranski]], [[user:smcolli1|Skyler Collisson]]</td><td>Apr 5[[btp600_gameoflife4]]</td>
</tr>
<tr>
<td>Visitor5</td><td>[[user:smcavoy|Steve McAvoy]], [[user:lmsponta|Leah Spontaneo]], [[user:Adam_Delyea|Adam Delyea]], [[user:pjsmith1|Peter Smith]]</td><td>Apr 9[[btp600_gameoflife5]]</td>
</tr>
<tr>
<td>TBA6</td><td>[[user:djeyarat|Dilak Jeyaratnam]], [[user:rfainsht|Roman Fainshtein]]</td><td>Apr 9[[btp600_gameoflife6]]</td>
</tr>
<tr>
<td>TBA7</td><td>[[user:tjduavis|Timothy Duavis]], [[user:vlam6|Vincent Lam]], [[user:rmwang|Ryan Wang]]</td><td>Apr 9[[btp600_gameoflife7]]</td>
</tr>
<tr>
<td>TBA8</td><td>[[user:bbarcick|Bartosz Barcicki]], [[user:ajhooper|Aaron Hooper]]</td><td>Apr 9[[btp600_gameoflife8]]</td>
</tr>
<tr>
<td>TBA9</td><td>[[user:cdolivei|Cesar]], [[user:Evan_Marinzel|Evan]]</td><td>Apr 9[[btp600_gameoflife9]]</td>
</tr>
<tr>
<td>TBA10</td><td>Lorne Kates, Frederick Wang</td><td>Apr 9[[btp600_gameoflife10]]</td>
</tr>
</table>