CS 535: Project Description
SDSUCS 535 Object-Oriented Programming
Fall Semester, 1997
CS 535: Project Description

To Assignment Index
San Diego State University -- This page last updated November 5, 1997

Project Description

The project is to design and implement a room scheduling program for a university. The following are the general requirements of the room scheduler.


The university has various types of rooms that can be scheduled: classrooms, labs, offices, and conference rooms. Each room has a physical capacity of the number of people that can be in the room at one time. Each room has a unique label that consists of a building abbreviation and a number. For example BA 254, where BA is the building abbreviation for Business Administration. Some rooms also have nicknames like "the pit" or "the dungeon".

There are several different types of classrooms: regular, smart, and video conferencing. A regular classroom has seats for the students, at least one blackboard or whiteboard, and a table or a lectern for the instructor. Some classrooms have a overhead projector and a screen. Some classrooms have a TV connected to the campus cable system. A smart classroom is a regular classroom with a networked computer, an audio system, a computer screen projection device, and an Elmo projection device which can project solid objects on a screen. A smart classroom can only be used for classes or events that require the special equipment in the smart classroom. A video conferencing classroom is a room that has the required hardware to perform video conferencing to remote sites. A video conferencing classroom can only be used by classes that are being taught to a remote site.

There are also several types of labs: computer, chemistry, physics, and biology. Chemistry, physics, and biology labs can only be used by classes in the related field. So a chemistry lab can only be used for chemistry classes. The computer labs are open labs which means they can not be scheduled for any event.

Offices are assigned to faculty and staff. As faculty and staff move so infrequently the room scheduler does not have to deal with offices.

There are two types of conference rooms: regular and video conferencing. Regular conference rooms can only be used for one time events. They can not be scheduled for classes. The video conferencing room can only be scheduled for conferences with participants at remote video conferencing sites.


There are two types of events that can be scheduled into a room: reoccurring and onetime events. Reoccurring events are those that will occur at the same time and same day(s) of the week for the entire semester. A onetime event is one that occurs only once. An event has a start time and an end time, a name, and a contact person. For example a class might start at 14:00, end at 15:15, have the name "cs535", and the contact person would be the instructor. All times are indicated using the 24 hour clock. The days of the week are Monday - Friday. Rooms are not scheduled Saturday or Sunday. The semester is 15 weeks long. The weeks are numbered 1-15. Dates are indicated by the week of the semester and the day of the week. For example one would refer to Thursday of week 2.


The room scheduler needs to perform various operations. The obvious operation is to schedule a room. An individual may need to schedule either a reoccurring or a onetime event. However people usually like some choice. Assume we are going to schedule a special lecture Wednesday at 19:00 for two hours on week 10 of the semester. We think that 30 people will attend the lecture. We would want the room scheduler to give us a list of available rooms at that time which will hold at least 30 people and allow us to select which room we wish to schedule. The room scheduler will handle only one request at a time. This means two different things. First we do not have to worry about two people trying to schedule the same room at the same instant. Second we do not have to worry about processing batch jobs containing multiple requests. The university will provide the initial room schedule for the standard courses.

The second operation for the room scheduler is canceling a previously scheduled event. Canceling a onetime event is straight forward. There are two aspects of canceling a reoccurring event. A reoccurring event can be canceled for the rest of the semester. This happens for example when no students enroll in a course. A reoccurring event can skip a single meeting. This happens for example when the instructor of a course is out of town attending a conference.

A third operation for the room scheduler is finding a scheduled event. A user may wish to find a scheduled event by its name or its contact person. so for example someone may wish to find an event occurring Thursday night with the name "cs535".

The user can interact with the room scheduler via an ASCII terminal. The room scheduler will be modified at a later date (by a different team in a different course) to use a GUI interface in a stand alone application and to work via the Web.

visitors since November 5, 1997