Time: Section I: TuTh 12-1:30 PM, Section II: TuTh 4:30-6 PM
Room number: Section I: 1013 DOW, Section II: Chrysler Auditorium
Lectures Dates: Jan 7, 2015-Apr 21, 2015
Office Hours: Wed 3:30-4:30 (subject to change), Room: BBB 4769
Instructor: Barzan Mozafari
GSI: Catherine Finegan-Dollak, Email: cfdollak [AT] umich.edu
GSI: Shravya Kuchikulla, Email: shravyak [AT] umich.edu
GSI: Yixing Jiang, Email: ethanjyx [AT] umich.edu
GSI: Qi Gao, Email: gaoq [AT] umich.edu
IA: Eugene Zhen Ye Goh, vanblaze [AT] umich.edu
Communication Protocol
Important Note: There are 300+ students enrolled in this course, and therefore you must strictly follow the following rules regarding any email communications with the instructors and other staff members of this class, or otherwise we will not be able to fulfill our instructional duties properly (simply due to the issues of scale):
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. The book is really useful, especially for exams. We follow the book pretty closely. In addition, we recommend the following informal reference: Self-paced courses on introduction to Databases by Jennifer Widom, Stanford University. There are several mini-courses at the above link and they are currently free. They are all very useful from a practical perspective and nicely complement the material that we cover in EECS 484.
EECS 281 or graduate standing. You should have the background from a data structures course (e.g., lists, hash tables, arrays, search trees) and strong programming experience. The projects are either in Java or C++ (thus, you need to be familiar with both).
EECS 484 provides a basic introduction to relational database management systems (DBMSs). This course is designed to provide you with both an external and an internal view of relational DBMSs. Topics related to the external view will allow you to use a relational DBMS. Whereas course projects will involve a specific commercial database (Oracle), the purpose of this course is not to learn the details of how to use any specific commercial database system, and we will minimize product-specific issues that you need to learn. If you are interested in the detailed operation of a specific commercial database system, you will be able to pick this up after you have taken this course. Topics related to the internal view have been selected to give you an understanding of the fundamental database concepts and implementation techniques that are used in relational database engines. Using the course project, you will actually build a few key components of a database engine. This course will allow you to better understand how a relational DBMS works, making you a more sophisticated database user. You will need the understanding provided by this course if you expect to be a decent database administrator, even if you have no plans to write code inside a database engine.
We will use CTools for several purposes in this course. Please try logging in during the first few days of class, and send e-mail to the IA if you encounter difficulty.
Discussion Forum: Please use http://piazza.com to post questions about class material and assignments. Register at the site, if you have not used piazza before, using your umich.edu ID (you can choose any password) and then look for EECS 484, W15 semester class. We will use Piazza for all online Q&A and for posting many of the announcements. We will assume that everyone has signed up.
Assignment Distribution: Each of the programming assignments and projects utilizes some source code provided by the instructor. We will be distributing this source code to you.
Assignment Submission: Finally, you will submit your assignments via CTools. To submit your assignment, please log into CTools and click on the "Assignment" tab. Follow the posted instructions carefully as any deviation from these instructions could cause your submission to fail our auto-grading scripts.
The programming assignments requires you to use Postgres or an Oracle accounts. We will provide instructions on obtaining the accounts in the discussions.
Exam 1: Feb 19, time: see Piazza and Ctools announcements. |
25% |
Exam 2: April 21, time: see Piazza and Ctools announcements. |
25% |
Projects: 4 programming assignments |
10% each |
Homeworks: 5 written assignments |
2% each |
The examinations are *not* cumulative. Each applies to one half of the EECS 484 course. In particular, the final exam covers material presented after the topics for Exam 1.
To get a C or higher, a passing performance is expected on both exams and projects. In general, this means that exams are also important - most students do pass the projects.
We would prefer you to work in teams of two for each programming assignment and homework, though you can work alone as well. If you work in a team, the collaboration model we recommend is pair programming. Read up on pair programming as to why it works well. Refer to the corresponding announcement on CTools to learn about our detaied policy on partners for homeworks and projects in EECS 484. All homeworks and projects are due on Thursdays. The deadlines and schedules are available at EECS 484 web site. For homeworks, there is no grace period (late homeworks are not graded and receive a zero). We recommend submitting a version several hours before 11:55 PM on the due date because it is easy to overlook the deadline, since it falls on a Thursday. For projects, there a 4-day late submission period in which a 10% late penalty will be incurred. Beyond that, you will get a zero. Submit anyway even if your project is not complete before the deadline. The effort may matter if you have a borderline grade. We will not make ANY exceptions to our late submission policy. Please do not contact any of the instructors asking extensions. Refer to the corresponding announcement on CTools for our detailed policy on multiple and/or late submissions.
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. See the honor code tab on ctools for some course-specific information. 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. You are not allowed to share your code with anyone other than your partner. You are not allowed to make use of code by others, including previous semesters, related to the assignments.
Students with disabilities that are documented with the Services for Students with Disabilities (SSWD) Office should contact the professor during the first three weeks of class to make appropriate arrangements.