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.
By the end of the quarter, you should demonstrate:
- An understanding of the role interactive graphics and dynamic web applications play in the news.
- An awareness of the wide range of ways that code and technology can be applied to the news.
- The ability to create and deploy a static website.
- Proficiency in the basic tools and best practices of software development and collaboration.
- The ability to programmatically acquire and prepare data for use in a news interactive or application.
- The ability to design and implement interactive data visualizations and dynamic news apps.
|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|
|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.
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:
- Amazon Web Services
- Bash shell
- Code editor (VS Code is recommended)
- Firefox web browser
- Github and git
- Python 3
# 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.
- Automate the Boring Stuff with Python
- The Hitchhiker's Guide to Python
- The Pragmatic Programmer: From Journeyman to Master (print)
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 is based on the College Board scale.
The overall grade is broken into three categories and weighted:
- (15%) Participation in class discussions and exercises
- (40%) Ongoing, small assignments and in-class work
- (45%) Projects: Two or three larger projects that will apply technical skills to a news project on the web
Many assignments will involve coding and related technical work. On such assignments, points will be deducted for:
- Incomplete or incorrect work
- Submitting the assignment incorrectly
- Failure to follow instructions
- Code quality (e.g. using camelCase instead of snake_case variable names in Python)
- Lateness (see below for more details)
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.
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.
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.
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.
There may be one or more opportunities to earn extra credit during the course. Extra credit can only:
- be earned for work submitted on time.
- boost your overall course grade by half a letter (e.g. B+ to A-).
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.
Stanford's Honor Code applies.