<?xml version="1.0" encoding="utf-8" ?> 
<?xml-stylesheet type="text/xsl" href="courses.xsl" ?>
<courses name="Fawcett">

  <btitle>CSE776</btitle>
  <theme src="CoursesTheme.css" />
  
  <visible>
  <title>CSE776 - Design Patterns</title>
  <revised>30 November 2010</revised>
  
  <hnav/>
<!-- 
  <hilight>
    <ifile title="Home">FawcettHome.xml</ifile>&#32;
    <ifile title="Courses">Courses.xml</ifile>&#32;
    <ifile title="Code">Code.xml</ifile>&#32;
    <ilink title="Handouts">www.ecs.syr.edu/faculty/fawcett/handouts</ilink>&#32;
    <ifile title="Books">Books.xml</ifile>&#32;
    <ifile title="Math">Mathematics.xml</ifile>&#32;
    <ifile title="Research">research.xml</ifile>&#32;
    <ifile title="Masters Projects">MastersProjects.xml</ifile>&#32;
    <ifile title="SWDev">swdev.xml</ifile>&#32;
    <ifile title="WebDev">webdev.xml</ifile>&#32;
    <ifile title="News">news.xml</ifile>&#32;
    <ifile title="OtherLinks">OtherLinks.xml</ifile>&#32;
    <ifile title="SiteDesign">SiteDesign.xml</ifile>&#32;
    <ifile title="Graduates">graduates.xml</ifile>&#32;
    <ifile title="AllPages">AllPages.xml</ifile>&#32;
    <ifile title="Office Hours">OfficeHours.xml</ifile>&#32;
    <notice title="Notices">notices.xml</notice>&#32;
    <html><a href="#contents">Contents</a></html>&#32;
  </hilight>
-->
  <cnav/>
<!--
  <hilight>
    <ifile title="CSE681-SWMAA">CSE681.xml</ifile>&#32;
    <ifile title="CSE686-IP">CSE686.xml</ifile>&#32;
    <ifile title="CSE687-OOD">CSE687.xml</ifile>&#32;
    <ifile title="CSE775-DO">CSE775.xml</ifile>&#32;
    <ifile title="CSE776-DP">CSE776.xml</ifile>&#32;
    <ifile title="CSE778-AWP">CSE778.xml</ifile>&#32;
    <ifile title="CSE784-SWS">CSE784.xml</ifile>
  </hilight>
-->

  <images>
    <imageItem src="students/DP3.jpg" size="200" />
    <imageItem src="students/dp7.jpg" size="200" />
    <!-- <imageItem src="students/dp5.jpg" size="200" /> -->
    <imageItem src="students/DP2.jpg" size="200" />
<!--
    <imageItem src="students/dp4.jpg" size="200" />
-->
<!--
    <imageItem src="students/Dp6.jpg" size="200" />
    <imageItem src="students/dp8.jpg" size="200" />
-->
  </images>
  <caption>Pattern Presentations and Discussions are the Heart of this Course</caption>

  <html><a name="contents"/></html>
  <section title="Resources:">
    <ifile title="Lectures">../CSE776/Lectures/cse776codeL1.xml</ifile>&#32;
    <ifile title="Student Presentations">../CSE776/Presentations-Students/</ifile>&#32;
    <ifile title="Instructor Presentations">../CSE776/Presentations-Fawcett/</ifile>&#32;
    <html><a href="#Syllabus">Syllabus</a></html>&#32;<br/>
    <ifile title="File Download ScreenShot">fileDownloads.doc</ifile>&#32;
    <ifile title="Project Upload Instructions">uploads.doc</ifile>&#32;<br/>
    <ilink title="Collection of Plop papers from various conferences">www.refactory.com/Publications/patterns.htm</ilink><br/>
    <ilink title="Plop 2007 Conference Papers on-line">hillside.net/europlop/europlop2007/workshops/Workshops.html</ilink><br/>
    <ilink title="Plop 2006 Conference Papers on-line">hillside.net/plop/2006/workshopgroups.html</ilink><br/>
    <ilink title="Plop 2005 Conference Papers on-line">hillside.net/plop/2005/proceedings.html</ilink><br/>
    <ifile title="Input Output Pattern Language">../CSE776/PatternPDFs/InputOutput.pdf</ifile><br/>
    <ifile title="Big Ball of Mud">../CSE776/PatternPDFs/Mud.pdf</ifile><br/>
    <ifile title="Acyclic Visitor">../CSE776/PatternPDFs/AcyclicVisitor.pdf</ifile><br/>
    <ifile title="Extension Object">../CSE776/PatternPDFs/ExtensionObject.pdf</ifile><br/>
    <ifile title="Role Object">../CSE776/PatternPDFs/RoleObject.pdf</ifile><br/>
    <ifile title="Value Object">../CSE776/PatternPDFs/ValueObject.pdf</ifile><br/>
    <ifile title="Selfish Object">../CSE776/PatternPDFs/SelfishObject.pdf</ifile><br/>
    <ifile title="Security Patterns Repository">../CSE776/PatternPDFs/SecurityRepository.pdf</ifile><br/>
    <ifile title="Customer Interactions">../CSE776/PatternPDFs/CustomerInteraction.pdf</ifile><br/>
    <ilink title="Restful Service Pattern">ajaxpatterns.org/RESTful_Service</ilink><br/>
    <ilink title="Pattern Catalog">www.hillside.net/patterns/patterns-catalog</ilink><p/>
<!--
    <ilink title="Plop 4 - 1997 Conference Papers on-line">st-www.cs.uiuc.edu/~plop/plop97/Workshops.html</ilink><br/>
-->
    <ilink title="Plop 4 - 1997 Conference Papers Table of Contents">st-www.cs.illinois.edu/users/hanmer/PLoP-97/Workshops.html</ilink><br/>
    <ilink title="Plop 3 - 1996 Conference Papers abstracts on-line">www.cs.wustl.edu/~schmidt/PLoP-96/workshops.html</ilink><br/>
<!--
    <ilink title="Input Output Pattern Language">jerry.cs.uiuc.edu/~plop/plop98/final_submissions/P31.pdf</ilink><br/>
-->
    <ilink title="Hillside Group Site">www.hillside.net</ilink>&#32;<p/>
    <ilink title="Patterns Summary">www.dofactory.com/Patterns/Patterns.aspx#list</ilink>&#32;
<!--
    <ilink title="Patterns Papers">www.agcs.com/supportv2/techpapers/patterns/index.htm</ilink>&#32;
    <ilink title="PatternDigest">patterndigest.com/main</ilink>&#32;
-->
    <ilink title="Patterns in a Nutshell">www.cmcrossroads.com/bradapp/docs/patterns-nutshell.html</ilink>&#32;
    <ilink title="Patterns Books">hillside.net/patterns/books/index.htm</ilink>&#32;<br/>
<!--
    <ilink title="Pradigms, Patterns, and Notations">www.accu.org/resources/public/terse/paradigm.htm#Notations</ilink>&#32;
-->
    <ilink title="Survey of Design Patterns">www.developer.com/design/article.php/10925_1502691_1</ilink>&#32;
    <ilink title="Design Patterns and Tips">sourcemaking.com/design_patterns</ilink>&#32;
  </section>
  
  <section title="Course Scope:">
  This seminar course is based on the book "Design Patterns", Gamma et. al.  It is intended 
  to provide a sophisticated look at Object Oriented Design methods with emphasis on conceptual
  understanding rather than writing a lot of code (this presumes you have already written a LOT
  of code in CSE681 and CSE687).
  <p/>
  Students will make several presentations on patterns from the text and will write a small 
  amount of supporting code. This work is conducted in teams of two students each.  The
  presenting students and I jointly lead a discussion of each pattern following its presentation.
  </section>
 
  <section title="Required Texts and Notes:"/>
  <olist>
    <litem>
      Design Patterns, Elements of Reusable Object-Oriented Software, Erich Gamma, et. al.,
      Addison-Wesley, 1994,<br/>
      ISBN 0-201-63361-2
    </litem>
<!--
  <images>
    <imageItem src="CSE776.gif" size="200" />
    <imageItem src="PLOP.jpg" size="200" />
  </images>
-->
    <litem>
      Student presentations available here, after the presentation, and will remain until the beginning of the next semester. 
      <ilink title="www.ecs.syr.edu/faculty/fawcett/handouts/CSE776">www.ecs.syr.edu/faculty/fawcett/handouts/cse776</ilink>
    </litem>
    <litem>
<!--
      <ilink title="Patterns Summary">www.dofactory.com/Patterns/Patterns.aspx#list</ilink>&#32;
      <ilink title="Hillside Group Site">www.hillside.net</ilink>&#32;
      <ilink title="Patterns Papers">www.agcs.com/supportv2/techpapers/patterns/index.htm</ilink>&#32;
      <ilink title="PatternDigest">patterndigest.com/main</ilink>&#32;
-->
      <link title="John Vlissides Patterns Home Page">web.archive.org/web/20041010100343/www.research.ibm.com/designpatterns/index.html</link>&#32;
      <link title="Presentation on Patterns (and more) by Erich Gamma">www.sdm.de/download/sdm-konf2001/f_9_gamma.pdf</link>&#32;
      <link title="Design Patterns Study Group">web.archive.org/web/20041010053941/www.industriallogic.com/patterns/index.html</link>&#32;
    </litem>
  </olist>
  <section title="Books held in Sci-Tech Library:">
    <olist>
      <litem>
        A copy of Design Patterns class text (above) is in the library, available while you wait for
        your book order to arrive. 
      </litem>
      <litem>
        Refactoring to Patterns, Joshua Kerievsky, Addison-Wesley, 2005
      </litem>
      <litem>
        Patterns of Enterprise Application Architecture, Martin Fowler, Addison-Wesley, 2003
      </litem>
      <litem>
        Enterprise Integration Patterns, Gregor Hohpe, Bobby Woolf, Addison-Wesley, 2004
      </litem>
      <litem>
        Pattern-Oriented Software Architecture, Schmidt, et. al., Wiley, 2000
      </litem>
      <litem>
        Organizational Patterns of Agile Software Developement, James Coplien and Neil Harrison, Prentice-Hall, 2005
      </litem>
    </olist>
  </section>
  <section title="Prerequisites:"/>
  <block>
    <note>Either</note>&#160;&#160;&#160;CSE681 - Software Modeling and Analysis&#160;&#160;&#160;<note>or</note>&#160;&#160;&#160;CSE687 - Object Oriented Design<p/>
    <note>No exceptions without instructor's explicit permission which is rarely granted.</note>
  </block>
  
  <section title="Syllabus - Fall 2010:"/>
  <syllabus>
    <syllHeading>
      <sd>Session</sd>
      <hd>Pattern</hd>
      <hd>Pattern Presenters</hd>
      <hd>Pattern Presenters</hd>
    </syllHeading>
    <lecture>
      <ld><ifile title="Session #1a">../CSE776/Lectures/CSE776codeL1.xml</ifile><br/>Wed, Sep 01</ld>
      <ld>
        Introduction, <ifile title="Student Presentations">../CSE776/presentations-Students</ifile>, 
        <ifile title="Instructor&#160;Presentations">../CSE776/presentations-Fawcett</ifile>
      </ld>
      <cd>Jim Fawcett</cd><cd></cd>
    </lecture>
    <lecture>
      <ld>Session #1b<br/>Wed, Sep 01</ld>
      <ld>Abstract Factory</ld>
      <cd>Jim Fawcett</cd><cd></cd>
    </lecture>
    <lecture>
      <ld>Session #1c<br/>Wed, Sep 01</ld>
      <ld>Assign Presentations</ld>
      <cd>Jim Fawcett</cd><cd></cd>
    </lecture>
    <lecture>
      <ld>Session #2a<br/>Wed, Sep 08</ld>
      <ld>Builder</ld>
      <cd>Prachi Jadhav</cd><cd>Sneha Desai</cd>
    </lecture>
    <lecture>
      <ld>Session #2b<br/>Wed, Sep 08</ld>
      <ld>Singleton</ld>
      <cd>Arunkumar Manikantan</cd><cd>Himanshu Neema</cd>
    </lecture>
    <lecture>
      <ld>Session #2c<br/>Wed, Sep 08</ld>
      <ld>Factory Method</ld>
      <cd>Jim Fawcett</cd><cd></cd>
    </lecture>
    <lecture>
      <ld>Session #3a<br/>Wed, Sep 15</ld>
      <ld>Prototype</ld>
      <cd>Charan Chander</cd><cd>Jim Fawcett</cd>
    </lecture>
    <lecture>
      <ld>Session #3b<br/>Wed, Sep 15</ld>
      <ld>Adapter</ld>
      <cd>John Walthour</cd><cd>Karl Mortensen</cd>
    </lecture>
    <lecture>
      <ld>Session #3c<br/>Wed, Sep 15</ld>
      <ld>Bridge</ld>
      <cd>Karthikeyan&#160;Rajakumar</cd><cd>Jim Fawcett</cd>
    </lecture>
    <lecture>
      <ld>Session #4a<br/>Wed, Sep 22</ld>
      <ld>Composite</ld>
      <cd>Rushabh Gandhi</cd><cd>Jim Fawcett</cd>
    </lecture>
    <lecture>
      <ld>Session #4b<br/>Wed, Sep 22</ld>
      <ld>Decorator</ld>
      <cd>Sam Savage</cd><cd>Kyle Stone</cd>
    </lecture>
    <lecture>
      <ld>Session #4c<br/>Wed, Sep 22</ld>
      <ld>Facade</ld>
      <cd>Karthick Soundararaj</cd><cd>Japjeet Singh</cd>
    </lecture>
    <lecture>
      <ld>Session #5a<br/>Wed, Sep 29</ld>
      <ld>Flyweight</ld>
      <cd>Deeptha Rangarajan</cd><cd>Jim Fawcett</cd>
    </lecture>
    <lecture>
      <ld>Session #5b<br/>Wed, Sep 29</ld>
      <ld>Proxy</ld>
      <cd>Josna Abraham</cd><cd>Sandeep Bhimavarapu</cd>
    </lecture>
    <lecture>
      <ld>Session #5c<br/>Wed, Sep 29</ld>
      <ld>Chain of Responsibility</ld>
      <cd>Xue Luo</cd><cd>Huaming Huang</cd>
    </lecture>
    <lecture>
      <ld>Session #6a<br/>Wed, Oct 06</ld>
      <ld>Command</ld>
      <cd>Jim Fawcett</cd><cd></cd>
    </lecture>
    <lecture>
      <ld>Session #6b<br/>Wed, Oct 06</ld>
      <ld>Interpreter</ld>
      <cd>Youshra Aafer</cd><cd>Sonam Sawhney</cd>
    </lecture>
    <lecture>
      <ld>Session #6c<br/>Wed, Oct 06</ld>
      <ld>Iterator</ld>
      <cd>Fatih Altay</cd><cd>Sandesh Chakkirala</cd>
    </lecture>
    <lecture>
      <ld>Session #7a<br/>Wed, Oct 13</ld>
      <ld>Mediator</ld>
      <cd>Karthik Soundararaj</cd><cd>Chinmay Gandhi</cd>
    </lecture>
    <lecture>
      <ld>Session #7b<br/>Wed, Oct 13</ld>
      <ld>Memento</ld>
      <cd>Jim Fawcett</cd><cd></cd>
    </lecture>
    <lecture>
      <ld>Session #7c<br/>Wed, Oct 13</ld>
      <ld>Observer</ld>
      <cd>Harsh Vaishnav</cd><cd>Rakesh Shashidhara</cd>
    </lecture>
    <lecture>
      <ld>Session #8a<br/>Wed, Oct 20</ld>
      <ld>State</ld>
      <cd>Jaslok Mishra</cd><cd>Ganpath Muthukaruppan</cd>
    </lecture>
    <lecture>
      <ld>Session #8b<br/>Wed, Oct 20</ld>
      <ld>Strategy</ld>
      <cd>Deeptha Rangarajan</cd><cd>Nagaraju Boyina</cd>
    </lecture>
    <lecture>
      <ld>Session #8c<br/>Wed, Oct 20</ld>
      <ld>Template Method</ld>
      <cd>Charan Chander</cd><cd>Jim Fawcett</cd>
    </lecture>
    <lecture>
      <ld>Session #9a<br/>Wed, Oct 27</ld>
      <ld>Visitor</ld>
      <cd>Huaming Huang</cd><cd>Jim Fawcett</cd>
    </lecture>
    <lecture>
      <ld>Session #9b<br/>Wed, Oct 27</ld>
      <ld>Extension Object<br/>PLOP 3, pg 79</ld>
      <cd>Karthikeyan RajaKumar</cd><cd>Josna Abraham</cd>
    </lecture>
    <lecture>
      <ld>Session #9c<br/>Wed Oct 27</ld>
      <ld>Role Object,<br/>PLOP 4, pg 15</ld>
      <cd>Sandesh Chakkirala</cd><cd>Harsh Vaishnav</cd>
    </lecture>
    <lecture>
      <ld>Session #10a<br/>Wed, Nov 03</ld>
      <ld>Acyclic Visitor,<br/>PLOP 3, pg 93</ld>
      <cd>Rushabh Gandhi</cd><cd>Youshra Aafer</cd>
    </lecture>
    <lecture>
      <ld>Session #10b<br/>Wed, Nov 03</ld>
      <ld>Web Security Patterns</ld>
      <cd>Karthick Jayaraman</cd><cd></cd>
    </lecture>
    <lecture>
      <ld>Session #10c<br/>Wed, Nov 03</ld>
      <ld>Software Matrix</ld>
      <cd>Jim Fawcett</cd><cd></cd>
    </lecture>
    <lecture>
      <ld>Session #11a<br/>Wed, Nov 10</ld>
      <ld>Patterns for Scripted Acceptance Test-Driven Development<br/>PLOP 2007</ld>
      <cd>Kyle Stone</cd><cd>Sam Savage</cd>
    </lecture>
    <lecture>
      <ld>Session #11b<br/>Wed, Nov 10</ld>
      <ld>Input and Output Pattern Language<br/>PLOP 4, pg 503</ld>
      <cd>Karl Mortensen</cd><cd>John Walthour</cd>
    </lecture>
    <lecture>
      <ld>Session #11c<br/>Wed, Nov 10</ld>
      <ld>Patterns for Agile Developent, PLOP 2006</ld>
      <cd>Jim Fawcett</cd><cd>Prachi Jadhav</cd>
    </lecture>
    <lecture>
      <ld>Session #12a<br/>Wed, Nov 17</ld>
      <ld>Capable, Productive, Satisfied<br/>PLOP 1998</ld>
      <cd>Jim Fawcett</cd><cd></cd>
    </lecture>
    <lecture>
      <ld>Session #12b<br/>Wed, Nov 17</ld>
      <ld>Value Object/Selfish Object<br/>PLOP 2006</ld>
      <cd>Sneha Desai</cd><cd>Sonam Sawhney</cd>
    </lecture>
    <lecture>
      <ld>Session #12c<br/>Wed, Nov 17</ld>
      <ld>Big Ball of Mud<br/>PLOP 4, pg 653</ld>
      <cd>Arunkumar Manikantan</cd><cd>Jaslok Mishra<br/>Nagaraju Boyina</cd>
    </lecture>
    <lecture>
      <ed>Holiday<br/>Wed, Nov 24</ed>
      <ed>no classes</ed>
      <ed>Thanksgiving</ed><ed> </ed>
    </lecture>
    <lecture>
      <ld>Session #13a<br/>Wed, Dec 01</ld>
      <ld>Customer Interaction<br/>PLOP 4, pg 26</ld>
      <cd>Ganpath Muthukaruppan</cd><cd>Jim Fawcett</cd>
    </lecture>
    <lecture>
      <ld>Session #13b<br/>Wed, Dec 01</ld>
      <ld>Web Security Patterns</ld>
      <cd>Karthick Jayaraman</cd><cd></cd>
    </lecture>
    <lecture>
      <ld>Session #13c<br/>Wed, Dec 01</ld>
      <ld>Refactoring to Patterns<br/>Chap7 - Simplification<br/>Chap8 - Generalization</ld>
      <cd>Jim Fawcett</cd><cd>Sandeep Bhimavarapu</cd>
    </lecture>
    <lecture>
      <ld>Session #14a<br/>Wed, Dec 08</ld>
      <ld>.Net Patterns - Presentation Tier</ld>
      <cd>Chinmay Gandhi</cd><cd>Japjeet Singh<br/>Xue Luo</cd>
    </lecture>
    <lecture>
      <ld>Session #14b<br/>Wed, Dec 08</ld>
      <ld>Security Patterns Repository</ld>
      <cd>Himanshu Neema</cd><cd>Fatih Altay<br/>Rakesh Shashidhira</cd>
    </lecture>
    <lecture>
      <ld>Session #14c<br/>Wed, Dec 08</ld>
      <ld>More on Pattern Languages<br/>Where do we go from here?</ld>
      <cd>Jim Fawcett</cd><cd></cd>
    </lecture>
  </syllabus>
  Class meets once eacg week for three hours.<br/>
<!--
  <file title="Scheduling constraints">../CSE776/scheduling.doc</file>
-->
  <p/>
  <hr/>
  <html><img src="students\studentstrip2.jpg" width="100%" /></html>
  </visible>
</courses>
