CS 525 - Advanced Database Organization, Sections 1, 251, 961
Summer, 2008
Instructor: Wai Gen Yee (yee@iit)
Time: Tuesdays and Thursdays, 12:10-2:50
Location: SB238
Office hours: Tuesdays and Wednesdays, 3-4, or by appointment
TA: Dongmei Jia (jiadong@iit)
Class Web page: www.ir.iit.edu/~waigen/classes/cs525sum08
|
Course News! | Home | Courses
News:
Course news relevant to all sections will be posted here in reverse chronological order.
Description:
Study of relational, semantic, and object-oriented data models and interfaces. Database management system techniques for query optimization, concurrency control, recovery management, and distributed processing. If we have time, we will cover some more advanced, non-core database topic (e.g., data mining).
Prerequisites:
CS 425 (Database Organization), and probably CS 402 (Introduction to Advanced Studies). Strong knowledge of programming in C/C++ and Unix/Linux. Code should be compilable on IIT's Unix machines. (No Java, no Basic, no Microsoft. Just pure, portable C/C++ code.) Data structures.
Recommended Texts (any one of the following):
- Elmasri and Navathe, Fundamentals of Database Systems, 4th Edition, Addison-Wesley, 2003.
- Ramakrishnan and Gehrke, "Database Management Systems," 3nd edition, McGraw-Hill, 2002.
- Silberschatz, Korth, and Sudarshan, Database System Concepts, 4th Edition, McGraw Hill, 2002
Syllabus:
- Storage system: block-based data access, writing data to disk, representing nulls, locating free space, overflow blocks
- Buffer management: LRU, CLOCK, LFU, FIFO, etc.
- Access structures: heap, ISAM, B+-tree, direct addressing, hashing, extendible hashing
- Query processing: implementing the relational algebra, implementing sorting, pipelining, materialized views, cost analyses of operations
- Query optimization: pushing down selects, projects, join ordering
- Transaction processing: transaction states, conflicts, serializability, 2-phase locking, logging, ARIES, etc.
Course Structure:
Lectures, exams, programming assignments, office hours, and some extra credit assignments. Students may form teams of up to three people to do the programming assignment.
Each session is 2 hours and 40 minutes long. We will break up the class in two parts, with a break in between.
Workload:
Two programming assignments, worth about ~65% (=30%+35%) of your grade and three exams worth ~35% or your grade (=10%+10%+15%). Each project deadline and exam will be spaced evenly apart. The final exam will be held on the final exam day of this class. I expect all students to do all projects and take all exams on time. There will also be opportunities to do extra credit projects. I look kindly upon students who are active in the class.
Policies:
Plagiarism will result in an automatic failure in the course. In group projects, all students in the group will receive the same grade, so pick your group partners carefully. All code should be original unless otherwise stated.
Late policy is 5 points per day, for a maximum of one week. If you have any problems following this policy, you must notify me in advance. If you need extensions for some deadline, you have a better chance of leniency if you notify me in advance.
Feel free to demo projects before they are due (during office hours) to get a sense of what I expect. By demoing before the due date, you can know exactly what you will get during the actual demo for a grade.
Grading will primarily be based on five numbers: three exams and two. The exam grades are curved, such that the average grade is a B and one standard deviation above/below the average is an A/C. The programming assignments are not curved, so an A is 85% and B is 75% and so forth. Based on these grades, all students should know how well they are doing in the class. Because there are so many grades, no single grade should kill you, and I should get a good sense of your progress. Note that I am strict, but, I believe, fair.
Course Scheduling must be done such that you DO NOT schedule another class that takes place at the same time as this one. You will not be given a release from your class duties due to a course conflict.
Finally: Enjoy the class. Participate. Ask questions. Be prepared to work and learn. Come to office hours. Talking won't hurt your grade (it might even help) and makes the class more fun to attend and teach.
Course Materials:
I will prepare an electronic blackboard (blackboard.iit.edu) for class
announcements and lecture materials. All information on the blackboard supersedes anything else you read elsewhere. Read it! The course Web page will also be a repository for information.
I am preparing slides for the course, which I will post on the Blackboard system under Course Documents.
Important Dates:
First day of class: June 3
Exam 1: June 19
Project 1: June 5 - July 7
Project 2: July 3 - July 23
Exam 2: July 10
Exam 3 (final): July 24
Last day of class: July 24
Project Information:
Projects are due by 11:59pm of the due date. The late penalty will be assessed every 24 hours.
Project topics will be announced on the Blackboard.
Extra:
There will be occasional opportunities to perform extra credit. I will let you know in class. Extra credit assignments, to be sure, are designed to give more motivated students an opportunity to learn more, under supervision. They will not
dramatically change your grade, if at all (you won't go from being a C student to an A student). They may help if you are borderline, though.
More Info:
For a hint at what this class will be like, see my Autumn, 2006 Web page.