University of Ottawa, School of IT and Engineering

CSI1102,  Winter 2005

Fundamentals of software design   (3 hours of lecture per week, 3 hours of lab per week, 4 credits)

This course introduces students to the fundamentals of software design. We will introduce the concepts of software design and pseudo-code; object-oriented programming; and abstraction principles including virtual machines, information hiding and encapsulation. Also, the course introduces simple data structures, including linked lists, stacks, and queues, and their applications.  Students will also be introduced to the iterative and recursive processing of data structures. 

Lab work will be done in the Java programming language. Prerequisite: GNG1101 or CSI1100


  • The unofficial final marks are posted here.
    If you want to see your exam paper, come by for "exam viewing office hours" on Wed, May 4, 11:00-17:00, in CBY A611. If you want to ask for exam re-marking, you will be filling this form (note that if you ask for re-marking you automatically loose the 3 extra marks added to all the exams in order to compensate for any possible marking mistakes).
  • The solution to the final exam is here.
  • The solution to the midterm is here.
  • The solutions to Lab assignment 1, 2, 3, 4 are posted (see the link Lab Assignments 2005). So are the solutions to Quiz 1, 2, 3, 4.


Exam preparation webpage


Lab webpage maintained by the head TA (info about the marking schedule; it also includes marks for Lab1, 2, 3 Quiz 1, 2 and Midterm).

Theory Course Outline 2005 and Link to Slides

Lab Assignments 2005            About the Labs


Java Resources (includes links to documentation)    Course FAQ page

Evaluation/Mark allocation

Professorís Details (Section C)

Dr. Diana  Inkpen

Office:  Room  A611 CBY Building

Class webpage:   Phone: 562 5800 x 6711

Lectures:   Wed 14:30-16:00, Fri 13:00-14:30, Room SITE A0150

Office hours: Mon 13:15-14:30 and Wed 13:15-14:30 (in CBY A611), or by e-mail appointment.



Prescribed Book

 Java Software Solutions, Third Edition, J. Lewis and W. Loftus, Addison Wesley, 2003, ISBN 0-201-78129-8

This is a required text, available at the bookstore. We will follow the prescribed book quite closely. It is therefore essential that you do purchase a copy. Older editions can be used too. The fourth edition it not recommended since the programming examples might be slighly different.  

Evaluation/Mark allocation

The final mark will be calculated as follows.


4 Labs                                                                                     4 x 5 points =     20 points

4 Quizzes (in class)                                                                  4 x 0.5 points =    2 points

1 Midterm                                                                                                          20 points

Examination                                                                                                       58 points

Total                                                                                                              100 points

The final mark will be computed as max(20% labs + 2% quizzes + 20% midterm + 58% exam, 20%labs + 2% quizzes + 78% exam). In this way, a bad midterm day can be compensated by a good final exam.

You are, however, required to obtain at least 50% for the final examination in order to pass this course.

There will be bonus points for class participation.