|
|
Index
Course Description
This course is intended to give students a solid background in
databases, with a focus on relational database management systems.
Topics include data modeling, database design theory, data definition
and manipulation languages, storage and indexing techniques, query
processing and optimization, concurrency control and recovery, and
database programming interfaces. In addition to these traditional
topics, this course covers a sample of emerging topics such as XML and
Web data management as well as advanced topics such as data
warehousing and data mining. Programming projects are required.
Prerequisites: Familiarity with Unix and Java or C++. A good
understanding of algorithms and data structures. Compared with
CPS216 (Advanced Database Systems), CPS116 emphasizes more on how
to use a database management system (DBMS) to build databases and
database applications, instead of how to develop a DBMS itself.
Nevertheless, we will study plenty of DBMS internals in order to
use a DBMS more effectively.
Staff
Instructor: Jun Yang
Web: http://www.cs.duke.edu/~junyang/
Email domain: cs.duke.edu, user: junyang
(address is user@domain)
Office: D327 LSRC
Office hours: Tuesdays 10:40am-11:40am, 12:55pm-1:55pm and Thursdays 9:40am-11:40am, or by appointment
TA: Yi Zhang
Web: http://www.cs.duke.edu/~yizhang/
Email domain: cs.duke.edu, user: yizhang
(address is user@domain)
Office: D125 LSRC
Office hours: Wednesdays 12:30pm-2:00pm and Fridays 12:30pm-2:00pm, or by appointment
Time and Place
11:40am-12:55pm on Tuesdays and Thursdays; D243 LSRC
Throughout the semester, there will also be a number of (optional)
discussion/review sessions conducted by the TA. They will be
scheduled when needed, one week in advance.
Books
Required: Database Systems: The Complete Book, by
Hector Garcia-Molina, Jeffrey D. Ullman, and Jennifer Widom. Prentice
Hall. 2002.
Web, Email, and Blackboard
Most of the course materials, including the syllabus, lecture
notes, reading assignments, homeworks, programming FAQs, etc., will be
available through the course Web page (http://www.cs.duke.edu/courses/fall07/cps116/).
The email address cps116@cs.duke.edu
reaches everybody in the class as well as the instructor and the TA.
Only announcements, questions/answers, and comments of general
interests should be sent to this address. Specific questions should
be directed to the instructor and the TA. Please check your emails
regularly, as important announcements and information will be sent
via email.
We will use the Blackboard
course management system for grades.
Accounts
For most of the programming work in this course, we will provide
a Linux server running the IBM DB2 database system as well as other
relevant software packages. The account is only valid for the
duration of the course and will be purged when the semester is over.
You will receive more information about the account on this server
during the second week of the class.
Parts of the homework assignments will be completed online on Gradiance, a system pioneered
by Prof. Jeffrey
Ullman at Stanford. Gradiance can generate different intances
of a problem each time it is used, and it has a lab component that
automatically tests your solutions on different inputs. One of the
best features of Gradiance is that you are permitted to test yourself
on a particular topic as many times as you like. We encourage you
to continue testing on each topic until you complete the assignment
with a 100% score. For each Gradiance problem set or lab, your
score is the highest score achieved as of 11:59PM on the due date.
More information about how to sign up for Gradiance accounts will
be available at the time of the first assignment.
Grading
Grading is done on an absolute, but adjustable scale. In other
words, there is no curve. Anyone earning 90% or more of the total
number of points available will receive a grade in the A range; 80%
or more guarantees a grade in the B range; 70% or more guarantees a
grade in the C range; 60% or more guarantees a grade in the D range.
At the discretion of the instructor, the grading scale may slide down
(i.e., the grades go higher), but it will not slide up.
Homeworks | 35% |
Project | 25% |
Midterm | 20% |
Final | 20% |
There are four homeworks, with a mix of written problems,
programming problems, and supplemental online Gradiance problem
sets and labs. Late homeworks will not be accepted, unless there
are documented excuses from a physician or dean.
There is a course project (done either individually or in groups
of up to three). Details will be available in the third week of
the class.
Both midterm and final exams are open-book and open-notes.
Honor Code
Under the Duke Honor
Code, you are expected to submit your own work in this course,
including homeworks, projects, and exams. On many occasions when
working on homeworks and projects, it is useful to ask others (the
instructor, the TA, or other students) for hints or debugging help,
or to talk generally about the written problems or programming
strategies. Such activity is both acceptable and encouraged, but you
must indicate in your submission any assistance you received. Any
assistance received that is not given proper citation will be
considered a violation of the Honor Code. In any event, you are
responsible for understanding and being able to explain on your own
all written and programming solutions that you submit. The course
staff will pursue aggressively all suspected cases of Honor Code
violations, and they will be handled through official University
channels.
|