This class is an introduction to methodologies for object-oriented design and programming.
Examines the object model and how it is realized in various object-oriented languages. Focuses on methods for
developing and implementing object-oriented systems.
Prerequisite: CS 331 or CS 401 or CS 403.
Exams are open-book(s) open-notes.
The following grading scale will be used to determine your grade in this class:
Class attendance and participation will help settle the borderline grades.
Regular class attendance is important and students are expected to actively
participate in class: questions and comments are always welcome.
You are required to submit your work online, using the Blackboard. Late work will be accepted,
however it is subject to the late penalties described in this syllabus.
Here are the requirements:
- Submit your electronic copy using the Blackboard (attach your assignment as a compressed
archive file (.zip, .tgz, .tbz2, .rar)
- The name of the compressed archive should be: fistName-lastName-type-assignmentNumber.zip
where type stands for any of the following, HW for homeworks, PA for programming assignment, PR for project.
For example Jane-Doe-HW-1.zip or John-Smith-PR-3.bz2
- Include (i) your document with solutions to problems in the assignment, (ii) the source code if any of the problems
in the assignment requires you to write code, (iii) a README file that explains how to build and on how to run
- Include your e-mail address in the Comment field when submitting the assignment through the Digital Drop Box
- If for any reason you are submitting the assignment more than once, indicate this in the
Comment field by including the word COMPLEMENT
Unless otherwise stated all work you turn in will be TYPED. No handwritten
work will be accepted.
Each page will have a header as follows:
- the left side: your name
- middle: page number and the total number of pages (ex. 2/5 indicates this
is page 2 out of a total of 5)
- right hand side: name of the assignment (ex. Homework #2)
Each page will also have a footer:
- the left hand side will contain the following text:
cs445-section: Spring 2007 where section stands for
the section you are in, e.g. cs445-51: Spring 2007
- the right hand side will contain the following text:
Illinois Institute of Technology - Computer Science Dept.
The purpose of the project is to give you the opportunity to practice the concepts discussed
in this class. The requirements are purposely somewhat vague such that you can interact with the client
(that's your instructor) to figure out the detailed requirements.
In addition to various deliverables you have to produce throughout the semester and a working product
on the due date of the project, you are expected to develop a lot of unit tests as you work on this
||Object-Oriented Software Development, Test-Driven Development
||1  and 
||Crash Course in XP and test-driven development
||Demo in the lab
||Use Cases, Class Diagrams
||2  and 3,4 
||Interaction Diagrams, Advanced Concepts in Class Diagrams
||From Building Blocks to Projects
||Design and Implementation, Contracts and Invariants, Canonical Form
||Use cases (PR-1)
||Design by Abstraction
||Sequence and state diagrams (PR-2)
||Class diagrams (PR-3)
||Progress checkpoint (PR-4)
||Project due (PR-5)
Your instructor reserves the right to change this schedule.
||Sections 51, 92, 251
|Last day to drop a class and receive full tuition refund
|Last day to remove incomplete grades
|Spring vacation (no classes)
|| 3/12 through 3/17/2007
|Last day for official withdrawal
|Last day of classes
|| 5/10/07, 7:30pm to 9:30pm, SB-239
For more important dates and detail go to the IIT site.