CMSC 424: Database Design
Demos are scheduled for December 16th and 17th. See the schedule
below and on the newsgroup. The final exam is on Saturday, December
18th, 10:30am--12:30pm, in CSI 1121.
[Reminder: Use the newsgroup.]
- Class meetings: Tuesdays and Thursdays,
3:30pm to 4:45pm; CSIC 1121.
- Class newsgroup: csd.cmsc424.0201 (local to umd.edu).
We'll use this newsgroup for announcements and discussions. Please post questions and comments to this
newsgroup (instead of emailing them to the instructor or TA)
unless you wish to keep your comments private. This newsgroup is required reading for this course, and constructive
discussions are highly encouraged. (See note on class participation
- Class Mailing List: Please make sure you
have subscribed to the class
mailing list. Subscription is not automatic; you need to
subscribe yourself. In order to thwart spam and other misuse, both
you and I will need to confirm your subscription request. (The
details will be sent to you automatically during the subscription
process.) This mailing list will be used only for urgent messages or
when there are problems with the news server.
- Instructor: Sudarshan S. Chawathe
- Email: firstname.lastname@example.org
Please put the string "CMSC424-0201" near the
beginning of the Subject header for all 424-related email.
- Office hours: Tuesdays and Thursdays, 3:00pm-3:30pm and
4:45pm-5:30pm (both times on both days), or by arrangement.
- Teaching Assistant:
Tsz-Wo (Nicholas) Sze
- Email: email@example.com
- Office hours: Mon 3:30-4:30; Tue 11:00-12:00 & Wed
- Office: AVW
3450 (not for office hours).
- Phone: 301-405-8099
- Required Textbook:
A First Course
in Database Systems, Jeffrey D. Ullman and Jennifer Widom,
Prentice Hall, 1997.
- Recommended Programming Books: Books
on programming with Oracle and PostgreSQL. You are free to pick any
books, but here are a couple of suggestions. (Again, please feel
free to pick alternatives based on your level of programming
expertise and preferred style. There will be nothing in the course
that depends on the specific books below.)
In addition to the above, books on programming with Apache and/or
other Web servers may be useful, especially for those who find it
difficult to pick up programming methods from online sources.
There is a lot of useful material (including code samples) on the
Web sites for the textbooks, so browsing the sites is recommended.
- Optional references: Principles of
Database and Knowledge-Base Systems (vols 1 and 2) by Jeff Ullman;
Database System Concepts by Korth, Silberschatz and Sudarshan; SQL
for Smarties by Joe Celko (specially recommended); A Guide to the
SQL Standard by Date and Darwen; Foundations of Databases by
Abiteboul, Hull and Vianu. (Most of these books are on reserve in
- Description: This course covers database
systems from the perspective of database designers and database
programmers (not to be confused with database system implementors).
Thus, a more accurate course title is ``(database (design and
programming)).'' 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, refer to the textbook's table of
- Schedule: Please refer to the
The actual schedule will depend on factors such as how quickly we are
able to cover material, and feedback from the class.
- Project: The programming project is a
very important component of this course. Not only does it provide an
opportunity to experiment with and apply the ideas discussed in class,
it also provides experience in teamwork and project management. The
project consists of designing, building, documenting, and
demonstrating a substantial database application. Students are
encouraged to pick an application domain that excites them, with the
caveat that it include a nontrivial database component. Here is a collection of some ideas that may help.
A series of project reports and
milestones should help keep the project on schedule. Project Guidelines.
- Programming: This course assumes that
students have enough programming experience to be able to work in
teams of about four to independently plan, design, and implement a
substantial project involving a possibly new environment. Students
are strongly encouraged to make sure they have such experience. Most
students find database programming harder than it first appears
(unlike, say, writing device drivers, which people expect to be hard).
Please be prepared. Although the university maintains the Oracle
database system for class use, we will not be covering nitty-gritty
details of Oracle in class. (This course is not an Oracle tutorial.)
Further, students are encouraged to install and use other database
systems. Similarly, students are encouraged to program in a language
of their choice.
- Grading: Grading is based on class
participation (5%), homeworks (15%), two quizzes (15%), a mid-term
exam (15%), a final exam (20%), and a project (30%). All exams and
quizzes 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 student and instructor or TA.
- Class Participation: Students get class
participation credit for questions and comments made in during class
meetings, as well as for postings on the class newsgroup. Any other
service (e.g., pointing out that there's a tornado approaching) will
also be recognized. The objective is to get everyone involved in the
class, so please don't obsess about the 5%. If you're worried about
how well you're doing in this department, ask me after a few class
meetings. (In other words, you don't have to make yourself heard at
every meeting. However, if I don't recognize you by the middle of the
semester, it's a bad sign.) If you're a quiet kind of person, use the
newsgroup to your advantage. Special note: If you are unable to
render your noise-making accoutrements (cell phones, pagers, PDAs,
watches, etc.) silent, please rid yourself of them before coming to
class. Disturbing the class is a serious disservice. If you have a
good reason for interruptions in class, make special arrangements with
me well in advance.
- Homeworks, Quizzes, and Exams: We'll
post assignments and solutions here. (You may need to authenticate
yourself using the username and password announced in class for some
of these files.) You may want to take a look at the Web sites from
earlier semesters (links below) for sample assignments, quizzes, and
- Miscellaneous Links:
- Policies: The class
policy is required reading. (Prospective
students, please read the admission
policy before contacting me.)
Wed Dec 15 20:03:40 EST 2004
Unless otherwise noted, all documents in the
http://www.cs.umd.edu/class/fall2004/cmsc424-0201/ hierarchy are
Copyright © 1999--2004 Sudarshan S. Chawathe.
Validated as HTML
Sudarshan S. Chawathe