Syllabus (Spring 2017)

Course Description

Storage of and access to physical databases including indexing, hashing, and range accesses. Relational data models, database design principles, query languages, query optimization, transaction processing and recovery techniques. Object-oriented and distributed databases.


There will be 100 points distributed thoughout the course via homeworks, exam and projects. There will be no extra credit points.

Points GPA
90-100 4.0
85-90 3.5
80-85 3.0
75-80 2.5
70-75 2.0
60-70 1.0
0-60 0.0


There will be at least 12 weekly homeworks (through HackerRank). The homeworks are intended to be straightforward if you have done the projects and done the lectures. Only your top 10 homework scores will count toward your final grade; all others will be dropped. The counted scores will each be worth 2 points for a total of 20% of your final grade. Homeworks are always due the Thursday after they are assigned at 10pm. Not submitting your homework on time will result in zero points for that assignment.


The exam will occur approximately 2/3 of the way through the semester (see the Schedule) and will cover all of the material to that point. It will be worth 30 points (30% of your final grade). We will hand out a sample exam at least one week before the actual exam that will closely resemble it so that you know exactly what to expect. There will be no final exam.


There will be six projects over the course of the semester, each contributing in total 50 points (50%) to your final grade. Project durations range between 9 days and two weeks, and will be due at 10pm at the end of the due date. Make sure that you turn in projects on time because each will build on the previous, so if you're late on one it make completing the next more difficult.

All projects should be implemented in Python and we strongly recommend that you refresh your Python knowledge if you haven't used the language recently. We will compile and test your programs on a CSE Linux machine, such as arctic or adriatic, using the autograder we provide you. We also strongly recommend using Travis-CI to confirm correct project submission to GitHub. However, we may add additional test cases to ensure the robustness of your projects.

All of your files must be stored in a git repository provided by the instructor. We recommend you check in your code regularly, to track your progress and have backups. If, in the end, you have a problem and can't turn in a working program on time, we will have a lot more sympathy for you if we can see that you started early, and did not just fail to give yourself enough time.

Late Project Turn In

If, however, you do hand in a project late, you will lose one point (of the 10 points it is worth) per day. No project will be accepted more than four days late so that solutions can be made available.

Example late grade: A project was due on Monday at 10pm. You manage to finish the project with a score of 9 points on Wednesday at 11pm. The project is 3 days late. You grade would be 6 of 10 points.

Projects Late Day Grace

Every one will be given 2 late days grace to be applied at the end of the semester. What this means is: if you are two days late on one project, or one day late on two seperate projects, you will get 2 points refunded to you.


Those who participate in class provide us with another source of information as to how well they are learning the material, and how much effort they are putting into the course. We can use this information to help counterbalance a difficulty with exams or projects. Let's have an active class! Class participation will never harm your grade; always ask any questions you may have about the material. We strongly encourage students to ask and answer each others questions on Piazza. Although there aren't points associated with participation in this class, providing helpful answers on Piazza or giving constructive criticism on the class can improve your grade. Once initial grades are assigned, participation can boost grades up one step (that is, one-half letter grade or 0.5 on a 4-point scale). If your grade is borderline, we may consider your participation to sway our decision to your advantage.

The Spartan Code of Honor Academic Pledge

As a Spartan, I will strive to uphold values of the highest ethical standard. I will practice honesty in my work, foster honesty in my peers, and take pride in knowing that honor in ownership is worth more than grades. I will carry these values beyond my time as a student at Michigan State University, continuing the endeavor to build personal integrity in all that I do.‚Äč

Collaboration On Coding Assignments

Plagiarism (unsourced use of other's intellectual property) is not allowed under any circumstances. However, citing and using other's works is generally fine (please ask if uncertain) as long as the material wasn't made specificly for solving assignments for this class. Additionally the use of material from previous semesters and code from other students in the class are instances of academic dishonesty. Intellectual collaboration with other students in the class is allowed, but each student should write (and not share) their own code. If a student submits code that they didn't write and/or don't understand, such is also an act of academic dishonesty.

Academic Dishonesty

Because a goal of this course is to teach professionalism, any academic dishonesty will be viewed as evidence that this goal has not been achieved, and will be grounds for receiving a final grade of 0.0. Examples of academic dishonesty include (but are not limited to):

  • Copying another student's code or exam answers
  • Using code implemented by someone else for the goals of this project (i.e., don't get someone else to do your project for you!)
  • Using code independently implemented by someone else without attributing credit (i.e., you can use tools, libraries, or code snippets from the web, but tell me!)
  • Providing false information to the instructor about matters related to the course
  • Facilitating another student in any of these activities

See Cases of Academic Dishonesty for some examples of student infractions.

Grief Absence Policy

If their occur unfortunate circumstances that would lead you to have unexpected absences, MSU has a Grief Absence Policy. You need to contact the Associate Dean, and we will make every effort to aid you in continuing the class after we recieve confirmation from the administration.

Incomplete Grades

According to the university, the grade of "incomplete" is reserved for "exceptional cases, where an unanticipated event beyond one's control interferes with a student's completion of course requirements."


Requests for regrading can go in either direction; we are often generous when we first grade something, so please be sure that we did make a mistake before you submit your request. On the other hand, our goal is for you to understand the course material, so we will always be willing to explain to you any portion that you are stuck on. All requests for regrades must come within one week of the return of the graded item. Thereafter, no requests will be considered, so be sure to pick up your returned assignments on time.

Resource Center for Persons with Disabilities

Michigan State University is committed to providing equal opprotunity for participation in all programs, services and activities. Requests for acommodations by persons with disabilities may be made by contacting the Resource Center for Persons with Disabilities at 517-884-RCPD. Once your eligibility for an accommodation has been determined, you will be issued a verified individual services accommodation ("VISA") form. Please present this form to me at the start of the term and/or two weeks prior to the accommodation date (exam, project, etc.). Requests received after this date will be honored whenever possible.

General Note

The goal of this class is for you to learn. If you find that anything is coming in your way of that goal, please talk with us about it. We plan to keep the class flexible to the learning styles that seem to work best for the students, so feedback is always appreciated.