Skip to content
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Go to file
Cannot retrieve contributors at this time

SMPA 3193: Systems for Reporting

Spring 2017

School of Media and Public Affairs, George Washington University

Tuesdays and Thursdays, 11:10 a.m. - 12:25 p.m., SMPA B01


Derek Willis

Office Hours & Communication

I plan to be at SMPA by 10:30 a.m. most Tuesdays & Thursdays and will be available immediately before and after class, and by appointment. The very best way to reach me is by email; if you have a question, doubt, concern or cat picture to share, email me. I will make every attempt to notify students should our schedule change.

About the Instructor

I have worked as a journalist since 1995, when I secured an internship offer from The Palm Beach Post against a dozen rejections from some of the finest news organizations in the country. Somehow, I went on to work for some of them: Congressional Quarterly, The Center for Public Integrity, The Washington Post, The New York Times and now ProPublica. Although it may appear that I have trouble keeping a job, I mostly have moved to chase new opportunities, especially those involving data and the Internet. This is why I teach: because as many issues as journalism has, it has so many opportunities. My skill is not as a writer or interviewer, but I love finding stories in data, and making that process easier. My Internet claim to fame is that I was named "Wanker of the Day" by liberal blogger Atrios for Jan. 17, 2006. I am not a University of Kentucky basketball player, but I do like basketball (and have season tickets to Maryland women's basketball). If you'd like somebody else's take on me, here's one.

Course Information

Course Description and Goals/Learning Outcomes

This course will teach students how to use data and technology to craft a systematic approach to beat reporting, or to build what you could call a reporter’s exoskeleton. Such a system would make it easier for a journalist to place news in context or spot interesting and potentially newsworthy events.

As an example of this, consider the Supreme Court: each ruling is in itself a potential story and also one part of the life of a changing institution that draws on previous cases and is influenced by judges' past and present actions. Being able to place a ruling in context -- is this out of character for this court, or for any Supreme Court in history? -- is a valuable skill for a journalist. Collecting the information needed to provide this context can also help the journalist produce better questions and ideas. That collection effort is rarely simple, but advances in technology make it possible in a variety of circumstances.

Students will work with some of the tools for building system for reporting: spreadsheets, databases, pattern matching and some programming, including web scraping and building useful but simple sites for reporting. Students will work in small teams to choose a beat, research data sources around it and develop a web-based system to surface useful and unusual aspects of the data. You will be doing some work that qualifies as "computer programming" in this course, but it is not a programming course. This is a course about using computers and software to make you a better journalist.

Students will learn to create and deploy simple tools and systems that could be evaluated and used by journalists at the university and in the professional world. These could range from tools that capture and broadcast key information from government data to simple Web sites that make it easier to compare changes over time or data from different geographic areas. Some examples:

The other, more important, goal is that students will leave the course with an idea of how to use technology to approach a beat in a systematic, rather than an ad-hoc manner. Students will learn when and how to automate repetitive reporting tasks.

The course will proceed on two tracks: in class we'll learn about and practice using techniques and tools, and outside class you will work in small groups on projects, with regular updates to the class. Your homework mainly will consist of readings and project work, with some additional exercises.


You must have some experience with a spreadsheet. You will need a comfort for installing software on your own personal computer (we'll do this together), for trying new things and for making mistakes. Our goal is to make creators, not just users. Above all, you will need to ask questions.

Learning Outcomes

As a result of successfully completing this course, students will be able to:

  1. Ask questions of data using specific tools such as spreadsheets and programming languages
  2. Acquire data through web scraping and other techniques
  3. Automate data acquisition and reporting tasks
  4. Create maps from data
  5. Design and build a simple web application like a Twitter bot

Textbooks and Readings

There are no textbooks for this course. We will have regular readings chosen from professional work, government documents and other sources. You will be expected to read materials before class and to discuss them in class. Post any questions you might have about a reading to the class’s GitHub project as an issue and flag it appropriately so it can be resolved in advance or discussed in class.


In addition to working on computers in the lab, you will need to have a computer (Mac, Linux or Windows, preferably a laptop). You must have the ability to install software on this computer. The tools we will use will include: Excel/Google Spreadsheets, SQLite, Python and JavaScript.

Average minimum amount of out-of-class or independent learning expected per week

Over 15 weeks, students will spend 2.5 hours in class per week in class. Required readings, assignments and group project work are expected to take up, on average, 5 hours (300 minutes) a week. Over the course of the semester, students will spend 37.5 hours in class and 75 hours on class work.

Schedule of topics

Please see the class outline, which is subject to changes depending on our progress.

Assignments and Grading

Grading will be based on the following activities.

Attendance & Participation - 15 percent

You are expected to contribute to in-class discussions, as well as group work in class. Journalism isn't a passive activity, and thinking of questions is literally a core skill for any journalist. If you aren't questioning things or exploring things, this might not be the profession for you.

Quizzes - 10%

There will be 6 in-class quizzes based on readings, which means we won't have them every week, and I won't tell you in advance (because it's a quiz). Each student's lowest grade from these quizzes will be dropped in determining the final grade; you may want to preserve this option for emergencies. The remaining quizzes will be averaged for this portion of the final grade.

Homework - 15% There will be regular take-home skills-based assignments. These are individual assignments, meaning you cannot ask your colleagues for help on work done outside class (but you can ask me). Again, the lowest grade from these will be dropped when determining your grade; you may want to preserve this option for emergencies. The remaining assignments will be averaged for this portion of the final grade.

Biweekly project assessments - 20%

Beginning on March 7, I will grade your group project's progress every two weeks, based on materials groups will submit on their GitHub page by the beginning of class on Tuesdays. These include background research, prototype work, code/data and design. In general, if you are documenting your efforts - whether they succeed or not - members will be full credit for these updates.

Final project - 30%

Your final project, which should be a working, deployed application for the Web (or a Web-enabled service like Twitter), is due at the end of the course. It represents the entirety of your project work.

Peer assessments - 10%

Twice during the semester, your fellow group members will be asked to provide an assessment of your contributions to the group's progress. The first evaluation, which will be around March 23, will not be graded but you will receive their comments anonymously to help you know how you are doing. The second, due at the end of the course, will be graded and will account for 10 percent of your grade. On both occasions, you also will provide a self-evaluation.

There is no final exam for this course; groups will present their final projects.

Course Policies


Journalism is not a passive activity and requires focus, inquisition and involvement. Every class, we will be discussing our own work (and others) and we will be building a set of skills to use, and I expect your comments, questions and other contributions to our class. None of this can happen if you don’t show up, and your participation grade will suffer as a result.

If you are ill and will miss class, let me know before that class, if possible. Unless you have my approval in advance, course work cannot be made up if you do not submit it on time. There is no extra credit.

Late Assignments

Deadlines are important in journalism. Any assignment that is submitted after the deadline will receive a score of 0, which will not help your average. The deadline for in-class assignments is the end of class, unless otherwise instructed, and for outside assignments, the start of class. Turning in an incomplete or imperfect assignment is much, much better than turning in a late assignment.


Respect: You should treat your classmates with respect. I'll expect this both in your verbal communication with them but also in your non-verbal communication. This means: pay attention and be empathetic.

Computers: When we are using computers, I expect that you will be using the program that we are talking about and not surfing the Web or checking email. I recommend that you take notes by hand, which can be more effective than on a computer.

Teamwork: You will be assigned to a team of 4-5 students to work on your final project, not only to enable a broad range of perspectives but to help each other understand the concepts introduced in readings and in-class work. Each member of the group will be required to submit a self-evaluation and to evaluate the other members of the group; these evaluations will influence each student's final grade.

University Policies

Religious Holidays

In accordance with University policy, students should notify faculty during the first week of the semester of their intention to be absent from class on their day(s) of religious observance.

Academic integrity code

Academic dishonesty is defined as cheating of any kind, including misrepresenting one's own work, taking credit for the work of others without crediting them and without appropriate authorization, and the fabrication of information. Details and complete code.

Safety and security

In the case of an emergency, if at all possible, the class should shelter in place. If the building that the class is in is affected, follow the evacuation procedures for the building. After evacuation, seek shelter at a predetermined rendezvous location.

Support for students outside the classroom

Disability Support Services (DSS)

Any student who may need an accommodation based on the potential impact of a disability should contact the Disability Support Services office at 202-994-8250 in the Rome Hall, Suite 102, to establish eligibility and to coordinate reasonable accommodations. Additional information.

Mental Health Services 202-994-5300

The University's Mental Health Services offers 24/7 assistance and referral to address students' personal, social, career, and study skills problems. Services for students include: crisis and emergency mental health consultations confidential assessment, counseling services (individual and small group), and referrals. Additional information.