Monday, Wednesday, Friday 12:00pm - 12:50pm EST, Olsson Hall 120 (This course will be held in person)
You are the main driver of your learning success. Your engagement and participation is the most important aspect of your learning experience. You are encouraged to do all the activities, try all concepts, experience everything introduced in this course, ... and do beyond the course's minimum requirements.
The best way to learn database systems is to do it, and do it often. To help you practice and maximize hands-on experience, we will do lab-style activities almost every class meeting. Although attendance is not required, you will have the best learning experience in the course if you are able to attend the meeting.
Keith Butler, Martin Crow, Parul Goswami, Prateek Gunnam, Parker Hutchinson, Addison Lowman, Bailey Phillips, Shriman Selvamani, Richard Wang, Claire Yoon
We have fantastic teaching assistants for this course. Get to know them! Our TAs are students too. Let them be students when they are not on the clocks as TAs. Please only contact TAs via Piazza or in person (or via Zoom) during their scheduled office hours, do not contact them via email.
Have you ever wondered how data is maintained in a database? How does a software application interact with the database? How does the software know where each user left off? How does the software know when your username and password are correct when you log in? How secure is your data? What can be done to make a database system cost less and run faster?
Databases are the heart of any data-driven software application. Commercial websites (such as Google, Yahoo, and Amazon), hospitals, and universities have databases behind the scenes serving up the information users request. The public and private sectors maintain all their data in databases. To serve data to the applications in the most efficient manner, appropriately designed databases are crucial.
This course introduces the fundamental concepts for the design and development of database systems.
The course will focus on five main concepts:
To facilitate your learning process, you will have opportunities to explore and experience every step in database design and implementation (refer to learning activities for more information). Everyone can be successful in this course. I hope that developing an understanding of the field of database systems will help you build confidence, get excited about exploring and designing good database systems, create effective queries that potentially lead to optimal solutions, develop practical software applications that utilize databases to provide services, and have a positive impact on your software-related profession.
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.
This course focuses on database concepts and bridging the gaps between theory and practice. You will demonstrate your competency through the course project. Thus, having the ability to pace yourself on a semester-long project is important. You should have prior knowledge of software development or web development, and the 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 should be familiar with the programming language(s) of your choice or learn the language(s) on your own.
While having programming experience and knowledge of data representation is necessary, I am aware that you come in with varied programming experience. This course will guide you through the fundamental concepts of database interfacing. You will also have the opportunity to explore technologies in database programming.
In addition to the recommended book, you might find the following book useful if you require another explanation of a topic
Where appropriate, additional references that can be relevant for further reading will be provided on the Schedule page.
You should 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 class meetings may not cover everything in the readings and will often include material not found in the readings (based on class discussion).
What you will do to succeed in learning? 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.
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.
We will do hands-on activities almost every class meeting. You are encouraged to work in small groups, allowing peer learning and imitating industrial software development scenarios.
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.
Hands-on activities will form the basis for POTDs, homework assignments, the course project, and the exams.
Five main purposes of this activity are to 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. This activity helps you to reinforce and assess your understanding of the concepts in recent classes. It also gives me an opportunity to work with you on any particular topics or skills that can be improved.
We will do POTDs on most Mondays, and some Wednesdays and Fridays. Most will be done in small groups and some will be individual exercises. You will submit your POTDs electronically. They will be graded on a completion basis. Full credit can only be received if it is complete and submitted by 12pm (noon) EST the next day. Any submission received after this time will be considered to be late. Details on submission guidelines will be provided on the POTD pages.
If you miss class, you should do the posted POTD on your own to learn the material.
POTDs will form the basis for homework assignments, the course project, and the exams.
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 4 students.
Assignments will be posted on the class website and discussed in class. You will submit your homework assignments electronically. Requirements, specific grading criteria, and details on submission guidelines will be provided on the assignment pages.
Because each homework helps you master the database system concepts, it is important that you manage your time wisely. All homework assignments must be submitted before class on the day they are due — this will also help you focus on the class discussion instead of being worried about the homework. Any submission received after this time will be considered to be late.
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.
Homework assignments will form the basis for the course project and the exams.
A project will provide you the opportunity to explore and experience database design and programming in practice. The project will entail the design of a database, with all accompanying evidence of its good design, along with 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.
You will collaborate with two or three other students in this course (the maximum group size is four). You will choose what to build, with the project constraining the features that must be used. 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:
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.
To help you keep track of your progress, the project consists of several milestones (see the Project page for more information). 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.
At the end of the semester, we will have a "Showtime." As part of the project, all students are required to present their projects. You will demonstrate how your system works, and explain your design decisions and features. You are encouraged to discuss your classmates' design and implementation. You may find something interesting from their systems. This is a great opportunity to share ideas and opinions; you may learn something useful for your future projects. The fun part is, we will vote for "the most practical project" and "the coolest project."
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.
Exam1 and Exam2 are closed book/notes/web, paper-based, administered in class, no collaboration. The only exception is a single sheet of 8 1/2 x 11 paper (single / double sided, your choice) with hand-written notes by the person taking the exam. Please refer to the exam guide on the Schedule page for more information.
Picture IDs are required to take all exams.
To request a make-up exam, please refer to the make-up exam policy.
1. Set aside time and space for your studies. Once you have selected that time and space, try to stick with your plan. Pick a comfortable spot, as much as possible, don’t use that time or place for anything else. 2. Make friends. Build our Database Systems community. When possible, form a study/work group for the class. 3. Attend class meeting. Attending class meeting will help to establish your routine, put you in the learning mindset, and remind you that you are learning in a community. 4. Everyone brings diverse experiences, backgrounds, and opinions. Let's learn, grow, and achieve our goals together.
Intending to tailor our class to better support and emphasize your differences, energy, and passions, as well as to enhance your strengths, you are encouraged to be involved in designing and shaping this course to maximize your learning experience, skills, and knowledge. Please feel free to share your ideas / opinions / suggestions on things that we should do or try to help you learn database systems, using the Help yourself learn form.
How will your learning be evaluated? 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 get||If you score|
By default, grades will not be rounded or curved in this course, and there is no grade bump.
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.
My current plan is to record synchronous lectures during the official meeting times and you will be able to catch up by viewing the recording. The recordings will be available under Panopto Video in UVa Canvas, accessible by Fall 2023 CS 4750 students and course staff. By default, the recordings will be made available within 24-48 hours after class. If the recordings are unavailable due to technical difficulty or any unavoidable reasons, I will happily work with you to make sure that you do not miss anything.
Note: If attendance drops, I may stop recording lectures; class recordings will not be available.
Per UVA policy on recording of class sessions, the University prohibits the recording of class sessions by students, regardless of purpose or modality. students are not allowed to record class sessions / meetings / discussions, regardless of purpose or modality. "the University prohibits the recording of class sessions by students, regardless of purpose or modality, unless written permission has been obtained from the instructor, and all students in the class as well as guest speakers have been informed that recording will occur. Instructors may revoke permission at any time, and permission to allow a recording is not a transfer of any copyrights in the recording."
We will use Piazza for a discussion board. In addition to in-person assistance, this is the place where you can seek help, offer help, share your thoughts and discoveries, or discuss technical difficulties and potential troubleshooting. Information for accessing our class Piazza site will be provided on the first day of class. Ask all technical questions about the material, the assignments, or the project on Piazza.
The sooner you begin asking questions on Piazza, the sooner you will benefit from the collective knowledge of your classmates, TAs and instructor.
Use Piazza — for questions related to course material, technical issues, and regrade requests.
Use email — for personal issues and emergencies.
Do not post code — any code at all — on a "public" thread in Piazza. Posting program source code publicly will usually be considered an honor code violation. If you need to include a "fragment" of your code in your post, please make your post "private" and tag instructor and all TAs.
Updates to the course will generally be noted on the Piazza page.
We will be using Gradescope for student submissions (POTDs, Homework Assignments, Project). If you have not used Gradescope before, you may find an introduction on how to use Gradescope video helpful. If you have any questions or encounter any issues, please post your questions or concerns in the course Piazza.
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.
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 firstname.lastname@example.org. 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 me know as soon as possible, preferably during the first week of class. Students who need academic accommodations should see me and contact the SDAC. All academic accommodations must be arranged through the SDAC.
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.
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:
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 instructor 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.
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.
There are many resources available to you when you experience academic or personal stresses. In addition to your instructor, the School of Engineering and Applied Science offers free tutoring, and has staff members located in Thornton Hall who you can contact to help manage academic or personal challenges. Please do not wait until the end of the semester to ask for help.
You may schedule time with the CAPS counselors through Student Health When scheduling, be sure to specify that you are an Engineering student. You are also urged to use TimelyCare for either scheduled or on-demand 24/7 mental health care.
The Center for Diversity in Engineering (CDE) is a student space dedicated to advocating for underrepresented groups in STEM. It exists to connect students with the academic, financial, health, and community resources they need to thrive both at UVA and in the world. The CDE includes an open study area, event space, and staff members on site. Through this space, we affirm and empower equitable participation toward intercultural fluency and provide the resources necessary for students to be successful during their academic journey and future careers.
** This course is generously supported by Google by giving us access to their Cloud Platform.
Thanks to Professor Nada Basit and Professor Mary Smith for the input and material provided for this course; Professor Lindsay Wheeler and Professor Brian Helmke for suggestions on course redesign and improvement; and Professor Robbie Hott for the COVID-19 policies.
Released under the CC-BY-NC-SA 4.0 license.Last updated 2023-07-29 12:49