CSCE 520
Database System Design
Fall 2019

Time and Place

TTh 2:50pm - 4:05pm, Storey Innovation Center 1400

Instructor

Stephen Fenner
Telephone: 777-2596 (email preferred)
Email: fenner at cse dot sc dot edu
Web: https://cse.sc.edu/~fenner
Office: Storey Innovation Center 2249
Office Hours: TTh 1:15pm - 2:30pm

Teaching Assistant/Database Administrator

Daniel Padé
Email: djpade AT gmail dot com
Office: Storey Center 1205
Office Hours: MF 11:00am - 12:00pm

Texts

Required: J. D. Ullman and J. Widom. A First Course in Database Systems (Third Edition). Pearson/Prentice Hall, 2008. Hardcopy strongly recommended as no electronic devices will be allowed in exams (see Exams, below).

Overview

This course teaches the theory and practice of database management systems. It is a first course in databases, emphasizing the use of database systems -- designing databases and programming operations on databases. It does not cover implementation of the database systems themselves. Emphasis is on the relational database model, but object-oriented and semistructured database models will also be described. Major topics include E/R diagrams, the relational database model, relational algebra, SQL, XML and semistructured databases, Datalog, transactions, access control.

Sections

There are three sections for this course: 001 (standard section), H10 (honors section), and J60 (Apogee section). Lectures and exams will be common to all sections. Students in sections 001 and H10 must be physically present in the classroom for lectures and to take exams. J60 students may optionally be present for exams or else take exams remotely (but concurrently), with proctoring pre-arranged with the instructor.

Prerequisites

CSCE 240 or GEOG 563

Official Department Syllabus

This document includes the course outcomes.

Grading

Homework assignments 20%
Two midterm exams 20% each
Final exam 40%

Letter grades correspond to score percentages as follows:
A 90-100
B+ 86-90
B 80-86
C+ 76-80
C 70-76
D+ 66-70
D 60-66
F 0-60

Class Policies

Reading and Lectures

You (the student) are expected to read all assigned material before the lecture begins. If for some reason you cannot attend class, you are responsible for any material covered during your absence. Undergraduate and graduate students will be graded with slightly different criteria, and graduate students will often be given extra assignments.

Late policy

There will be a strict late policy. Written homework is due at or before the exact time that lecture begins on the due date, unless otherwise specified. This is a sharp deadline. Handing in homework late to lecture disrupts the class and encourages nonattendance. Homework will be accepted up to 24 hours after the due time with a 20% penalty. Homework will not be accepted more than 24 hours late. SQL homework is due in CSE Dropbox at 11:59pm on the due date. The same late policy applies to SQL homework as written homework. If for any reason Dropbox is not available close to the deadline, then as a last resort you can always submit via email attachment(s) directly to the TA (and please Cc me).

Exams

Tests are given in class and are open-book/open-notes. You may use any written or printed materials you wish during the test, but you may not use electronic devices of any kind, except for legitimate use by disabled students with prior notice. No make-up exams will be given except under extreme circumstances with a valid excuse, in which case you must give me notice well before the exam if at all possible. The exam schedule is

Code of Student Academic Responsibility

You are expected to know the University's Honor Code and its Student Code of Conduct. (You can also see these and more at the Student Conduct and Academic Integrity website.)

All work that you hand in must be your own. You may not copy or share program code or answers with anyone else, in or out of the class, even if you modify the code afterwards. You may, however, discuss programming assignments with other students---up to and including co-designing (not implementing) algorithms to solve homework problems. If you choose to design your ideas in a group, no more than three students may work together, and each member of the group must list the names of the other members in the group prominently on her/his submission. Even when sharing ideas in a group, you must formulate your answers and program code entirely by yourself (see below).

For our purposes, implementing is the same as writing program statements or commands, testing and debugging them. This means that not only is it illegal to write the code together, but it is also illegal to directly copy anyone else's program code to utilize his/her knowledge at any time before you hand in the assignment.

Any violation of the rules above constitutes cheating, for which there is no excuse.

THE USUAL PENALTY FOR CHEATING IS FAILURE OF THE COURSE. The bare minimum penalty you may receive for an instance of cheating is double the points of the assignment off. That means that if an assignment is worth 10 points, your ultimate grade would be -20 for the assignment. Finally, as noted in the Honor Code, the maximum penalty for cheating on an assignment is expulsion from the University. These penalties apply both to copier and copiee: anyone who allows a fellow student access to their programs, either directly or indirectly, will be held equally responsible. I will also apply these penalties for cheating on tests.