EECS 484: Overview

EECS 484: Database Management Systems, Winter 2011

Overview

Projects

Schedule/Notes

Announcements

 

Course Description

EECS 484 provides basic introduction to relational database management systems (DBMSs). The course includes two modules: It is possible to enroll in just one of these two modules. (Both modules are listed as sections of EECS 498: Special Topics.)

IMPORTANT: Please note that you are NOT ALLOWED to receive credit for both 484 and either of the sub-modules (498s).

Teaching Staff and Office Hours

Instructor: Kristen LeFevre, klefevre [AT] umich.edu
Office Hours: Monday, 1-3 PM in Room 4705 CSE

GSI: Heedo Kim, heedokim [AT] umich.edu
Office Hours: Wednesday 1:30-3 and Thursday 1:30-3 in Room 1637 CSE

GSI: Dhineshkumar Muthu, dhinesh [AT] umich.edu
Office Hours: Tuesday 5:30-7 and Wednesday 12-1:30 in Room 1637 CSE

Lecture Time and Place

Lectures: MW 10:30 - 12:00, 1610 IOE.
Discussion Section 011: F 10:30-11:30, 1005 Dow (Dhineshkumar Muthu)
Discussion Section 012: F 12:30-1:30, 1005 Dow (Heedo Kim)
You must plan on attending all discussion sessions.

Textbook

Database Management Systems (3rd edition) - by Raghu Ramakrishnan and Johannes Gehrke, McGraw Hill, 2003, ISBN: 0-07-115110-9. The book has a supporting website, where you can find answers to odd-numbered exercises.

Prerequesites

(Module 1 Only) EECS 203 and (EECS 280 or 282), or approved mathematical background and programming experience
(Module 2, Full Course) EECS 281: Data Structures and Algorithms (or approved equivalent)
WARNING: Both modules are programming-intensive. The first module requires basic Java programming. (If you already know C++ or Python, you should be able to pick up the necessary Java. If you are not sure whether you have sufficient programming background, please see the instructor.) The second module requires extensive programming in C++. You should not enroll in module 2 unless you are already comfortable with C++.

Resources

CTools

We will use CTools for project distribution and submission. Please try logging in during the first week of class. If you have problems, please talk to the GSI ASAP. (Not being able to log into CTools is not an excuse for late projects!)

Phorum

We will use the Phorum for Q&A regarding class material and assignments. This should be your preferred method of electronic communication with the course staff (as opposed to direct e-mail) because it allows all students to benefit from your question. Of course, you should not post solutions or code! We will do our best to respond to questions posted here within 48 hours. The best way to have your questions answered quickly is to use office hours and the discussion session. You need to log into the system using your UM Kerberos ID. Please contact the GSI if you have trouble accessing your account.

Oracle Accounts

The first two programming projects require you to use an Oracle database. Each student will receive an Oracle account from CAEN during the first few weeks of class. (CAEN will send you information about this directly.)

Course Requirements and Grading

Module 1 Exam: February 23 (In class) 25%
Module 2 Exam: April 27, 4-6 PM
Last Names A-H (1010 DOW)
Last Names I-Z (1610 IOE)
25%
Module 1 Programming Projects (1-2): Over the course of two projects, you will design a (logical and physical) database schema, and develop a simple application (using Java, SQL, and JDBC) to interact with the database. You should plan on spending 1-2 weeks picking up the needed Java for the assignment. Learning the basics of Java should not be difficult if you are already familiar with C++.11% each
Module 2 Programming Projects (3-4): The second set of projects involves building two components of a simple relational database engine, Minirel2K. We will provide you a skeleton framework of this database engine, and in a sequence of two assignments you will fill up this framework to build components of a simple database engine.11% each
Written Homework: To make sure that you are keeping up with lecture material, there will be a total of four written homeworks. You may discuss the homeworks with other students, but you must write up the solution on your own. Each homework will be given a score of 2 (complete and mostly correct), 1 (more than half complete and correct), or 0 (no homework submitted, or poor effort). We will not return graded homeworks, but we will post a sample solution for each assignment. Please be advised that written homework assignments are excellent preparation for exams! 6% Total
If you are enrolled in just one module, then the percentages pertaining to that module are doubled.

Projects, Partners, and Deadlines

There are four programming projects in this course. For each of the projects, you have the option of working with a partner. If you choose to work with a partner, both students will receive the same grade on the project. There is usually a Phorum thread of students looking for partners during the first week of class.

All programming projects must be turned in by 10:30am on the due date, and all written homeworks must be turned in at your assigned discussion section. You have two free late days for each programming project. This means that if the project is due at 10:30am on Wednesday, you may turn it in any time before 10:30am on Friday without penalty. Projects will not be accepted more that two days beyond the deadline. You may NOT carry over late days from one project to the next. Late written homeworks will not be accepted.

Honor Code

All students (including LS&A and Engineering) are required to observe the Engineering Honor Code in all assignments and exams. A copy of the honor code can be found here. Please make sure that you clearly understand what constitutes cheating. If you are not sure in any specific case, you should ask the teaching staff. The University takes honor code violations seriously, and penalties can be severe.

Disabilities

Students with disabilities that are documented with the Services for Students with Disabilities (SSWD) Office must contact the professor during the first two weeks of class to make appropriate arrangements.