Fall 2021 — Syllabus

Lecture sections

(All times throughout this syllabus are U.S. Eastern Time)

Both sections will be taught – using the same content, homework assignments, project, and exams. Please attend the section that you are registered for. The mode of instruction will be in-person, synchronous.


Contact information

Instructors:

Instructors' office hours will be held online, using Discord or Zoom.

Teaching Assistants:
Office hours link (top menu of this page) and also on the Collab "Home" tab.

There will also be specific TAs serving as points-of-contact for various aspects of the course (e.g. Homework grading, Discord help, Activities, etc). If you have a question about any of these things, be sure to contact the right point-of-contact. This will facilitate getting your question answered in a more efficient way.


Course description

What's the course all about?

Databases are the heart of any data driven software application. Commercial websites (such as Google, Yahoo, and Amazon), hospitals, universities have databases behind the scenes serving up the information users request. Public and private sectors maintain all their important records in databases. To serve data to the applications in the most efficient manner possible, databases must be designed properly.

This course introduces the fundamental concepts for design and development of database systems. Topics include relational data model and conceptual schema design using ER model, practical issues in commercial database systems, database design using functional dependencies, data indexing, transactions and concurrency control, query cost estimation, and database programming.

The course will focus on five main concepts:
  • Database Design — design philosophies such as E-R and normal forms for databases
  • Query Languages — SQL and relational algebra
  • Database system Implementation — the basics of data storage, indexing, and transaction processing
  • Database Interfacing — database programming
  • Database Types — while the majority of the semester will focus on centralized relational databases, an introduction to distributed database and NoSQL databases will be covered

Over the semester, you will work on a database-related system. You will be able to choose what to build, with the project constraining the features that must be used. You will host your database on Google Cloud Platform** or a database server of your choice. If you choose to develop a web-based project, you will host your web application on Google Cloud App Engine or a web server of your choice. By the end of the semester, you will have designed a working relational database and developed a realistic application. With a large portion of the process that involves teamwork, interpersonal skills and conflict management, and time management, this course will help you practice and prepare for your professional development.


Learning Objectives

  • Demonstrate an understanding of database design techniques by designing appropriate database tables using functional dependencies and normal forms
  • Use Relational Algebra to express database queries
  • Use SQL to interact with database management systems
  • Develop a database as a service and implement a software using database interfacing technologies
  • Collaborate with your project partners professionally and contribute fairly
  • Evaluate your project for compliance with requirements and specifications
  • Understand the differences and similarities between relational databases (centralized and distributed) and NoSQL databases and when it is best to use each one

Prerequisite

You must have passed CS 2150 (Program and Data Representation) or CS 2501 topic DSA2 with a grade of C- or better, or COVID CR grade.

Please note: the CS student services staff will monitor and remove students not meeting prerequisites in courses in which they are enrolled.

Additionally, you should meet the following requirements to take this course:

  • Have prior knowledge on software development or web development
  • Have good programming skills. Feel confident with at least one programming language
  • Have good knowledge of data structures, and algorithms
  • Have the ability to pace yourself on a semester-long project
  • Have the ability to work independently as well as in a team

This course focuses on the database concepts and you are expected to demonstrate your competency through the course project. You are expected to have prior knowledge on software development or web development, and programming skills needed to complete your project. Depending on whether you choose to develop a web-based project or a non web-based project, you are expected to be familiar with the programming language(s) of your choice or learn the language(s) on your own.

While you are required to have programming experience and knowledge of data representation, we are aware that you come in with varied programming experience. You will be guided through the fundamental concepts of database interfacing. You will also have the opportunity to explore technologies in database programming.

Please contact your instructor immediately if you have any concerns.


Textbook

image showing the Database System Concepts textbook cover page
[recommended]   Database System Concepts, Abraham Silberschatz, Henry F. Korth, S. Sudarshan, 7th Edition, McGraw-Hill / ISBN 978-0078022159

In addition to the recommended book, the UVA library has the following books that you might find useful if you require another explanation of a topic

  • Database Illuminated, Catherine M. Ricardo and Susan D. Urban, 3rd Edition, Jones & Bartlett Learning, [EBook]

You do not have to purchase any textbook for this course, unless you want to (the book information will be provided on the handout). Where appropriate, additional references that can be relevant for further reading will be provided on the Schedule page.

You are expected to read the relevant material before class meeting. Doing so will allow you to ask specific questions in class that will further your understanding of the material and also better prepare you for class activities. The schedule for the readings is given on the Schedule page. The lectures may not cover everything in the readings and will often include material not found in the readings (based on class discussion).


Masking

  • Masks are required in class for the duration of the class meeting
  • No eating or drinking in the classrooms
  • If you forget your mask:
    • We may have a limited number of disposable masks.
    • You are welcome to watch the recording outside of the classroom.

Class will be recorded. The recordings will be available under Class Recordings in Collab.

If you feel unwell:
  • Please stay home and watch the class recordings
  • We will happily work with you – if you stay home – to make sure there is no impact on your grade.

If you have any questions or concerns relating to masking please make a post on Piazza. If your question or concern is sensitive or personal, please email your instructor directly.

Note: During the semester, our plan may change depending on the University's policies. We will formally announce if changes or updates must be made. When possible, we will discuss and decide on a contingency plan; we will get through this together.


Waiting list

For Fall 2021, to reduce the probability of exposure to the COVID virus and variants, we need to strictly limit the enrollments in our sections. Therefore, the enrollments are limited to 130 in each section. Students will be granted permission to enroll in the course based on their position on the waiting list (on SIS).

If you are on the waiting list, please:
  • Do not come to class until you are officially enrolled in the course (we will work on it with space constraints)
  • We will add all students onto Collab (including those on the waiting list). This will allow everyone to watch the recorded videos of our live sessions.
  • Students on the waiting list will be removed from Collab after the Add deadline.

Learning activities

To facilitate your learning process, the course structure consists of five main activities: hands-on activities, practice-of-the-days, homework assignments, a semester project, and exams.

Lecture content: All lectures will be recorded and will be available in Collab/Class recordings.

1. Hands-on activities

These hands-on activities scattered throughout the course serve as the main driver of your learning success. These activities help you to (i) understand the underlying concepts of database systems and apply them to design and implement databases, (ii) get started with specific theories and technologies, (iii) get ready to work on homework assignments and the project, (iv) prepare for the exams, and (v) practice skills database engineers need (such as technical skills, collaboration, and communication). Each activity is designed to get you to think about some specific aspect of the material we are learning that day. It helps you to develop competency in basic and advanced concepts.

You are encouraged to work in small groups, allowing peer learning and imitating industrial software development scenarios. We will do hands-on activities almost every class meeting.

Remember, your engagement and participation is the most important aspect of your learning experience. If you fall behind for any reason, you should do your best to do the posted activity on your own to learn the material.

These activities will not be graded. Although no submission is required, you are encouraged to do all the activities.

2. Practice-of-the-days (POTDs)

Practice-of-the-days, or POTDs, help you to (i) refine your thoughts and reinforce the concepts, (ii) assess your understanding of the concepts in recent classes, (iii) get ready to work on homework assignments and the course project, (iv) prepare for the exams, and (v) practice skills database engineers need (such as technical skills, collaboration, and communication). POTDs help you develop competency in basic and advanced concepts. It also gives me an opportunity to work with you on particular topics or skills that can be improved.

Most POTDs will be done in small groups, and some may be individual exercises. No late POTDs will be accepted. If you fall behind or miss class for any reason, you should do your best to do the posted POTD on your own to learn the material.

You will submit your POTDs electronically via Assignments on UVa Collab. These POTDs will be graded on a completion basis. Full credit can only be received if it is complete and submitted by the due date mentioned on the POTD assignment (usually the day after they are opened). A score of zero (0) will be given only if the POTD was not submitted (empty submission), or if your submission does not demonstrate effort was made towards completing the POTD.

3. Homework assignments

Homework assignments are the main mechanism to help you learn the fundamentals of database systems and database programming. Some homework assignments will be written and some will require programming. Most will allow collaboration to help you practice team working skills. The maximum limit will be 3 students.

There will be approximately five homework assignments during the course of the semester, and they will be posted on the class website and made available on Collab. Specific grading criteria and the collaboration policy will be provided with each assignment. Any misrepresentation of the work of others as your own work will be considered plagiarism and will be handled according to the University procedures on academic misconduct. If you consult with any outside source (including and especially other classmates), you must clearly cite/reference each and every source that you consult and you must answer each question in your own words. We expect you to demonstrate a high level of professionalism and adhere to the UVA Honor Code.

No late assignments will be accepted, except under extreme circumstances. Should such circumstances arise, bring this to the attention of the instructor as soon as possible.

You are expected to have a backup disk (or storage somewhere) for every assignment you turn in. In this way, if there is any problem with the copy that is handed in, the backup can be used for grading purposes.

You will submit your Homework assignments electronically via Assignments on UVa Collab. These Homework assignments will be graded using a rubric, and therefore a score from zero (0) to full credit will be given.

Because each homework assignment helps you master the database system concepts, it is important that you manage your time wisely. All homework assignments must be submitted by 10:00am ET on the date they are due. Any submission received after this time will not be accepted.

4. Project

A project will provide you the opportunity to explore and experience database design and programming in practice. You will collaborate with two or three other students in this course (the maximum group size is four). During the course of the semester, you are expected to complete a project involving the creation of a database-related system.

The project will entail the design of a database, with all accompanying evidence of its good design, along with a front-end and back-end components that will interact with the database to provide common functionalities such as record inserting, updating, deleting, browsing, and searching and filtering. The project must be complex enough so that it is not a trivial exercise, but cannot be so complex as to take longer than two months of effort.

You may choose to implement your project in one of the two ways:

  • Option 1: as a web-based project — you will be provided with MySQL database server and PHP enabled web space
  • Option 2: as a non web-based project — you may host your project locally (i.e., on your machine)

As part of the project all students are required to present their project.

To help you keep track of your progress, a project consists of several milestones. Some milestones will be written and some will require programming. Because each project milestone is a step toward your final deliverable and your professional development, it is important that you manage your time wisely. Due dates are specified on the Schedule and project description pages. No late submission will be accepted.

You are expected to have a backup disk (or storage somewhere) for every project milestone you turn in. In this way, if there is any problem with the copy that is handed in the backup can be used for grading purposes.

The UVA Honor Code is in effect: please refer to the collaboration and Professionalism sections of the course policies.

5. Exams

There will be two exams during the course of the semester: Exam1 and Exam2. The first exam will test material from the first part of the semester. The second exam will test material from both halves of the semester – the coverage will approximately be 1/3 on the first half of the semester, and 2/3 on the second half. As with most scientific disciplines, later material often builds upon earlier material so answering some of the later questions relies on understanding foundational and earlier material. Both exams will be administered online. The exams will be open-book, open-notes, open-web, but NOT open neighbor(s). Absolutely no collaboration of any kind is permitted on these two exams. More details will be provided on the exam guidelines.

If you know in advance that you are unable to make an exam for a valid and unavoidable reason (such as a scheduled surgery, etc), you must notify us at least one week before the scheduled exam date to make arrangements for a make-up. Appropriate documentation (as determined by instructor) and requisite permissions (approved by the Dean's Office, in particular) are required for make-up exam requests. If you miss an exam due to a university-accepted excused absence, you must notify us as soon as possible (at least one week before, but no less than within 24 hours of your absence) to make arrangements for a make-up, and submit approved documentation. Failure to follow either of these policies will result in a zero grade on the exam.


Assessment

Assessment and evaluation

The grade you will earn for this course will be based on how well you demonstrate your understanding. Your overall score will be mapped to a letter grade as follows.

You getIf you score
A+ >= 98
A   >= 93
A-  >= 90
B+ >= 87
B   >= 83
B-  >= 80
C+ >= 77
C   >= 73
C-  >= 70
D+ >= 67
D   >= 63
D-  >= 60
F    < 60

Students enrolled in pass/fail require a 65.0 or higher to pass.

By default, grades will not be rounded or curved in this course.

Grading concerns and appeals — All regrade requests must be made within one week of the graded work being returned to the student. To submit a regrade request, please make a private post on Piazza, tagged all instructors. See Policies for more details.

Cheating/Plagiarism/Professionalism Penalty — up to 100% penalty
Inappropriate behavior toward course staff (instructor and TAs) or classmates, unauthorized homework assistance, contacting TAs when they are not on the clock, etc., can result in a penalty up to and including a failing grade in the course. This is independent of, and in addition to, the operations of the Honor Code.


Class platforms

UVa Collab

In addition to the course website, our Collab site will be the central hub for all course material/resources, videos, assignments, scoring, announcements and other pertinent information. There you will find this syllabus and the schedule of lecture topics that include the readings.

Discord

To foster a sense of community in the course, we have set up a Discord server. Engagement with the course staff, for example Professors and TA office hours, will be facilitated using our server. Once you form a project group, each group will be given their own Discord channel within our server where you can discuss your project, or work on homework assignments (your project group can double as your homework group, if you wish). You may also use it as a place to chat with your classmates, and post a fun (appropriate) meme!

Note: Do NOT discuss grade information on Discord. Do NOT post code (e.g. RA or SQL) or solutions to Discord channels.

If you have questions related to the course material, please post on Piazza (see next section) instead! Additionally, If you are uncomfortable using Discord, please let us know and we will make other arrangements.

Piazza

Official question-and-answer discussion will occur on Piazza, This is the best place to get homework help and clarification on course concepts and policies. While you're waiting for an answer, see if there is an answer you can provide to someone else's question. Computer Science is a team sport -- we're all in this together!

Do NOT post code or solutions on a public thread in Piazza (only on private threads – that are only seen by course staff).

The quicker you begin asking questions on Piazza (rather than via emails), the quicker you'll benefit from the collective knowledge of your classmates, TAs and instructors.


Internet Connectivity Problems for Office Hours

It is typical that inclement weather can cause a disruption to the online office hours this semester. We are fully aware that inclement weather and even non-weather-related incidences and circumstances may occur that result in a loss of power, and therefore loss of Internet connectivity.

Student: – Even when there is not an inclement weather activity occurring, there are times when we lose power, and therefore Internet connectivity. If you lose Internet connectivity during an office hour session with your TA or instructor, please do not panic! Simply try to get back on Discord once your power/Internet Connectivity has been restored. You can always schedule a separate one-on-one online meeting with your instructor or TAs to continue the discussion if the meeting was interrupted and you were offline for an extended period of time. Simply make a private post on Piazza explaining that your power/Internet went out and request a one-on-one online meeting if you would like. You may make a private post, tag all instructors, and suggest some times that you are available; one of the course staff will try to match the time with yours.

Instructors: – As the instructors of the course, there may be a time when we lose power and Internet connectivity (due to inclement weather in our respective areas or for any other reason). We have lost power and Internet connectivity on a clear day for no apparent reason! We have taken measures to minimize this from happening, but inevitably it may occur. If we are conducting live office hours on Discord when this happens, we will do our best to call/text the TAs to let them know so they can not only let you know what is going on, but also take over office hours if they are able to. We will do everything we possibly can to get a message out to all of you as soon as we can.


Academic Integrity

The School of Engineering and Applied Science relies upon and cherishes its community of trust. We firmly endorse, uphold, and embrace the University’s Honor principle that students will not lie, cheat, or steal, nor shall they tolerate those who do. We recognize that even one honor infraction can destroy an exemplary reputation that has taken years to build. Acting in a manner consistent with the principles of honor will benefit every member of the community both while enrolled in the Engineering School and in the future.

Students are expected to be familiar with the university honor code, including the section on academic fraud. Each assignment will describe allowed collaborations, and deviations from these will be considered Honor violations. If you are in doubt regarding the requirements, please consult with me before you complete any requirement of this course. Unless otherwise noted, exams and individual assignments will be considered pledged that you have neither given nor received help. (Among other things, this means that you are not allowed to describe problems on an exam to a student who has not taken it yet. You are not allowed to show exam papers to another student or view another student’s exam papers while working on an exam.) Send, receiving or otherwise copying electronic files that are part of course assignments are not allowed collaborations (except for those explicitly allowed in assignment instructions).

Assignments or exams where honor infractions or prohibited collaborations occur will receive a zero grade for that entire assignment or exam, as well as a full letter-grade penalty on the course grade. Such infractions will also be submitted to the Honor Committee if that is appropriate. Students who have had prohibited collaborations may not be allowed to work with partners on remaining homeworks.


Special circumstances

The University of Virginia strives to provide accessibility to all students. If you require an accommodation to fully access this course, please contact the Student Disability Access Center (SDAC) at 434-243-5180 or sdac@virginia.edu. If you are unsure if you require an accommodation, or to learn more about their services, you may contact the SDAC at the number above or by visiting their website at https://www.studenthealth.virginia.edu/sdac.

If you have been identified as an SDAC student, please let the Center know you are taking this class. If you suspect you should be an SDAC student, please schedule an appointment with them for an evaluation.

For this course, we ask that students with special circumstances let us know as soon as possible, preferably during the first week of class. Students who need academic accommodations should see us and contact the SDAC. All academic accommodations must be arranged through the SDAC.


Religious Accommodations

It is the University's long-standing policy and practice to reasonably accommodate students so that they do not experience an adverse academic consequence when sincerely held religious beliefs or observances conflict with academic requirements.

Students who wish to request academic accommodation for a religious observance should submit their request in writing directly to their instructor by email as far in advance as possible. Students and instructors who have questions or concerns about academic accommodations for religious observance or religious beliefs may contact the University's Office for Equal Opportunity and Civil Rights (EOCR) at UVAEOCR@virginia.edu or 434-924-3200.

Accommodations do not relieve you of the responsibility for completion of any part of the coursework missed as the result of a religious observance.


Safe environment

The University of Virginia is dedicated to providing a safe and equitable learning environment for all students. To that end, it is vital that you know two values that I and the University hold as critically important:

  1. Power-based personal violence will not be tolerated.
  2. Everyone has a responsibility to do their part to maintain a safe community on Grounds.

If you or someone you know has been affected by power-based personal violence, more information can be found on the UVA Sexual Violence website that describes reporting options and resources available - https://eocr.virginia.edu/.

As your professor and as a person, know that I care about you and your well-being and stand ready to provide support and resources as I can. As a faculty member, I am a responsible employee, which means that I am required by University policy and federal law to report what you tell me to the University's Title IX Coordinator. The Title IX Coordinator's job is to ensure that the reporting student receives the resources and support that they need, while also reviewing the information presented to determine whether further action is necessary to ensure survivor safety and the safety of the University community. If you would rather keep this information confidential, there are Confidential Employees you can talk to on Grounds (See https://justreportit.virginia.edu/). The worst possible situation would be for you or your friend to remain silent when there are so many here willing and able to help.


Well-being

If you are feeling overwhelmed, stressed, or isolated, there are many individuals here who are ready and wanting to help. The Student Health Center offers Counseling and Psychological Services (CAPS) for all UVA students. Call 434-243-5150 (or 434-972-7004 for after hours and weekend crisis assistance) to get started and schedule an appointment. If you prefer to speak anonymously and confidentially over the phone, Madison House provides a HELP Line at any hour of any day: 434-295-8255.

If you or someone you know is struggling with gender, sexual, or domestic violence, there are many community and University of Virginia resources available. The Office of the Dean of Students, Sexual Assault Resource Agency (SARA), Shelter for Help in Emergency (SHE), and UVA Women's Center are ready and eager to help. Contact the Director of Sexual and Domestic Violence Services at 434-982-2774.


Top

Acknowledgments:
** This course is generously supported by Google by giving us access to their Cloud Platform.

Copyright © 2021 Nada Basit and Upsorn Praphamontripong

Released under the Creative Commons License CC-BY-NC-SA 4.0 license.

Last updated 2020-08-19 21:14