Difference between revisions of "BTP600"

From CDOT Wiki
Jump to: navigation, search
(Presentation Topics)
 
(139 intermediate revisions by 26 users not shown)
Line 1: Line 1:
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), 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 class. Even better if you could explain it in such a way your mother/father/deaf uncle would understand over Sunday dinner.
+
==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,  
 +
exactly one week after we discuss them in class.</td>
 +
</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>
 +
</tr>
 +
<tr>
 +
<td>[[Composite]]</td><td>[[user:jsafavi-|Jason Safavi]]</td>
 +
</tr>
 +
<tr>
 +
<td>[[Decorator]]</td><td>[[user:dtolj|Dejan]]</td>
 +
</tr>
 +
<tr>
 +
<td>[[Abstract Factory]]</td><td>[[user:kglee|Kenneth Lee]]</td>
 +
</tr>
  
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>
 +
<td>[[Observer]]</td><td>[[user:bbarcick|Bartosz Barcicki]]</td>
 +
</tr>
 +
<tr>
 +
<td>[[Singleton]]</td><td>[[user:YiShen|Yi Shen]]</td>
 +
</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/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 - 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!)
 
  
Please feel free to use google source code search: http://www.google.com/codesearch.
 
 
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.
 
 
<table border="1">
 
 
<tr>
 
<tr>
<th>Pattern</th><th>Presentation Date</th>
+
<td>[[Command]]</td><td>[[Evan Marinzel]]</td>
 +
</tr>
 +
<tr>
 +
<td>[[Adapter]]</td><td>[[user:rfiez-mo|Rueen Fiez]]</td>
 +
</tr>
 +
<tr>
 +
<td>[[Facade]]</td><td>[[User:smcavoy|Steven McAvoy]]</td>
 
</tr>
 
</tr>
 
<tr>
 
<tr>
<td>Singleton</td><td></td>
+
<td>[[Template Method]]</td><td>[[user:ayfung|Andrew F]]</td>
 
</tr>
 
</tr>
 
<tr>
 
<tr>
<td>Abstract Factory</td><td></td>
+
<td>[[State]]</td><td>[[user:rmwang|Ryan M. Wang]]</td>
 
</tr>
 
</tr>
 
<tr>
 
<tr>
<td>Factory Method</td><td></td>
+
<td>[[Proxy]]</td><td>Leah Spontaneo</td>
 
</tr>
 
</tr>
 
<tr>
 
<tr>
<td>Adapter</td><td></td>
+
<td>[[Bridge]]</td><td>[[user:vlam6|Vincent Lam]]</td>
 
</tr>
 
</tr>
 +
 
<tr>
 
<tr>
<td>Observer</td><td></td>
+
<td>[[Builder]]</td><td>[[user:dominic|Dominic B]]</td>
 
</tr>
 
</tr>
 
<tr>
 
<tr>
<td>Composite</td><td></td>
+
<td>[[Chain of Responsibility]]</td><td>Dilak Jeyaratnam</td>
 
</tr>
 
</tr>
 
<tr>
 
<tr>
<td>Strategy</td><td></td>
+
<td>Flyweight</td><td>[[User:rsakedad|Roya Sakedad]]</td>
 
</tr>
 
</tr>
 
<tr>
 
<tr>
<td>Decorator</td><td></td>
+
<td>[[Interpreter]]</td><td>[[user:Cdolivei|Cesar Oliveira]]</td>
 
</tr>
 
</tr>
 
<tr>
 
<tr>
<td>Template Method</td><td></td>
+
<td>[[Mediator]]</td><td>Peter Smith</td>
 
</tr>
 
</tr>
 
<tr>
 
<tr>
<td>Builder</td><td></td>
+
<td>[[Memento]]</td>
 +
<td>Aaron Hooper</td>
 
</tr>
 
</tr>
 
<tr>
 
<tr>
<td>Prototype</td><td></td>
+
<td>[[Prototype]]</td><td>[[user:aashaye1|Ali Ashayeri]]</td>
 
</tr>
 
</tr>
 
<tr>
 
<tr>
<td>Bridge</td><td></td>
+
<td>[[Visitor]]</td><td>Shaun Naraidoo</td>
 
</tr>
 
</tr>
 
<tr>
 
<tr>
<td>Facade</td><td></td>
+
<td>[[MVC]]</td><td>Timothy Duavis</td>
 
</tr>
 
</tr>
 +
 +
<tr>
 +
<td>[[Chapter 2 Case Study on Wikipedia]]</td><td>[[user:lkates|Lorne Kates]]</td>
 +
</tr>
 +
 +
</table>
 +
 +
==Assignment 2 Teams==
 +
<table border="1">
 +
<th>Team #</th> <th>Names</th> <th>Page</th>
 
<tr>
 
<tr>
<td>Flyweight</td><td></td>
+
<td>1</td>
 +
<td>Rueen Fiez, Jason Safavi, Ali Ashayeri</td>
 +
<td>[[btp600_gameoflife1]]</td>
 
</tr>
 
</tr>
 +
 
<tr>
 
<tr>
<td>Proxy</td><td></td>
+
<td>2</td>
 +
<td>[[user:dtolj|Dejan]], Shaun, [[user:YiShen|Yi(Eric) Shen]]</td>
 +
<td>[[btp600_gameoflife2]]</td>
 
</tr>
 
</tr>
 +
 
<tr>
 
<tr>
<td>Chain of Responsibilities</td><td></td>
+
<td>3</td>
 +
<td>Ken, Andrew</td>
 +
<td>[[btp600_gameoflife3]]</td>
 
</tr>
 
</tr>
 +
 +
 
<tr>
 
<tr>
<td>Command</td><td></td>
+
<td>4</td>
 +
<td>[[user:dominic|Dominic Baranski]], [[user:smcolli1|Skyler Collisson]]</td>
 +
<td>[[btp600_gameoflife4]]</td>
 
</tr>
 
</tr>
 +
 +
 
<tr>
 
<tr>
<td>Interpreter</td><td></td>
+
<td>5</td>
 +
<td>[[user:smcavoy|Steve McAvoy]], [[user:lmsponta|Leah Spontaneo]], [[user:Adam_Delyea|Adam Delyea]], [[user:pjsmith1|Peter Smith]]</td>
 +
<td>[[btp600_gameoflife5]]</td>
 
</tr>
 
</tr>
 +
 
<tr>
 
<tr>
<td>Iterator</td><td></td>
+
<td>6</td>
 +
<td>[[user:djeyarat|Dilak Jeyaratnam]], [[user:rfainsht|Roman Fainshtein]]</td>
 +
<td>[[btp600_gameoflife6]]</td>
 
</tr>
 
</tr>
 +
 
<tr>
 
<tr>
<td>Mediator</td><td></td>
+
<td>7</td>
 +
<td>[[user:tjduavis|Timothy Duavis]], [[user:vlam6|Vincent Lam]], [[user:rmwang|Ryan Wang]]</td>
 +
<td>[[btp600_gameoflife7]]</td>
 
</tr>
 
</tr>
 +
 
<tr>
 
<tr>
<td>Memento</td><td></td>
+
<td>8</td>
 +
<td>[[user:bbarcick|Bartosz Barcicki]], [[user:ajhooper|Aaron Hooper]]</td>
 +
<td>[[btp600_gameoflife8]]</td>
 
</tr>
 
</tr>
 +
 
<tr>
 
<tr>
<td>State</td><td></td>
+
<td>9</td>
 +
<td>[[user:cdolivei|Cesar]], [[user:Evan_Marinzel|Evan]]</td>
 +
<td>[[btp600_gameoflife9]]</td>
 
</tr>
 
</tr>
 +
 
<tr>
 
<tr>
<td>Visitor</td><td></td>
+
<td>10</td>
 +
<td>Lorne Kates, Frederick Wang</td>
 +
<td>[[btp600_gameoflife10]]</td>
 
</tr>
 
</tr>
 +
</table>

Latest revision as of 12:05, 2 April 2007