CS 525 - Advanced Database Organization, Sections 1, 251
Autumn, 2008
Instructor: Wai Gen Yee (yee@iit)
Time: 11:25 - 12:40pm, Tuesdays and Thursdays
Location: Wishnick 115
Office hours: Tuesdays 12:40-1:50, Wednesdays, 11:25-12:40 or by appointment in SB226c
TA: Linh Nguyen (nguylin@iit), Office hours: Tuesdays: 9-11
Class Web page: www.ir.iit.edu/~waigen/classes/cs525aut08
|
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 75 minutes long.
Workload:
Three programming assignments, worth about ~60% (15%+20%+25%) of your grade and four exams worth ~40% or your grade (=7%+10%+10%+13%). Each project deadline and exam will be spaced evenly apart. The final exam will be held on the final exam day of this class as specified by the registrar. 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. 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 six numbers: three exams and two or three projects. 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. 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.
Important Dates:
Miscellaneous Dates
First day of class - August 21
No class - October 16, 28, 30, November 27
Last day of class - December 4
Projects
Project 1 - August 26 - September 19
Project 2 - September 23 - October 31
Project 3 - November 4 - December 5
Exams
Exam 1 - September 9
Exam 2 - September 30
Exam 3 - November 4
Final - December 8, 10:30-12:30
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.