CS 455 - Principles of Database Systems - Syllabus
Course Info
- Instructor: David Chiu
- Web page: https://davidtchiu.github.io/teaching/cs455/
- Email: dchiu@pugetsound.edu
Course Description
The management of data is one of the classical problems in computing. This course centers around the fundamental concepts and theory behind the relational data model, which addresses numerous problems that plague data management, including data independence, access, consistency, and information loss. Course topics include the relational data model, database languages (e.g., SQL), relational database theory, database design (by decomposition), query execution, and considerations that affect system performance. Students will design database schemas that effectively model an organization’s information and write applications that require database integration. Students will also gain insight through the implementation of influential data structures and algorithms that are commonly used in modern relational database systems.
Prerequisites
A grade of C- or higher in the following course is required, or with permission from the instructor:
- CSCI 261: Computer Science II
- MATH 210: The Mathematics of Computer Science
Required Textbook
Silberschatz, Korth, and Sudarshan, Database System Concepts. 7th Ed.
Course Topics
- The Relational Model
- Relational Algebra and SQL
- Relational Database Theory and Normalization
- Performance Analysis
- Database File Organization
- Hashing and Indexing
- Transactions and Concurrency Control
Student Learning Outcomes
Upon completion of this course, students will be able to:
- Describe the defining characteristics behind the relational data model.
- Analyze user requirements to prepare an appropriate relational database schema.
- Compose SQL queries that incorporate select, project, join, union, intersection, set difference, and set division.
- Use normal forms and perform normalization in the design of a relational database.
- Analyze and solve problems related to external memory data structures and algorithms using suitable mathematics.
- Evaluate the merits among various file organization and indexing designs, with respect to space and time complexity.
- Design, code, test and debug programs which perform query and update transactions on a database in a team-based environment.
Grades
Your overall grade is broken down as as follows:
| % Weight | |
|---|---|
| Participation | 7% |
| Term Project | 15% |
| Homework Assignments | 25% |
| Midterm I | 15% |
| Midterm II | 18% |
| Final Exam | 20% |
Homework Assignments
Homework assignments are a mix of paper-based and coding-based. They account for a significant portion of the final grade. Unless otherwise noted, you are to work on homework assignments alone. You are welcome to brainstorm with others (including tutors) for ideas, but any code you submit should be yours.
Do not copy code you find on the web and/or ChatGPT. This is considered plagiarism. Please see the “Academic Integrity” section below.
Term Project
There will be an open-ended group project assigned about mid-way through the course. The most successful teams meet and physically work together at an agreed-upon location and time – that is, uno animo. It is a good idea to set up version control environments and practice scrum, to ensure everyone has something to do and is making progress. A final presentation will be given toward the end of the semester. Each member of the team should contribute equally to the assignment. Students on the same team may receive different grades based on perceived effort and contributions (via scrum logs and git commit history).
Clasroom Policies
Final Letter Grades
These are the cutoffs when assigning your final letter grades. The cutoffs below might come down, but will not be set higher.
| Final Average | Letter Grade |
|---|---|
| 100% - 94% | A |
| 93% - 90% | A- |
| 89% - 87% | B+ |
| 86% - 84% | B |
| 83% - 80% | B- |
| 79% - 77% | C+ |
| 76% - 74% | C |
| 73% - 70% | C- |
| 69% - 67% | D+ |
| 66% - 64% | D |
| 63% - 60% | D- |
| 59% and below | F |
Attendance and Participation
Regular attendance and participation in class are required. Attendance, to be graded out of 10 “participation points,” applies toward your final grade. I deduct 2 points for each unexcused absence, 1 point for being late, and 1 point for engaging in activities that can disrupt others: scrolling through your phone, texting, playing games on your laptop, etc.
- Participation points is allowed to become negative, which will adversely impact your overall grade.
Furthermore, if a student misses more than 6 class meetings (15% of the semester) without a verified excuse or accommodation, they will be automatically withdrawn from the course (W) or assigned a failing grade (F). Exceptions may be granted for verified emergencies with appropriate documentation.
- Excused absences (e.g., medical, family emergency, etc.) may require documentation and do not count toward this limit.
During Class: Phones Off!
Phones are a common distraction during lectures. Please turn your phones off, or at least put your phones on silent during lecture. If you are caught using your phone during class and/or lab, it will affect your participation points.
Academic Integrity
I adhere to the university’s academic integrity policy. If a student is caught misrepresenting their work, then at minimum, they will receive an automatic zero for the assignment and the case will be reported upstream, which may affect the student’s athletic and scholarship eligibilities. To avoid such problems, use common sense and when in doubt, ask me for advice. Examples of academic dishonesty include, but are not limited to, the following:
- Copying the work of another student or former student.
- Copying work found online or on generative AI platforms (see section below for expanded discussion into AI assistance).
- Communication of any form during exams.
AI Usage Policy
In this course, all work that students turn in must be produced by the students themselves. Any direct use of AI-generated material within an assignment constitutes academic dishonesty. Students may use AI in indirect ways, such as consultation for brainstorming purposes or as a study assistant. However, the student should be forewarned that AI tools are frequently inaccurate and students are responsible for their own study processes. Further, AI-generated material must not be copied or paraphrased into an assignment. If you have questions about the use of AI in this course, please ask your professor.
In select courses, I have created an “AI Tutor” that has been trained on our course materials. You can use this AI tutor freely to get help on assignments, to brainstorm for ideas, and to review for exams. If an AI Tutor has been created for this class, I will make it available through canvas. Limit your AI usage to just this bot, as other AI tools can lead you astray from the course materials.
When used properly, ChatGPT, Gemini, and other generative AI are powerful tools and can be a great help in understanding the technical contents of this course. Because of that, on surface, I am not opposed to their use for my classes. However, there are clear boundaries that, when crossed, could lead to severe consequences for students. Here are some do’s-and-don’ts guidelines on how to properly use these tools for this class:
- Do use it to be your personal tutor, and that is as far as it should go. Use it to explain concepts you don’t fully grasp. When helping with homework, prompt it with things like, “Without providing me with any code solution …”
- Do use it to explain code to you. Is there a piece of code we went over in class that is hard to understand? Paste it into the prompt, and have it explain line-by-line as well as holistically on how everything comes together.
- Do use it to explain your errors to you. Paste in your code and the errors you receive when compiling or running it. Have it comment on any issues without simply giving you the fix.
- Do use it to explain any mathematics that you might need to know for an assignment or lab.
- Don’t turn anything in that was generated by AI tools. In general, copying-and-pasting (even with superficial modifications) without citation is considered plagiarism, and will be treated as such.
- Don’t forget that you will still need to demonstrate proficiency on all your exams to pass the course. Doing well on homework assignments is only a necessary (albeit insufficient) condition to pass the course!
Late Policy, Extensions, and Makeup
Late Deduction
For each day that a homework assignment is late beyond the due date (or the adjusted date according to your accommodations), I assess a \(3^d\%\) deduction, where \(d\) is the number of days late including weekends.
Deadline Extensions
Ample time is provided to complete each assignment, and I do not assign work that has not already been covered in lectures. Generally, no extensions be will given for assignments. The exception is when you can provide documentation for unique circumstances, or if you have student accommodations. As a general rule of thumb, come talk to me and explain what might be going on.
Exam Policies
-
Makeup: I expect you to be present on the day of exams. I do not offer makeups unless you can document an extenuating circumstance. The following do not count as extenuating circumstances: experiencing a cold, overslept, mental-health day, family visiting, traveling, etc. Exam days are listed on my course calendar and will not change. Plan accordingly!
-
Final Exam: You must show up on the scheduled day of the final exam. These dates are set by the university and cannot be rescheduled. Please do not ask for exceptions.
-
The following items are prohibited to use on the day of exams: Phones (even with Wifi disabled), headphones, and other mobile devices.
-
Student Accommodations: It is your responsibility to inform me if you will be taking exams at the accommodations office well-ahead of time, so that I have time to provide exam copies to their office.
University, Academic, and Administrative Policies
There are many university policies and resources that offer guidance on how to be safe and make the most of your college education. Here are a few that you should take a moment to review:
-
Please review university emergency preparedness, response procedures and a training video posted at www.pugetsound.edu/emergency/.
-
For information on academic and administrative policies (such as policies on grade policies, leaves of absence, declaring a major, academic integrity, and academic petitions) please refer to the Academic Policies and Administrative Policies sections of the University Bulletin.
-
If you are seeking a religious accommodation in an academic course or program, please follow the process provided in the university’s policy on Student Religious Accommodations in Academic Courses or Programs, available at www.pugetsound.edu/office-university-counsel/policies/campuswide-policies/student-religious-accommodations-academic-courses-or-programs
-
If you have any concerns about prohibited harassment or discrimination that may be affecting you or others at Puget Sound, please contact the university’s Title IX Coordinator/Equal Opportunity Officer, Wheelock 218, 253.879.3793, website: www.pugetsound.edu/title-ix-equal-opportunity, email: titleix-eoo@pugetsound.edu. The Title IX Coordinator/Equal Opportunity Officer can explain available options and help address concerns informally or formally.
-
If you have a physical, psychological, medical or learning disability that may impact you as a student at Puget Sound, please contact Student Accessibility and Accommodation, Howarth 105, 253.879.3399, website: pugetsound.edu/saa, email: saa@pugetsound.edu. They will determine with you what accommodations are necessary and appropriate.
-
You must uphold the school’s Academic Integrity Code found here: https://www.pugetsound.edu/academic-integrity. Any suspected cheating (plagiarizing code, copying homework solutions, etc.) will be reported to the Registrar, which may result in possible suspension/expulsion and loss of financial aid.