<?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>08 June 2007</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="Presentations">../CSE776/Presentations/</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="Plop 4 Conference Papers on-line">st-www.cs.uiuc.edu/~plop/plop97/Workshops.html</ilink>&#32;
          <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;
-->
          <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;
          <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;
  </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>
    CSE687 - Object Oriented Design
  </block>
  
  <section title="Syllabus - Summer 2006:"/>
  <html><a name="Syllabus"/></html>
  <syllabus>
    <syllHeading>
      <sd>Session</sd>
      <hd>Pattern</hd>
      <hd>Pattern Presenters<br/>1st Session</hd>
      <hd>Pattern Presenters<br/>2nd Session</hd>
    </syllHeading>
    <lecture>
      <ld><ifile title="Session #1">../cse776/lectures/cse776codeL1.xml</ifile><br/>Mon, May 21</ld>
      <ld>Introduction, <ifile title="Presentations">../CSE776/presentations</ifile></ld>
      <cd>Jim Fawcett</cd><cd>Jim Fawcett</cd>
    </lecture>
    <lecture>
      <ld><ifile title="Session #2">../cse776/lectures/cse776codeL2.xml</ifile><br/>Wed, May 23</ld>
      <ld>Abstract Factory</ld>
      <cd>Jim Fawcett</cd><cd>Jim Fawcett</cd>
    </lecture>
    <lecture>
      <ld>Session #2<br/>Wed, May 24</ld>
      <ld>Assign Presentations</ld>
      <cd>Jim Fawcett</cd><cd>Jim Fawcett</cd>
    </lecture>
    <electure>
      <ed>Holiday<br/>Mon, May 28</ed>
      <ed>no classes</ed>
      <ed>Memorial Day Observed</ed><ed>&#160;</ed>
    </electure>
    <lecture>
      <ld>Session #3<br/>Wed, May 30</ld>
      <ld>Builder</ld>
      <cd>Rittwick Babbar<br/>Francisco Zurita</cd><cd>Ashish Gandhi<br/>Navit Saxena</cd>
    </lecture>
    <lecture>
      <ld>Session #3<br/>Wed, May 30</ld>
      <ld>Singleton</ld>
      <cd>Kimberly Lang<br/>Estepan Meliksetian</cd><cd>Vishal Chowdhary<br/>Nihar Desai</cd>
    </lecture>
    <lecture>
      <ld>Session #4<br/>Mon, June 04</ld>
      <ld>Factory Method</ld>
      <cd>Shweta Chandore<br/>Pradeep Vijay</cd><cd>Hussam Diab<br/>Mark Hazlewood</cd>
    </lecture>
    <lecture>
      <ld>Session #4<br/>Mon, June 04</ld>
      <ld>Prototype</ld>
      <cd>Naveen Narendra<br/>Prudhvi Srinivas</cd><cd>Tittu Jose<br/>Naresh Salguti/Fawcett</cd>
    </lecture>
    <lecture>
      <ld>Session #5<br/>Wed, June 06</ld>
      <ld>Adapter</ld>
      <cd>Vikram Bedekar<br/>Prasanth Vijayaraghavan</cd><cd>Chad Larkin<br/>Heath McLean</cd>
    </lecture>
    <lecture>
      <ld>Session #5<br/>Wed, June 06</ld>
      <ld>Bridge</ld>
      <cd>Jim Fawcett</cd><cd>Jim Fawcett</cd>
    </lecture>
    <lecture>
      <ld>Session #6<br/>Mon, June 11</ld>
      <ld>Composite</ld>
      <cd>Larson D'Souza<br/>Jim Fawcett</cd><cd>Thomas Lilley<br/>Jeffrey Song</cd>
    </lecture>
    <lecture>
      <ld>Session #6<br/>Mon, June 11</ld>
      <ld>Decorator</ld>
      <cd>Kedar Joshi<br/>Tilak Patel</cd><cd>Chaitanya Gaur<br/>Rajesh Thummalapally</cd>
    </lecture>
    <lecture>
      <ld>Session #7<br/>Wed,&#160;June&#160;13</ld>
      <ld>Facade</ld>
      <cd>Rittwick Babbar<br/>Priyush Kothari</cd><cd>Orlando Robertson<br/>Santosh Singh</cd>
    </lecture>
    <lecture>
      <ld>Session #7<br/>Wed, June 13</ld>
      <ld>Flyweight</ld>
      <cd>Kimberly Lang<br/>Estepan Meliksetian</cd><cd>Vishal Chowdhary<br/>Navit Saxena</cd>
    </lecture>
    <lecture>
      <ld>Session #8<br/>Mon, June 18</ld>
      <ld>Proxy</ld>
      <cd>Pradeep Vijay<br/>Francisco Zurita</cd><cd>Nihar Desai<br/>Lei Zhang</cd>
    </lecture>
    <lecture>
      <ld>Session #8<br/>Mon, June 18</ld>
      <ld>Chain of Responsibility</ld>
      <cd>Shweta Chandore<br/>Naveen Narendra</cd><cd>Dipika Satam<br/>Tittu Jose</cd>
    </lecture>
    <lecture>
      <ld>Session #9<br/>Wed, June 20</ld>
      <ld>Command</ld>
      <cd>Jim Fawcett</cd><cd>Jim Fawcett</cd>
    </lecture>
    <lecture>
      <ld>Session #9<br/>Wed, June 20</ld>
      <ld>Interpreter</ld>
      <cd>Larson D'Souza<br/>Prashanth Vijayaraghavan</cd><cd>Thomas Lilley<br/>Jeffrey Song</cd>
    </lecture>
    <lecture>
      <ld>Session #10<br/>Mon, June 25</ld>
      <ld>Iterator</ld>
      <cd>Kedar Joshi<br/>Prudhvi Srinivas</cd><cd>Chaitanya Gaur<br/>Rajesh Thummalapally</cd>
    </lecture>
    <lecture>
      <ld>Session #10<br/>Mon, June 25</ld>
      <ld>Mediator</ld>
      <cd>Tilak Patel<br/>Pradyuman Singh</cd><cd>Chad Larkin<br/>Heath McLean</cd>
    </lecture>
    <lecture>
      <ld>Session #11<br/>Wed, June 27</ld>
      <ld>Memento</ld>
      <cd>Jim Fawcett</cd><cd>Jim Fawcett</cd>
    </lecture>
    <lecture>
      <ld>Session #11<br/>Wed, June 27</ld>
      <ld>Observer</ld>
      <cd>Ritwick Babbar<br/>Naveen Narendra</cd><cd>Orlando Robertson<br/>Santosh Singh</cd>
    </lecture>
    <lecture>
      <ld>Session #12<br/>Mon, July 02</ld>
      <ld>State</ld>
      <cd>Swaroop Sham<br/>Francisco Zurita</cd><cd>Hussam Diab<br/>Mark Hazlewood</cd>
    </lecture>
    <lecture>
      <ld>Session #12<br/>Mon, July 02</ld>
      <ld>Strategy</ld>
      <cd>Larson D'Souza<br/>Shweta Chandore</cd><cd>Naresh Salguti<br/>Lei Zhang</cd>
    </lecture>
    <emlecture>
      <ld>No Session<br/>Wed, July 04</ld>
      <ld>4th of July Holiday<br/>No class</ld>
      <cd>&#160;</cd><cd>&#160;</cd>
    </emlecture>
    <lecture>
      <ld>Session #13<br/>Mon, July 09</ld>
      <ld>Template Method</ld>
      <cd>Kedar Joshi<br/>Tilak Patel</cd><cd>Vishal Chowdhary<br/>Santosh Singh</cd>
    </lecture>
    <lecture>
      <ld>Session #13<br/>Mon, July 09</ld>
      <ld>Visitor</ld>
      <cd>Kimberly Lang<br/>Estepan Meliksetian</cd><cd>Thomas Lilley<br/>Jeffrey Song</cd>
    </lecture>
    <lecture>
      <ld>Session #14<br/>Wed, July 11</ld>
      <ld>Role Object,<br/>PLOP 4, pg 15</ld>
      <cd>&#160;</cd><cd>&#160;</cd>
    </lecture>
    <lecture>
      <ld>Session #14<br/>Wed, July 11</ld>
      <ld>Extension Object<br/>PLOP 3, pg 79</ld>
      <cd>&#160;</cd><cd>&#160;</cd>
    </lecture>
    <lecture>
      <ld>Session #15<br/>Mon, July 16</ld>
      <ld>Acyclic Visitor,<br/>PLOP 3, pg 93</ld>
      <cd>&#160;</cd><cd>&#160;</cd>
    </lecture>
    <lecture>
      <ld>Session #15<br/>Mon, July 16</ld>
      <ld>Basic Relationship Patterns<br/>PLOP 4, pg 173<br/>Emphasize relat.model Su07</ld>
      <cd>&#160;</cd><cd>&#160;</cd>
    </lecture>
    <lecture>
      <ld>Session #16<br/>Wed, July 18</ld>
      <ld>State-Action Mapper<br/>PLOP 4, pg 95</ld>
      <cd>&#160;</cd><cd>&#160;</cd>
    </lecture>
    <lecture>
      <ld>Session #16<br/>Wed, July 18</ld>
      <ld>Msg Systems, Msg Channels<br/>Enterprise Integration Patterns</ld>
      <cd>&#160;</cd><cd>&#160;</cd>
    </lecture>
    <lecture>
      <ld>Session #17<br/>Mon, July 23</ld>
      <ld>Input and Output Pattern Language<br/>PLOP 4, pg 503</ld>
      <cd>&#160;</cd><cd>&#160;</cd>
    </lecture>
    <lecture>
      <ld>Session #17<br/>Mon, July 23</ld>
      <ld>Enabling Application Security<br/>PLOP 4, pg 301</ld>
      <cd>&#160;</cd><cd>&#160;</cd>
    </lecture>
    <lecture>
      <ld>Session #18<br/>Wed, July 25</ld>
      <ld>Capable, Productive, Satisfied<br/>PLOP 4, pg 27</ld>
      <cd>&#160;</cd><cd>&#160;</cd>
    </lecture>
    <lecture>
      <ld>Session #18<br/>Wed, July 25</ld>
      <ld>Big Ball of Mud<br/>PLOP 4, pg 653</ld>
      <cd>&#160;</cd><cd>&#160;</cd>
    </lecture>
    <lecture>
      <ld>Session #19<br/>Mon, July 30</ld>
      <ld>Customer Interaction<br/>PLOP 4, pg 26</ld>
      <cd>&#160;</cd><cd>&#160;</cd>
    </lecture>
    <lecture>
      <ld>Session #19<br/>Mon, July 30</ld>
      <ld>Refactoring to Patterns<br/>Chap7 - Simplification<br/>Chap8 - Generalization</ld>
      <cd>&#160;</cd><cd>&#160;</cd>
    </lecture>
    <lecture>
      <ld>Session #20<br/>Wed, Aug 01</ld>
      <ld>More on Pattern Languages<br/>Where do we go from here?</ld>
      <cd>Jim Fawcett</cd><cd>Jim Fawcett</cd>
    </lecture>
  </syllabus>
  Class meets twice per week for two hours each time.<br/>
  <file title="Scheduling constraints">../CSE776/scheduling.doc</file>
  <p/>
  <hr/>
  <html><img src="students\studentstrip2.jpg" width="100%" /></html>
  </visible>
</courses>
