This course covers the principles and system organization of distributed and parallel databases and data processing systems. It provides an introduction to the foundational problems in distributed data management and a comparative overview of the most broadly adopted systems and techniques.


Data fragmentation and distribution; distributed query processing and optimization; concurrency control; reliability and commit protocols; data replication; data management in practical distributed environments.


The course assumes familiarity with the functional aspects of databases (covered in CS 145) and knowledge of database system implementation techniques, including the basic understanding of indexing, query processing, transactions, and concurrency control (covered in CS 245).

Coursework and Grading

CS 347 is a 3-unit course that can be taken either for a letter grade or for CR/NC. The coursework consists of 6 homework assignments (20% of the grade) plus a midterm and a final exam (35% and 45% of the grade, respectively).

Exam Schedule

The midterm exam will be administered in class on Wednesday, April 27.

The final exam is scheduled for Friday, June 3 (see official final exam schedule).


We will be using Gradiance for automated quiz homework assignments. Please create an account there if you don't have one already. (Note that passwords are at least 10 letters and digits with at least one of each). Please use your real first and last name, with the standard capitalization, along with your Stanford email (SUNet ID) so we can match your Gradiance score report to enrollment records. If you need to, you can change you name and email by following the Update Account link on the left hand side menu.

On your Gradiance home page, you'll be able to sign up for CS 347 using class code B06437ED. Once enrolled, you will be able to access the assigned quizzes on the Homeworks page. You may try the quizzes as many times as you like, and we hope everyone will eventually get 100%. Only the scores from your last attempt will be recorded.

The secret is that each of the questions involves a long-answer problem, which you should work through. The Gradiance system gives you randomized sets of right and wrong answers for each question each time you open a quiz, and thus samples your knowledge of the full problem. Multiple questions may refer to the same long-answer problem. While there are ways to game the system, it is hard to get 100% of the corresponding questions right at the same time without actually working the problems. Also note that you have to wait at least 10 minutes between submissions, so brute-force random guessing will not work.

Solutions appear after the problem set is due. However, you must submit at least once, so that your most recent attempt appears with the solutions embedded.

Note that we cannot—under any circumstances—extend the quiz deadline. Once the deadline has passed, you will not be able to submit your solutions. Put another way, there are no late days for Gradiance.

For additional details on using Gradiance, please refer to the Student Guide.

Honor Code

We trust that you will abide by the Stanford Honor Code.

Under the honor code, each of you is expected to solve the assigned problems independently and to submit your own original work. We encourage you to form study groups and you may discuss homework problems with fellow students. On occasions, it may also be useful to ask others—including instructors—for hints or talk generally about the assignment. However, you must write the solutions independently and without referring to written notes from joint sessions: that is, you must understand the solution well enough in order to reconstruct it by yourself. In addition, you must indicate any assistance that you received.

Since we occasionally reuse assignment questions from previous years, we expect students not to copy, refer to, or look at the earlier solutions in preparing their answers. Intentionally referring to previous (official or unofficial) solutions is considered an honor code violation.

Finally, posting your homework solutions to a place where it is easy for other (current or future) students to access them is considered an honor code violation as well.


Mondays and Wednesdays 1:30pm - 2:50pm
Huang Engineering Center 018


Instructor: Zoltan Fern
Email: zoltan@cs.stanford.edu
Office Hours: Mondays 3pm - 4pm / Gates 459

Course Assistant: Neeral Dodhia
Email: neeral@stanford.edu
Office Hours: Wednesdays 11:30am - 1:30pm / Huang basement

Course Assistant: Lili Yang
Email: yangl369@stanford.edu
Office Hours: Wednesdays 11:30am - 1:30pm / Huang basement


Discussion Group: Piazza