CS143: Database Systems

http://www.cs.ucla.edu/classes/fall14/cs143/

Fall 2014

Course Description

The goal of CS143 is to introduce students to relational database systems (RDB) and teach them how they work and how to use them for applications. Through the class, students will learn the RDB model and the SQL language. SQL is the standard language for the creation, query and modification of relational databases. In addition to the practical knowledge of RDB, students will learn the theoretical aspect of RDB including relational algebra, relational design principles (functional dependency and normal forms), and the entity-relationship database design. Finally, students will learn the performance and design aspects of RDB, including disk and file systems, indexes, transactions, and integrity constraints.

To help students digest the materials learned in the class, we will assign:

Time and Place

Class hours
MW 2:00-3:50PM
Class location
Dodd 121
Lab hours - 1
F 12-1:50PM
Lab locations - 1
HUMANITIES 169
Lab hours - 2
F 2-3:50PM
Lab locations - 2
HUMANITIES 169
*Note: topics covered in both labs are 100% identical and taught by the same TA in each week; thus you only need to attend either of them.

People

We have one instructor and two TAs for CS143.
 
Instructor
TA
TA
Name
Junghoo "John" Cho
Jiaqi Gu
Zijun Xue
E-mail
cho at cs.ucla dot edu
jiaqi dot ucla at gmail dot com
zijun dot ucla at gmail dot com
Office
3531H Boelter Hall
HUMANTS 135
HUMANTS 135
Office hours
Mon 1-2PM
Fri 4-6PM
Fri 4-6PM

Please use our discussion forum to ask general question. Asking a general question via email to individual staff is strongly discouraged. While the course staff check the discussion forum almost every week day, they do not check their private emails as often and you may get a (very) slow response.

If you have private concerns and questions, such as reporting a mistake in your grading, we still encourage contacting the staff by writing a PRIVATE POST on the forum and include your SID. A private post on Piazza is visible only to the posting student and (all) the instructors. Please do not use a PRIVATE post to ask a general question.

Prerequisites

CS143 should be accessible to a student with a solid Computer Science foundation that includes resonable proficiency in programming and working knowledge of basic Computer Science theory (as in CS31/32). That is, you should feel comfortable with the basic data structures and algorithms in Computer Science (e.g., hash table, graphs, trees, sorting algorithms, set theory) and should feel comfortable doing a fair amount of programming in C/C++/Java. Math61 (Discrete Structures), CS180 (Algorithms), and CS131 (Programming Languages) are expected but not absolutely required.

The programming project will use the MySQL database management system and PHP and C++ programming language. We do not expect any prior experience with relational database systems (such as MySQL), but we do assume that students either already know PHP and C++ or will be able to learn them during the quarter. We understand that most students may not be familar with PHP, but please note that PHP is relatively easy to learn as long as you have done programming before. We will provide links to online resources to help you learn the language for the project. If you are generally a good programmer, we expect that you will be able to finish the class projects in a reasonable amount of time. We also assume that students are already familiar with the UNIX command line interface.

Books

One textbook is required for the course:

Although the above textbook is officially required, a number of students in previous years expressed that they actually did not need to purchase the book in order to follow the class.

Students who want to purchase a book about the SQL database language may find the books useful, although they are not required textbooks of the course:

Resources

There are many useful online resources for MySQL, SQL and PHP. We will provide some of the useful links on the course homepage.

Exams

The class will have two exams:

Alternate Exams

Please note that routine alternate exams will not be offered in CS143. The university strongly discourages students from enrolling in two classes given at the same time, and instructors are under no obligation to accommodate such students. If you provide an extraordinarily compelling case then an alternate exam may be given, but alternate exams are always oral exams given by the instructor privately in his office.

Grading

The final grade will be assigned based on the following criteria:

A few homeworks will be assigned but not graded. As long as you submit your homeworks on time, you will get full credit for homework. The final grading will be done based on the curve. Roughly 30% students will get A, 40% B and the remaining 30% C or D.

Academic Integrity

At http://www.studentgroups.ucla.edu/dos/students/integrity, the Office of the Dean of Students presents University policy on academic integrity, with special attention to cheating, plagiarism, and student discipline. The policy summaries don't specifically address programming assignments in detail, so we state our policy here. In order to earn any points on your coursework, you must turn in this signed agreement.

Each of you is expected to submit your own original work, or the original work of your two-student team in the project. On many occasions it may be useful and have an educational value to ask others (the instructor, the TA, or other students) for hints or help, or to talk generally about programming strategies. Such activity is both acceptable and encouraged, but you must indicate any assistance (human or otherwise) that you received. Any assistance received that is not given proper citation will be considered plagiarism. So where do we draw the line? We'll decide each case on its merits, but here are some categorizations:

Acceptable:

Unacceptable:

In any event, you are responsible for coding, understanding, and being able to explain on your own or as a team all project work that you submit.

Be especially careful about giving a copy of your work to a friend who "just wants to look at it to get some ideas". Frequently, that friend ends up panicking and simply copies your work, thus betraying you and putting you through the hassle of an academic discipline hearing. The Dean has additional advice.

You must abide by this policy in addition to the policies expressed in the UCLA Student Conduct Code. If a violation of the policies is suspected, in accordance with University procedures, we will have to submit the case to the Dean. A typical penalty for a first plagiarism offense is suspension for one or more quarters. A second offense usually results in dismissal from the University of California.

Online discussion group

All students must join and utilize CS143 discussion group at here. To sign up, please click this link. This online discussion group will be the primary channel for students to ask course and project related questions and for others, including the TA, to answer them. Note that some of your questions may have already been discussed and answered by others, so please search the board first before asking a question. When you join the discussion group, you may choose to receive email notifications for new messages or just to read them on the board.