Skip to main content
Spring 2003

Spring 2003

Spring 2003
DevHood COMP 410 Discussion board
Spring 2003 > Shared Documents > Syllabus  

COMP 410 Spring 2003 Home Page

Course Description

This course will focus on designing software that is flexible, extensible, correct and robust. Object-oriented techniques, including design patterns, will be emphasized. Development techniques such as extreme programming will be explored. The programming assigments will include large group projects. C# and the Microsoft .NET Framework will be used as the development language.  No prior knowledge of C# or .NET is required however.   This course is designed to emphasize and recreate design and programming situations encountered in the "real world". This course will stress individual/group research and exploration of many topics. Prerequisite: Comp212

This class will be run "seminar" style, where the students will be responsible for both researching as well as presenting the class materials.  There will be minimal lecturing by the instructor.

Class web site:

Course Objectives

The main objective of this course is to learn techniques of designing software that is scalable to large industrial sizes.     This will involve learning new language and infrastructure designed for use in such projects (C# and .NET) and architectural  techniques such a design patterns.   Perhaps as importantly, in this course, the student will learn how to gather, assimilate and disseminate new information that affects the progress and implementation of a project.   One very important aspect will be learning how to work in teams and groups of teams.   This will include learning to modularizing a project , team coding, creating API's, and maintaining code and informational coherency within the group.  We will also learn how to use modern software developement tools such as RAD IDE's and CASE tools.

Class hours

Monday, Wednesday 1:00 PM - 1:50 PM in Symonds II laboratory

Friday 1:00 PM - 1:50 PM in DH 1075  +  5:00 PM - 6:00 PM in Symonds II


Instructor:  Stephen Wong  
E-mail: swong at
Office: DH 3102 
Office hours: see web page (

Course Assistant/Grader: Sumit Mittal
E-mail: mittal at



Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides, Design Patterns, Elements of Reusable Object-Oriented Software, Addison Wesley, 1995.   ISBN 0201633612.  The bible of design patterns, a must-have for anyone serious about object oriented programming.

Martin Fowler and Kendal Scott, UML Distilled: A Brief Guide to the Standard Object Modeling Language, 2nd ed., Addison Wesley, 1999.  ISBN 020165783X.  Useful for learning how to fully use UML diagrams.



Kent Beck, eXtreme Programming eXplained, Embrace Change, Addison-Wesley, ISBN: 0201616416.    The definitive reference by the developer of XP.
Martin Fowler,Kent Beck, John Brant,William Opdyke, Don Roberts, Refactoring: Improving the Design of Existing Code, Addison-Wesley, ISBN: 0201485672.   The definitive book on refactoring.


This is a project course designed to teach about software engineering, so the class grade will determined on a combination of project milestones and journals.

Project Milestones

    • Each student will be responsible for at least one milestone that comes due every two weeks.
    • 100% score will be awarded for a completed milestone.    Incomplete milestones will be assigned a score commensurate with their completeness level and the importance of the milestone.


    • Each student will be turn in a journal entry each Friday.
    • Each journal entry must cover the following issues 
      • Status of the student's milestones -- be specific and complete!
        • Gains made 
        • Obstacles encountered
        • Solutions proposed
      • Analysis of development process
        • What seems to be working  -- why?
        • What seems to not be working -- why?
        • Proposals for change
          • Must propose something, no matter how small.
          • What is proposal designed to fix/change?
    • Journals must be in MS Word format with imbedded graphics if needed.
    • Journals will be posted and all students are responsible for reading all journal entries.
    • File naming convention:  [login]JXX.doc   where XX is the two-digit journal number.
    • General dropoff location: [link removed] (On campus only!   Hit "Refresh/Reload" if "Page not found" error appears.) 

Final Project

At the end of the semester the final project will be assigned a score that will be applied equally to all students.



100% class attendance is absolutely mandatory.  

Grading (subject to change)

Journals: 45%
Milestones: 45%
Final Project:  10%