Class meetings:
Tuesdays & Thursdays, 12:30–1:45 p.m.
Neville Hall, Room 210.
Sudarshan S. Chawathe
224 Neville Hall
Office hours:
(Please check for changes.)
Tuesdays & Thursdays, 1:45–3:00 p.m.
The result of inserting the state’s name after the first u in
Please put the string COS480 near the beginning of the Subject header of your messages to me.
A first course in database systems. Jeffrey D. Ullman and Jennifer Widom. Prentice-Hall, Upper Saddle River, New Jersey, second edition, 2001. The textbook’s Web site has many useful resources:
Class Web site:
We will use the class Web site for posting announcements, homework assignments, hints, solutions, etc. Please monitor it.
Class Newsgroup:
We will use the local USENET newsgroup umaine.cos480 on the NNTP server for electronic discussions. If you are unfamiliar with USENET, you may find the Web interface at useful as a quick way to get started. You may find further information on USENET at
Class mailing list:
Please make sure you are on the class mailing list. A sign-up sheet will be circulated at the first class meeting. If you missed it, you need to contact me to get on the list. We will use this mailing list only for urgent messages because all other messages will go on the class newsgroup. (I anticipate fewer than a dozen messages on this list over the semester.)
Subject matter:
This course covers database systems from the perspective of database designers and database programmers (not to be confused with database system implementors). The emphasis is on fundamental topics that should be familiar to every computer scientist and good programmer. In addition to traditional topics such as Entity-Relationship modeling, relational database design theory, relational algebra and calculus, SQL, and Datalog, the course also covers object-oriented and object-relational databases, with topics such as ODL, OQL, and SQL3. For a more detailed listing of course topics, please refer to the textbook’s table of contents:

# DateMaterial

109-053.0, 3.1, 5.0, 5.1, 5.2.
2 -076.1, 6.2.
3 -12HW1 assigned; 6.3, 6.4.
4 -146.5, 6.6.
5 -196.7, 5.3, 5.4.
6 -211.*.
7 -26PR1 & HW1 due; catch-up; review.
8 -28Midterm Exam 1; HW2 assigned.
910-038.1, 8.3, 8.4, 8.5
10 -058.6, 8.7
-10No class (Fall break Oct. 7th–10th).
11 -122.1, 2.2; Readings 1 & 2.
12 -172.3, 2.4.
13 -19HW2 due; HW3 assigned; 3.2, 3.3.
14 -243.4, 3.5.
15 -263.6, 3.7.
16 -31HW3 due; catch-up; review.
17 11-02Midterm Exam 2.
18 -077.1, 7.2.
19 -09HW03 due; 7.3, 7.4.
20 -144.1, 4.2, 4.3.
21 -16PR02 due; 4.4, 4.5, 4.6, 4.7.
22 -219.1, 9.2, 9.3.
-23No class (Thanksgiving break
Nov. 23rd–26th).
23 -289.4, 9.5.
24 -3010.1, 10.2; Reading 3.
2512-0510.3, 10.4.
26 -078.2, extra
27 -12demos; catch-up; review
28 -14demos; catch-up; review
29 -19Final exam, 2:45pm–4:45pm.

Figure 1: Approximate Schedule. The numbers refer to sections in the textbook. PR denotes project report and HW denotes homework. Tuesday dates are in italics.

Special needs:
If you have special needs of any kind (including, but not limited to disabilities, absences due to participation in sports or other activities, etc.) please contact me as soon as the need is known to you and I will try to accommodate them as much as possible.
Although I expect students to attend all class meetings, I will not be taking attendance. If you miss a class meeting, you are responsible for making up the lost material. If you have a valid reason for missing a class, let me know early and I will try to help you make up the class. (See above.)
At the beginning and end of each class, I will announce sections of the textbook covered in each class and those due at the next class. An approximate schedule appears in Figure 1. Please use it only as a rough guide to plan your studies. Do not use it to schedule travel or other events. If you need a definite answer on when something will or will not occur, you should check with me.
Make-up classes:
I may have to reschedule a few classes due to my other professional commitments. I will make every attempt to minimize the number of such occurrences and to reschedule for a time that works for most students. Further, I will make sure no student is penalized by such occurrences.
Grades will be based on class participation (5%) homeworks (15%), two mid-term exams (15% each), a final exam (20%), and a project (30%).
Class participation:
Students are expected to contribute to learning by asking questions and making relevant comments in class. Quality is more important than quantity. Disruptive activity contributes negatively. Please make sure all disruptive devices are disabled while in class.
Homeworks include programming and non-programming ones. No collaboration is permitted. You are allowed to discuss the problems at a high level, but the final solution must be your individual work.
All exams are open book, open notes. You are free to bring with you any resources that you find useful. However, no communications are permitted other than between students and me.
In addition to the programming and other homeworks, the course features a semester-long group project. Students will work in groups of three or four to design and implement a substantial database application. Projects will be graded based on a written project report, the submitted source code, a demonstration, and a question-and-answer session following the demo.
We will use PostgreSQL as the database system for programming assignments. You are free to program in any programming language you choose. However, if you are likely to need assistance, you should check with me before making your decision.
Class accounts:
Class accounts for Unix and PostgreSQL will be generated based on the forms distributed at the first class meeting. If you missed them, please get in touch with me. You should be able to access your accounts from anywhere on the Internet (including the labs in Neville Hall and elsewhere on campus) by using ssh to connect to On most Unix hosts, the command ssh -l username should suffice. For Windows hosts, the freely available Putty program works well: Do not use unencrypted telnet sessions to connect to your account!
Due dates:
All due dates are strict, as announced in class. If you believe your work was delayed by truly exceptional circumstances, let me know as soon as those circumstances are known to you and I will try to make a fair allowance. However, the default is that you get a zero if you don’t turn in the work on time.
Academic honesty:
I expect you to hold yourselves to the highest standards of academic honesty. Please take this point very seriously. If you are not sure if something is permitted, check with me. All help you receive, even if permitted, must be prominently noted in all work you submit. Plagiarism and other forms of cheating will result in very stiff penalties (including, but not limited to, an F grade in the course and further disciplinary action from the university).
COS 580:
There will be additional readings assigned to COS 580 students. The readings will be a mix of some classic papers of the database field and more recent publications. COS 580 students are expected to be comfortable reading such papers. There will also be additional and/or different questions on the exams and homeworks. Similarly, COS 580 students will be held to a higher standard during the question-and-answer session following the project demo.