cs445 - Spring 2007


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.

Section 51 Section 92 Section 251
Instructor Virgil Bistriceanu
Office hours Wed, Thu 5:30 pm - 6:15 pm
Office SB-214
Phone (312) 567-5146
Fax (312) 567-5067
e-mail bistriceanu@iit.edu
Lecture Thu 6:25 pm - 9:05 pm, SB-239
Teaching Assistant
  • Name: Yu Li
  • Office: SB-108
  • Office Hours: Thu 2:00pm - 4:00pm
  • Phone: TBA
  • email: yli84@iit.edu



Other required books

Other books

  • Refactoring: Improving the Design of Existing Code, Martin Fowler, Addison Wesley, ISBN: 0-201-48567-2
  • Thinking in Java, Bruce Eckel, Prentice Hall, ISBN: 0-13-187248-6
  • Surviving Object-Oriented Projects, Alistair Cockburn, Addison Wesley, ISBN: 0-201-49834-0
  • The Pragmatic Programmer, Andrew Hunt and David Thomas, Addison Wesley, ISBN: 0-201-61622-X


  • Midterm: 25%
  • Final: 35%
  • Homeworks: 10%
  • Project: 30%

Everything you have to turn in must be posted on the Blackboard before midnight (Central time) the day the work is due.

For late submittal there is a 10% per calendar day penalty.

Unless stated otherwise in the assignment, all the work you submit must be individual.

Academic dishonesty will not be tolerated. Please read IIT's rules and regulations.

Exams are open-book(s) open-notes.

The following grading scale will be used to determine your grade in this class:

  • A: 90 - 100
  • B: 80 - 89
  • C: 70 - 79
  • D: 60 - 69
  • E: 0 - 59 This is a failing grade!
To pass this class you will need to have a passing mark (60+) in each of the following:
  • Homeworks average
  • Project
  • Final
Of course, the overall average must be 60+ as well.

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.

Assignment Submission

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 your program(s).
  • 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 project.

Class Schedule

Date Topic Sub-topic Chapter [Book] Project
1/18/07 Introduction Object-Oriented Software Development, Test-Driven Development 1 [1] and [3]  

1/25/07 Crash Course in XP and test-driven development Demo in the lab [3]  

2/1/07 UML Use Cases, Class Diagrams 2 [1] and 3,4 [2]  

2/8/07 UML Interaction Diagrams, Advanced Concepts in Class Diagrams 5,6 [2]  

2/15/07 From Building Blocks to Projects Design and Implementation, Contracts and Invariants, Canonical Form 6 [1] Use cases (PR-1)
2/22/07 Design by Abstraction Design Patterns 7 [1]  

3/1/07 Frameworks Collections 8 [1] Sequence and state diagrams (PR-2)
3/8/07 Midterm Open notes/books Comprehensive  

3/22/07 Frameworks I/O 8 [1] Class diagrams (PR-3)
3/29/07 Frameworks GUI 8 [1]  

4/5/07 Design Patterns Creational 10 [1] Progress checkpoint (PR-4)
4/12/07 Design Patterns Behavioral 10 [1]  

4/19/07 Design Patterns Structural 10 [1]  

4/26/07 Concurrent Programming Threads 11 [1]  

5/3/07 Concurrent Programming Threads 11 [1] Project due (PR-5)
5/10/07 Final Open notes/books Comprehensive  

Your instructor reserves the right to change this schedule.

Important Events

Event Sections 51, 92, 251
Classes begin 1/16/2007
Last day to drop a class and receive full tuition refund 1/30/2007
Last day to remove incomplete grades 2/23/2007
Midterm 3/8/2007
Spring vacation (no classes) 3/12 through 3/17/2007
Last day for official withdrawal 3/30/2007
Last day of classes 5/5/2007
Final 5/10/07, 7:30pm to 9:30pm, SB-239

For more important dates and detail go to the IIT site.

Last update: Apr 20, 2007 Virgil Bistriceanu cs445 Computer Science

$Id: syllabus.html,v 1.8 2007/05/06 00:26:23 Virgil Exp $