Building News Applications
COMM 177T/277T (2019)

Syllabus

Course Description

This course introduces students to the process of building interactive web applications and visualizations for the news. Students will study examples from the news industry and gain proficiency in a range of technical languages, skills and tools: version control, HTML, CSS, Javascript, Python, web protocols, and web hosting and deployment.

Class exercises and projects will focus on the use of these technologies to produce applications that tell a story and engage the public. Students must have basic proficiency in Python, SQL and the Unix shell.

Learning Goals

By the end of the quarter, you should demonstrate:

About 177T/277T

Location: McClatchy Hall (Building 120), Room 410
Time: T/TH 1:30 - 2:50PM
Dates: April 2 - June 4, 2019
Instructor:Serdar Tumgoren, Lorry I. Lokey Visiting Professor in Professional Journalism
Email: tumgoren@stanford.edu

Office Hours

Time: Wednesdays, 1:30-3:00pm
Place: Room 342, McClatchy Hall

I'm happy to meet during or outside of normally scheduled office hours. Please come by if you have questions about the coursework or generally want to discuss story ideas, data journalism or other topics. We can also chat by phone or video when I'm working off-campus (Mondays and Fridays) -- just reach out via email to schedule a time.

Technical

We'll be using mostly free and open source tools in this class, along with some cloud platforms that require registration. The only aspect of this class that may cost some money (pennies to a few dollars per month) will be Amazon Web Services.

Below is a list of technical requirements. This list may be updated over the course of the quarter:

Mac users should also install Homebrew and XCode. On the command-line:

# Install XCode
xcode-select --install

# Install Homebrew
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

This class will have limited support for the Windows environment. If you're on a Windows OS, you'll need to find a way to gain access to a Mac or Linux machine. The easiest option is to use the Macs available in class. Outside of class time, we can discuss alternatives that will let you run Linux on a personal Windows machine.

This course has no required textbooks.

We'll use a mix of free online resources to level up on programming fundamentals and best practices. Print books will be on reserve at Green Library. This list may be updated over the course of the quarter.

Structure

Classes will include discussion/lecture on features of news interactives and applications on the web, as well as hands-on work building interactive visualizations and applications.

Each student is expected to participate in class discussions, contribute constructive critique of work, and come to class having completed assignments and readings. Student work will be discussed and critiqued in class.

Class begins promptly. Lateness or unexcused absence will affect your grade. If you have to miss class, notify me in advance. Please refrain from being on a device in class unless it is related to class.

Grading

Grading is based on the College Board scale.

The overall grade is broken into three categories and weighted:

Many assignments will involve coding and related technical work. On such assignments, points will be deducted for:

Assignment submissions

Assignments will generally be detailed on our Syllabus site. Technical work should be completed in your private Github repo and, if appropriate, deployed to your personal project site. Assignments that are not deployed (if required) will lose points. Further, the URL to your deployed project must be submitted via Canvas. Written assignments must be uploaded via Canvas.

Deadlines

Just as in a newsroom, it's imperative to make deadlines. Please get an early start on assignments -- especially larger projects -- in order to complete them on time. If you run into trouble, I'm happy to help. Give yourself some runway to work through unexpected technical challenges and seek out help when necessary.

Absences

We all get sick and, at times, issues arise at home or in our personal lives that prevent us from completing work or attending class. I try to be understanding and accommodating in such cases as long as you contact me as soon as possible (ideally before missing a class or assignment) and explain the situation.

But fair warning: Classes and assignments build on each other. If you miss class or fall behind on assignments, it may be quite difficult to catch up.

Late Policy

Much of our class work is technical in nature. It's important for us to review and discuss solutions after an assignment or project has been submitted. In order to do so, it's critical that everyone submit work on time. Unexcused late submissions of work will be penalized 1/20th of the overall score per day. For an assignment worth 100 points submitted two days late, that's a 10 point deduction. A "day" is measured as the 24-hour period following the submission deadline.

Excused late submissions - i.e. when you reach out to me ahead of time to explain the need for a late submission and come up with a new deadline - will only be penalized 1/20th of the grade.

Extra Credit

There may be one or more opportunities to earn extra credit during the course. Extra credit can only:

Professional Journalism Disclosure

It’s possible that work in this course will be conducted as part of reporting efforts aimed at publication on the Peninsula Press. When interviewing anyone for a story (on or off campus) you need to properly identify yourself "as a student reporter writing BOTH an in-class assignment AND a PUBLIC story – one that could be published by major media outlets: sfgate.com, The San Francisco Chronicle or KQED via the Peninsula Press."

You must make this very clear. You need to MAKE SURE that your interviewee understands their words and image could appear in major media.

Honor Code

Stanford's Honor Code applies.