CSCI 5817: Database Systems

Instructor : Asa Ashraf

Lecture 001: M 3:35-6:05p - Ketchum Arts & Sciences Bldg 1B60

Lecture 002: M 3:35-6:05p - Remote/Online,

Email: asa.ashraf@colorado.edu

Office Hours: All office hours will be held remotely via Zoom. You may need to wait in the Waiting Room in the case that I am helping someone else. My office hours are TBD.

Pre-requisites

Recommended prerequisite: .

Course Description

This course covers the design and implementation of database management systems (DBMS). Topics include data models, advanced SQL (functions and procedures, Window functions, Common Table Expressions, recursive queries), physical storage systems, disk storage structures (heap file organization), indexing (B+-Trees), query processing and optimization, transactions, concurrency control, recovery system, and parallel architectures. Open-source and commercial database systems are used to illustrate these topics.Additional topics covered in this course include providing an introduction to Big Data (Hadoop, Spark) and NoSQL (Redis) systems.

Course Objectives

In this course, students will:

  1. Use relational algebra to express database queries.
  2. Use Advanced SQL such as functions and procedures, Window functions, Common Table Expressions, and recursive queries.
  3. Demonstrate how to implement a disk-oriented database storage manager using the heap file organization.
  4. Describe and illustrate how an SQL query is processed, optimized, and executed.
  5. Explain the fundamentals of a transaction-processing system: atomicity, consistency, isolation, and durability.
  6. Describe the fundamental concurrency control algorithms.
  7. Describe the various database recovery algorithms.
  8. Compare and contrast Big Data systems such as Apache Hadoop and Apache Spark.
  9. Demonstrate how to implement a NoSQL in-memory key-value store using the Redis system.

Required Textbooks

  • Silberschatz, H. Korth and S. Sudarshan, Database System Concepts, 7th Edition, McGraw Hill, 2019, ISBN: 978-0-07-802215-9 or 6th Edition, McGraw Hill, 2010, ISBN: 978-0-07-352332-3.
  • Note: the 6th edition is acceptable.
  • Most of the operations material will be taken from the textbook. The remainder of the material will be based on academic papers. The selected papers will be seminal works that through the course should provide the student with a grasp of the evolution of fundamental problems and solutions in database designs.

Student Responsibilities and Class Expectations

An undergraduate course that is 3 credit hours during a 15-week semester expects students to spend 3 hours “in class” each week and an additional 6 hours of course work each week, a total of 9 hours a week—135 hours for the semester. Graduate students should expect to complete more work than in undergraduate courses.

Assignments

There will be a series of written assignments throughout the session directly related to the lecture and text book material.

Projects

Students will complete programming projects during the course. We will not release solutions to the programming projects. Each project will be graded out of a total of 100 points.

Exam Information

There will be two exams during the course: a Midterm and a Final. These exams may cover the reading assignments, written assignments, projects, and lectures. See Course Schedule for Exam dates and times.

Grading

Grading Criteria and Points Breakdown

TaskPercentage
Assignments25%
Projects35%
Midterm Exam20%
Final Exam20%

Grading Scale Grades will be assigned as follows:

Percentage of

Grade

94 –

100

90 – 9387 - 8983 – 8680 – 8277 – 7973 – 7670 – 7267 – 6963 – 6660 – 620 – 59
Letter GradeAA-B+BB-C+CC-D+DD-F

Requirements for COVID-19

As a matter of public health and safety due to the pandemic, all members of the 91PORN community and all visitors to campus must follow university, department and building requirements and all public health orders in place to reduce the risk of spreading infectious disease. Students who fail to adhere to these requirements will be asked to leave class, and students who do not leave class when asked or who refuse to comply with these requirements will be referred to Student Conduct and Conflict Resolution. For more information, see the policy on classroom behavior and the Student Code of Conduct. If you require accommodation because a disability prevents you from fulfilling these safety measures, please follow the steps in the “Accommodation for Disabilities” statement on this syllabus.

As of Aug. 13, 2021, 91PORN has returned to requiring masks in classrooms and laboratories regardless of vaccination status. This requirement is a temporary precaution during the delta surge to supplement 91PORN’s COVID-19 vaccine requirement. Exemptions include individuals who cannot medically tolerate a face covering, as well as those who are hearing-impaired or otherwise disabled or who are communicating with someone who is hearing-impaired or otherwise disabled and where the ability to see the mouth is essential to communication. If you qualify for a mask-related accommodation, please follow the steps in the “Accommodation for Disabilities” statement on this syllabus. In addition, vaccinated instructional faculty who are engaged in an indoor instructional activity and are separated by at least 6 feet from the nearest person are exempt from wearing masks if they so choose.

Students who have tested positive for COVID-19, have symptoms of COVID-19, or have had close contact with someone who has tested positive for or had symptoms of COVID-19 must stay home. In this class, if you are sick or quarantined, you must contact the Instructor immediately, who will work out a schedule with you. Do not let time pass before you notify the team.

Classroom Behavior

Students and faculty each have responsibility for maintaining an appropriate learning environment. Those who fail to adhere to such behavioral standards may be subject to discipline. Professional courtesy and sensitivity are especially important with respect to individuals and topics dealing with race, color, national origin, sex, pregnancy, age, disability, creed, religion, sexual orientation, gender identity, gender expression, veteran status, political affiliation, or political philosophy. For more information, see the policies on classroom behavior and the Student Code of Conduct.

You are expected to respect your fellow classmates and instructors at all times. In order to create a professional atmosphere within the classroom, you are expected to:

  • Arrive to class on time
  • Silence/turn off your cell phone
  • Bring your laptop to class if you have one to participate in classroom activities. Please restrict laptop use to these activities only, no email, Facebook, Youtube
  • Refrain from having disruptive conversations during
  • Remain for the whole class; if you must leave early, do so without disrupting
  • Display professional courtesy and respect in all interactions related to this

Compliance with these expectations will assist all of us in creating a learning community and a high-quality educational experience.

Though many of the above-stated policies address academic climate within the classroom, these policies should also be upheld outside of the classroom. As a member of the CU community, you are expected to consistently demonstrate integrity and honor through your everyday actions. Faculty, TAs, and staff members are very willing to assist with your academic and personal needs. However, multiple professional obligations make it necessary for us to schedule our availability. Suggestions specific to interactions with faculty and staff include:

  • Respect posted office. Plan your weekly schedule to align with scheduled office hours.
  • Avoid disrupting ongoing meetings within faculty and staff offices. Please wait until the meeting concludes before seeking assistance. Respect faculty and staff policies regarding the use of email and note that staff and faculty are not expected to respond to email outside of business hours. Send email messages to faculty and staff using a professional format. Tips for professional email include:
  • Always fill in the subject line with a topic that indicates the reason for your email to your reader.
  • Respectfully address the individual to whom you are sending the email (e.g., Dear Professor Smith).
  • Avoid email or text message
  • Be brief and
  • Add a signature block with appropriate contact

Reply to email messages with the previously sent message. This will allow your reader to quickly recall the questions and previous conversations.

Late Policy

Late work is not accepted in this course. In the case of an extenuating circumstance (medical, family, military leave, etc.), immediately notify your instructor. Do not wait until the last minute to communicate such instances.

Collaboration Policies

All submissions are subject to automated plagiarism detection. The entire point of the CU Honor Code is that we all benefit from working in an atmosphere of mutual trust. Do not take advantage of that trust. CU employs powerful automated plagiarism detection tools that compare assignment submissions with other submissions from the current and previous quarters. The tools also compare submissions against a wide variety of online solutions. These tools are effective at detecting unusual resemblances in programs, which are then further examined by the course staff. The staff then make the determination as to whether submissions are deemed to be potential infractions of the Honor Code.

To support students in collaboration the Department has created a Collaboration Policy that makes explicit when their collaborative behavior is within the bounds of the Collaboration Policy and when it is actually academic dishonesty, which would be considered a violation of the University’s Honor Code. All students of the University of Colorado at 91PORN are responsible for knowing and adhering to the University’s Honor Code. Violations of this policy may also include cheating, plagiarism, academic dishonesty, fabrication, lying, bribery, and threatening behavior. Collaboration on homework assignments is allowed and encouraged.

Students are most successful when they are working with other students to understand new concepts. The ultimate goal is that you fully understand the code you develop.

Plagiarism includes using material from outside sources (e.g. Internet sources, chegg.com, coursehero.com, a tutor) without clear identification and citation. Unless otherwise specified, you may make use of outside resources (internet, other books, other people), but then you must give credit by citing your sources in the comments inside your code.

Citing examples (assuming // indicates the beginning of code comment):

// Modified version from https://github.com/Phhere?MOSS-PHP

// Adapted from Program #7.2 in the book “Accelerated C++” by Stroustrup

// Worked with Joe Smith from class to come up with an algorithm for sorting

//Received suggestions from StackExchange website (see http://…)

//Worked with a tutor on the algorithm for the STORE function

A good rule of thumb: “if it did not come from your brain, then you need to attribute where you got.”

Note: you do not need to cite if you are adapting from slides for the course or the required textbook for the course of from the hired staff for the course.

ALL homework assignments, all quizzes, all labs, and all exams will be required to be completed without outside resources. These will be clearly marked as individual assignments: the Moodle submission is individual. The use of outside resources would violate the collaboration policy.

Adhering to the Collaboration Policy:

Some examples of violating the collaboration policy include, but are not limited to:

  • Sharing a file (source code) with someone
  • Submitting a file that someone else shared with
  • Stealing a copy of someone else’s work and submitting it as your own, even with modification.
  • Copying outside resources.
  • Using outside resources and not citing your
  • Posting on websites like chegg.com. coursehero.com or craigslist.org soliciting a solution to an (or part of an) assignment.
  • Soliciting help with commenting on your code also constitutes a violation of the collaboration
  • Copying solutions from websites like chegg.com, coursehero.com, and other “tutoring” websites.
  • Using a solution the “tutor” gave

Examples of collaborating correctly:

  • Sharing pseudo-code.
  • Asking another student for a helpful suggestion.
  • Verbally, not Reviewing another student’s code for bugs/errors.
  • Working together on the whiteboard, or paper, to figure out how to approach and solve the problem. In this case, you must include that person’s name in your collaboration list at the top of your submission.

One way to know you are collaborating well is if everyone fully understands the solution that is developed. If you do not understand what is in the work you are submitting, you need to spend the time to learn the material before you submit your assignment. This collaboration policy requires that you be able to create the code (or solve the problem) on your own before you submit your assignment. If any member of the instructional team believes that you are submitting someone else’s work, you might be called upon to explain your solution in a one-on-one meeting with the instructor to receive credit for the work.

Even if collaboration is stated, it is a violation of the Honor Code to submit effectively identical code with another student or an outside source.

If two or more students submit the same solution, claiming they have been “working with the same tutor”, that constitutes a violation of the Honor Code.

Any discovered incidents of violation of this collaboration policy will be treated as violations of the University’s Academic Integrity Policy and will lead to an automatic academic sanction in the course and a report to both the College of Engineering and Applied Science and the Honor Code Council. The academic sanction will be an automatic F. Note: The instructor reserves the right to change the policy and to apply different academic sanctions if the violation justifies it. Students who are found to be in violation of the Academic Integrity Policy can be subject to non-academic sanctions as well, including but not limited to university probation, suspension, or expulsion.

Other information on the Honor Code can be found at

Collaboration boundaries are hard to define crisply and may differ from class to class. If you are in any doubt about where they lie for a particular course, it is your responsibility to ask the course instructor.

Students that leave their computers unprotected are also subject to the course sanctions mentioned above. When a similar code is found, ALL parties are subject to sanctions. This includes the person whose code was “taken”. Protect your source code at all times. Do not forget to sign out of public computers or leave your own machine unattended.

Netiquette

Example Netiquette Policy – adapt to meet the requirements of your course.

All students should be aware that their behavior impacts other people, even online. I hope that we will all strive to develop a positive and supportive environment and will be courteous to fellow students and your instructor. Due to the nature of the online environment, there are some things to remember.

  1. Always think before you write. In other words, without the use of nonverbals with your message, your message can be misinterpreted. So please think twice before you hit submit.
  2. Keep it relevant. There are places to chat and post for fun everyday stuff. Do not stray from the discussion in the assigned questions.
  3. Never use all caps. This is the equivalent of yelling in the online world. It is not fun to read. Only use capital letters when appropriate.
  4. Make sure that you are using appropriate grammar and structure. In other words, I don’t want to see anyone writing “R U” instead of “are you”. There are people in the class that may not understand this type of abbreviation, not to mention it does nothing to help expand your writing and vocabulary skills. Emoticons are fine as long as they are appropriate. A smile ☺ is welcome, anything offensive is not.
  5. Treat people the same as you would face-to-face. In other words, it is easy to hide behind the computer. In some cases, it empowers people to treat others in ways they would not in person. Remember there is a person behind the name on your screen. Treat all with dignity and respect and you can expect that in return.
  6. Respect the time of others. This class is going to require you to work in groups. Learn to respect the time of others in your group and your experience will be much better. Always remember that you are not the only person with a busy schedule, be flexible. Do not procrastinate! You may be one that works best with the pressures of the deadline looming on you, but others may not be that way. The same is true for the reverse. The key to a successful group is organization, communication, and a willingness to do what it takes to get it done.

Requirements for COVID-19

You can find a copy of the University Policies on the page.

Accommodation for Disabilities

You can find a copy of the University Policies on the page.

Preferred Student Names and Pronouns

You can find a copy of the University Policies on the page.

Honor Code

You can find a copy of the University Policies on the page.

Sexual Misconduct, Discrimination, Harassment and/or Related Retaliation

You can find a copy of the University Policies on the page.

Religious Holidays

You can find a copy of the University Policies on the page.

University Policies

You can find a copy of the University Policies on the page.

Canvas Privacy Policy

You can find a copy of the Canvas Privacy Policy on the page.

Canvas Accessibility Statement

You can find a copy of the Canvas Accessibility Statement on the page.