| Professor: | Chris Gill |
| Office Hours: | by appointment |
| Contact Info: | phone: (314) 935-7538 e-mail: cdgill@cse.wustl.edu |
| Message board: | your professor will also frequently read and respond to postings on the course message board (Click here to go directly to the CSE 432/533 message board). |
http://classes.cec.wustl.edu/~cse432/http://classes.cec.wustl.edu/~cse533/http://www.cse.wustl.edu/~cdgill/courses/cse432/http://www.cse.wustl.edu/~cdgill/courses/cse533/
http://www.cse.wustl.edu/~cdgill/courses/cse432_sp06/
All students will be evaluated on the midterm and final examinations, their contributions to the team project at each milestone, and on leading an in-class presentation and discussion on one of the assigned reading topics. Students enrolled in the course as CSE 533S will be required to submit individual critiques (but not grading scores) of their team's submission at each milestone, and to lead a total of 3 in-clas presentation/discussion sessions, all of which will be evaluated in determining their grade.
Your professor will read and respond to postings on the course message board (http://classes.engineering.wustl.edu/cse533/bb/).
Please do not e-mail technical questions to the professor directly: instead, please post on the message board for all to see, consider, and respond.
Please note that the message board is a vital part of your CSE 432/533 experience. Participation on the message board (i.e., quantity and quality of your posts) will count significantly toward your participation grade.
If you have trouble accessing the message board, please let us know right away!
In addition to class meeting dates and themes, page numbers for reading assignments from the required textbooks (Design Patterns a.k.a. "GoF", and Pattern Hatching a.k.a. "PH") are shown for each meeting. Details about the textbooks are listed in the Textbooks section, below.
| Date | Course Project Stage | Assigned Reading | Discussion Leaders | |
| Mon, May 18 |
Course Structure and Syllabus, Intro to Design Patterns and Pattern Languages |
Prof. Gill (slides in ppt) |
||
| Thu, May 21 |
Team Formation and Project Definition |
GoF Preface, Foreword, Chapter 1 through section 1.8 (pp. xi-11) | Prof. Gill (slides in ppt) |
|
| Mon, May 25 |
||||
| Thu, May 28 |
Requirements I (due Friday May 29) (grading form and rubric in Word) |
GoF Composite Pattern (pp. 163-173) PH Chapter 1 (pp. 1-11) PH Chapter 2 through Fundamentals (pp. 13-18) |
Julie Betlach | |
| GoF Chapter 2 through section 2.6 (pp.33-58) | Dan Sibbernsen | |||
| Mon, June 1 |
High Level Design I
(due Tuesday June 2)
|
GoF Chapter 2 sections 2.7-2.9 (pp. 58-77) | Matt Deckard | |
| PH Chapter 2 Orphans, Adoption, and Surrogates (pp. 18-24) GoF Singleton Pattern (pp. 127-134) |
Josh Mason | |||
| Thu, June 4 |
Low Level Design I
(due Friday June 5)
|
PH Chapter 2 "But Where Do Surrogates Fit into This" (pp. 24-29) GoF Proxy Pattern (pp. 207-217) GoF Observer Pattern (pp. 293-299) |
Kurt Rehwinkel | |
| PH Chapter 2 Visiting Rights (pp. 29-38) GoF Visitor Pattern (pp. 331-344) |
Kurt Rehwinkel | |||
| Mon, June 8 |
Implementation I status update and discussion (nothing due) | PH Chapter 2 Single User Protection (pp. 38-45) GoF Template Method Pattern (pp. 325-330) GoF Strategy Pattern (pp. 315-323) |
Julie Betlach | |
| PH Chapter 2 Multiser Protection and Wrapping Up (pp. 45-59) GoF Mediator Pattern (pp. 273-282) |
Billy Bennett | |||
| Thu, June 11 |
Implementation I
(due Friday June 12) Take Home Midterm Exam and individual and course 360° Review Forms released (both due Thu June 18 by 5:30pm) |
GoF Creational Patterns (pp. 81-85) GoF Abstract Factory Pattern (pp. 87-95) GoF Builder Pattern (pp. 97-106) |
Billy Bennett | |
| GoF Structural Patterns (pp. 137-138) GoF Adapter Pattern (pp. 139-150) GoF Bridge Pattern (pp. 151-161) |
Matt Deckard | |||
| Mon, June 15 |
Evaluation I
(due Tuesday June 16) |
GoF Behavioral Patterns (pp. 221-222) GoF Iterator Pattern (pp. 257-271) GoF Memento Pattern (pp. 283-291) |
Dan Sibbernsen | |
| Thu, June 18 |
Requirements II (due Friday June 19)
|
PH Chapter 3 To Kill a Singleton (pp. 61-72) GoF Factory Method Pattern (pp. 107-116) |
Josh Mason | |
| PH Chapter 3 The Trouble with Observer and Visitor Revisited (pp. 72-85) |
Matt Deckard | |||
| Mon, June 22 |
High Level Design II
(due Tuesday June 23)
|
PH Chapter 3 Generation Gap (pp. 85-101) | Kurt Rehwinkel | |
| PH Chapter 3 Type Laundering (pp. 102-110) GoF Prototype Pattern (pp. 117-126) |
Billy Bennett | |||
| Thu, June 25 |
Low Level Design II
(due Friday June 26)
|
PH Chapter 3 Thanks for the Memory Leaks and Pushme-Pullyu (pp. 110-121) GoF Command Pattern (pp. 233-242) |
Dan Sibbernsen | |
| PH Chapter 4 (pp. 123-144) | Chris Gordon | |||
| Mon, June 29 |
Implementation II status update and discussion (nothing due) | PH Chapter 5 (pp. 145-152) GoF Façade Pattern (pp. 185-193) |
Josh Mason | |
| GoF Decorator Pattern (pp. 175-184) GoF Flyweight Pattern (pp. 195-206) |
Matt Klein | |||
| Thu, July 2 |
Implementation II
(due Friday July 3)
|
GoF Interpreter Pattern (pp. 243-255) | Julie Betlach | |
| GoF Chain of Responsibility Pattern (pp. 223-232) | Matt Klein | |||
| Mon, July 6 |
Evaluation II
(Final Project Reports) |
GoF State Pattern (pp. 305-313) | Matt Klein | |
| Thu, July 9 |
Team Demos Take Home Final Exam and Final Individual 360° Review Form released (both due by 5:30pm Thursday July 16) |
Course Review |
Prof. Gill |
|
| Thu, July 16 |
||||
Project documents and code are to be submitted electronically to the professor via e-mail: cdgill@cse.wustl.edu, and will be graded and returned to you electronically as well. The milestone for each week appears in the course Presentations and Discussions section, and your document for that milestone will be due at 11:59pm on the day after your team's in-class presentation and discussion on that milestone (for example, for the Requirements I milestone the submission deadline is 11:59pm Friday may 29).
Please make sure to submit work on time - especially during the compressed summer schedule, working steadily to complete assignments and to incorporate feedback in a timely manner, is essential to steady progress in the course. Project milestones submitted on time will be graded and returned within 24 hours after submision, and late submissions will be graded and returned within 48 hours after submission. Project milestones submitted within 24 hours after the posted deadline will be accepted with a 15% penalty up front, and project milestones submitted between 24 and 48 hours after the posted deadline will be accepted with a 30% penalty up front. Project milestones submitted after that will not be graded, except in the case of documented extenuating circumstances.
You may freely discuss your project with members of your team at any time, though students enrolled in the course as CSE 533S should complete their own project self-evaluations (using the provided grading form) for each milestone in their own words and based on their own opinions. You may also discuss your project with other students not on your team, but please make sure that relevant content of those discussions is made available to everyone during class times and/or on the course message board. Midterm and final exams must be completed individually and without assistance: you may not discuss them with anyone else, except for your professor.
You are encouraged to post and ask for help on particular problems you may encounter during your projects, though each team must design and implement its own own solution, and prepare its own report. If while developing content for a project milestone or an in-class presentation you determine it would be useful to incorporate ideas, code, documentation, or other content from another existing source, you will need to first obtain the professor's permission to use it, and you must then make sure to attribute the source appropriately.
If you'd like to look at a more complete set of coding standards used in a major collaborative (university, government, and industry) development setting, the ACE Software Development Guidelines document, from which a number of the guidelines for this course were drawn, and which the ACE developers use in daily practice, is a good place to start.
We'll use the required textbooks both as references and for reading assignments. The class meeting schedule contains references to reading assignments in the required texts. Please read them before the class meeting, and use the text as a reference in designing and developing your projects.
In addition to the required texts, the following texts may be useful additions to your programming library:
The take-home midterm and final exams will be comprehensive: each will cover the material up to that point in the course. The best way to study for the exams is to keep up with the readings and projects during the semester, and to ask lots of questions in class and on the course message board throughout the semester.
| Project milestones (for 533S graded 75:25 by document:critique scores) | 60 % Requirements I: 4 % High Level Design I: 4 % Low Level Design I: 4 % Implementation I: 4 % Evaluation I: 4 % Requirements II: 8 % High Level Design II: 8 % Low Level Design II: 8 % Implementation II: 8 % Evaluation II: 8 % Midterm exam |
10 % |
Final exam |
15 % |
Discussion(s) Led |
5 % |
360° Reviews |
5 % |
Participation |
5 % |
|
For this course, examples of cheating include but are not limited to:
This is a very serious matter. Anyone found cheating will at a minimum lose points equal to the assigned value for the assignment in question (for example if an assignment were worth 10% of the course grade then -10% of the course grade would be assigned), or possibly receive an F for the course. Further action may be taken in extreme cases, possibly including referral to the School of Engineering and Applied Science's formal academic integrity review process.
Furthermore, our policy is that we will make the final determination on what constitutes cheating. If you suspect that you may be entering an ambiguous situation, it is your responsibility to clarify it before we detect it. If in doubt, please ask.