CSCI-4380 Database Systems
Spring 2002

Instructor:         Mohammed J. Zaki
Office:               Lally IT Bldg 307
Phone:               x6340
Email:                zaki@cs.rpi.edu
Class Hours:     SAGE 3510, TF 10:00-11:50am
Office Hours:    Tuesdays 12:30-2:30pm, or by appointment
TAs:        Matt Freeman (freemm@rpi.edu), Zujun Shentu (shentu@rpi.edu), and Feng Gao (gaof@rpi.edu)
Web Page:         http://www.cs.rpi.edu/~zaki/cs4380/
 

Introduction
For over 30 years, computerized database systems have been developed and used to help computers manage the ever increasing amount of data we store and manipulate. This course presents an overview of the "state of practice" in modern database systems. Three aspects of database management will be examined. First, we will look at the basic structure and capabilities of a database system. Second, we will examine the process of designing a database and using a database system. Lastly, we will look inside a database system to see how it is implemented. Some latest trends in database systems such as XML and OLAP/data mining will also be looked at.

Text
We will be using the following book as a text (required): Databases and Transaction Processing: An Application-Oriented Approach, by Lewis, Bernstein and Kifer, Addison Wesley, 2002 (ISBN:0-201-70872-8). We will also occasionally supplement this text with outside material. This material will either be handed out in class or made available on the web.

Prerequisites
This is a 4000 level course, intended for advanced undergraduates. Students are expected to have a computer science/systems background that includes basic data structures and to be comfortable programming in C/C++. Further, a level of academic maturity is assumed. Students will be expected to learn to use computing tools independently.

Class Format and Requirements
Your grade will comprise of homeworks, midterm exams, term project and a final exam. There will be 5 to 6 homework assignments throughout the semester. There will be two midterm exams and a comprehensive final exam. There will be a group term project due at the end of the semester. This project will be based on the student registration case study in the text book.

The final grade will be determined as follows:
    20% homeworks
    40% midterm exams (20% each exam)
    25% final exam
    15% project

Attendance in lecture is not enforced, but highly encouraged. You are responsible for the material covered in lecture and any announcements made whether you are there or not.

Timeline for Topics
See the course website for the timeline. There might be a change in the topics as we progress during the semester.

Academic Integrity
The following guidelines pertain to the evaluation items listed above.

Homework -- homework assignments are intended to reinforce important concepts and are meant to be learning experiences. Collaboration and discussion among students is encouraged during early stages of solving a problem. However, copying someone else's answers is not acceptable. Work with others to explore different techniques for solving a problem, then carry through the solution process by yourself. Students must turn in their own solutions for each homework assignment.

Exams -- exams are intended to gauge your understanding of the course material covered in the preceding classes. No collaboration of any kind is permitted. Exams will be closed book and closed notes. But you may prepare and use one crib sheet no larger than 8.5" x 11" written on both sides.

Team Project -- the team project is essential for gaining "real world" experience in using database systems. You should collaborate freely with the members of your team. Collaboration between teams is discouraged, but is acceptable when it pertains to solving a problem of how to implement some functionality in the database system your team is using.

Keep the following guidelines in mind: Students are allowed to work together in designing algorithms, in interpreting error messages, in discussing strategies for finding bugs, but NOT in writing code or homework. Students may not share code, they may not copy code, and they may not discuss code in detail (line-by-line or loop-by-loop) while it is being written or afterwards. This extends up to two days after the submission deadline. Students may not ``show'' their code or homework to other students as a means of ``helping them''. Students may not leave their code (either the electronic versions or the printed copies) in publically accessible areas.

Violations of these terms in the submission of homework or code is liable for punishment. The standard penalty in copying homework and projects is a 0 for the assignment and a letter grade drop. A second offense or cheating in an exam will result in an F for the course and the student will be reported to the dean of students.

Other Policies
Late homework assignments and projects will not be accepted (a score of 0 will be assigned), so turn in what you have on the due date (partial credit will be given). Exceptions will be granted only if arranged prior to the due date or a documented illness intervenes.

Since exams are given in class, make-up exams will not be given. Students who know that they will miss an exam must notify the instructor in advance. The only exception will be for substantiated medical emergencies.