CPS 296.1 (Spring 2010):
Database and Programming Languages:
Crossing the Chasm

Course Information
Lecture Notes
Schedule and Readings
Blackboard Forum (Reviews)
Blackboard Forum (Project)


Course Description

With the explosive growth in data volume, increasing sophistication of data analysis, and a trend toward parallelism and distribution, traditional approaches for developing data-driven and data-intensive applications are becoming inadequate. We are witnessing a plethora of ideas that blur the traditional boundaries between databases and programming languages, and between data-centric and process-centric views of computing. These ideas range from techniques for dealing with impedance mismatches between programming paradigms such as Language Integrated Querying (LINQ), to abstractions and primitives for data parallelism such as BigTable and Map/Reduce, to new, data-centric declarative languages for domains such as networking and system management. The course will involve plenty of reading and discussion of the recent research literature as well as course project.

Except for necessary background reviews, the contents of this course do not overlap with CPS 216 or previous offerings of CPS 296 on topics in databases.

Prerequisites: A good understanding of algorithms, data structures, and programming. Some background in databases will be helpful but is not required.

Aside from lectures, much of the course will consist of seminar-style class meetings. Students will read recent research papers, and give presentations and lead discussions of these papers. There also will be an open-ended course project.

Homework consists of reading and presentation assignments. There will not be any exams. Grade will be based on course project, homework, and class participation.


Instructor: Jun Yang
Email domain: cs.duke.edu, user: junyang (address is user@domain)
Office: D327 LSRC
Office hours: 1:30pm-2:50pm on Tuesdays and Thursdays before class, or by appointment

Time and Place

2:50pm-4:05pm on Tuesdays and Thursdays; North Building 306.


No textbook is required. There will be a reading list drawn from recent research literature. The list will be posted and updated regularly on the course Web site.

Web and Email

Most of the course materials, including the tentative schedule, lecture notes, reading list, etc., will be available through the course Web page (http://www.cs.duke.edu/courses/spring10/cps296.1/).

To avoid spam, there is no mailing list for the class. However, the instructor will send out emails with everybody on the recipient list. You may use the recipient list in these emails to send only questions/answers and comments of general interests to the class. Specific questions should be directed to the instructor. Please check your emails regularly, as important announcements and information will be sent via email.


Grading is done on an absolute scale (in other words, there is no curve). Anyone earning 90% or more of the total number of points available will receive a grade in the A range; 80% or more guarantees a grade in the B range; 70% or more guarantees a grade in the C range; 60% or more guarantees a grade in the D range.

  • Homework and participation (50%): There will be reading assignments throughout the semester, posted in the Schedule and Readings section of the course Web site as the course progresses. Some of the reading assignments require short reviews, which together constitute 20% of the grade. Each student will also be expected to present and lead the discussion in a number of class meetings, which account for 20% of the grade. Class attendance accounts for the remaining 10%.
  • Course project (50%): There will be a course project, which can be done either individually or in teams. The project has three milestones: a short project proposal presentation (right after the spring recess), which accounts for 15% of the grade; a short project progress report (due April 8), which acounts for another 5% of the grade; and a final project presentation and a report (during the finals week). The final project presentation and report and the overall quality of the project account for 30% of the grade.

Honor Code

Under the Duke Honor Code, you are expected to submit your own work in this course. On many occasions, it is useful to ask others for hints or help, or to search the Web for related resources (e.g., slides from the original authors of a paper you are presenting). Such activities are acceptable, but you must explicitly indicate any assistance you received. Any assistance received that is not given proper citation will be considered a violation of the Honor Code. In any event, you are responsible for understanding and being able to explain on your own all materials that you submit and present. The course staff will pursue aggressively all suspected cases of Honor Code violations, and they will be handled through official University channels.

Last updated Tue May 04 11:27:47 EDT 2010