CPS 296.1 (Spring 2012):
Project in Computational Journalism

Course Information
FAQ for Prospective Students
Lecture Notes
Schedule and Readings
Sakai (Forum)


Course Description

Journalism is at the crossroads. In the past, we have come to rely on traditional news organizations for investigative reporting to hold governments, corporations, and individuals accountable to society. The decline of traditional media in recent years has led to dwindling support for this style of journalism, which has profound impact on the well-being of democracy. At the same time, there is also an opportunity. With technological advances and the movement towards transparency, the amount of data available to the public is ever increasing. However, the potential of this "democratization of data" cannot be fully realized with the widening divide between the growing amount of data on one hand, and the shrinking number of investigative journalists on the other.

Computing is a key to bridge this divide. Computational journalism aims at developing computational techniques and tools to increase effectiveness and broaden participation for journalism — especially public interest journalism — to help preserve its watchdog tradition. In this course, we will, as a team, propose, design, and build a system to support public interest journalism. It is our goal to make the system available for use by the public at the end of the course. Throughout the course, we will learn, by doing, a variety of topics on computing and its creative applications that are relevant to the course project. Possible topics include Web programming, SQL, text/data mining, social computing, development/deployment for cloud, journalistic practices in the digital age, etc.

This course is open to both graduate and undergraduate students inside and outside computer science. To take the course, you must be passionate about either computing or its application to public interest journalism. You must have experience in at least one of the following areas: 1) programming, 2) interface design, 3) civic issues where computational journalism may be applicable. If you have no programming experience, you must show willingness and ability to learn in order to work effectively with others with more computing expertise. Teamwork is essential.

If you are interested in the course but not sure about taking it, you can learn more from this FAQ.


Instructor: Jun Yang
Email domain: cs.duke.edu, user: junyang (address is user@domain)
Office: D327 LSRC
Office hours: Fridays 1:15pm-4pm, or by appointment

Time and Place

10:05am-11:20am on Wednesdays and Fridays; Old Chem 123.

Web and Email

Most of the course materials, including the tentative schedule, lecture notes, reading list, etc., will be available here on the course website.

There is an email address that reaches everybody in the class as well as the instructor: domain: cs.duke.edu, user: cps296.1 (address is user@domain). Only announcements, questions/answers, and comments of general interests should be sent to this address. Specific questions should be directed to the instructor or individual students. Please check your emails regularly, as important announcements and information will be sent via email.


Grading is done on an absolute (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.

  • Class attendance (10%): Since teamwork is essential to this course, attendance is mandatory.
  • Reading assignments (20%): There will be a number of these throughout the semester, some of which require short reviews.
  • Topic presentations (20%): Each student will be expected to present and/or lead the discussion on particular topics in a number of class meetings.
  • Project and reports (50%): Throughout the semester, each student will write and present short reports summarizing progress and findings related to his or her assigned component within the course project.

There are no exams for this course.

Standards of Conduct

Under the Duke Community Standard, you are expected to submit your own work in this course, including homeworks, projects, and exams. On many occasions when working on homeworks and projects, it is useful to ask others (the instructor, the TA, or other students) for hints or debugging help, or to talk generally about the written problems or programming strategies. Such activity is both acceptable and encouraged, but you must indicate in your submission any assistance you received. Any assistance received that is not given proper citation will be considered a violation of the Standard. In any event, you are responsible for understanding and being able to explain on your own all written and programming solutions that you submit. The course staff will pursue aggressively all suspected cases of violations, and they will be handled through official University channels.

Last updated Wed Mar 14 20:29:52 EDT 2012