Coding For Journalists Fall 2014

Course Objective

This course is an introduction to programming concepts as they relate to the journalism industry. The goal of this course is to equip students with a foundational technical literacy to construct interactive online stories such as data visualizations, infographics, maps, multimedia packages, games or innumerable other types of projects students may conceive.

Students will learn the basics of JavaScript—the language of the web. They will learn the fundamentals of prototypical object oriented programming, an important component in many web coding languages. The course will cover variables, typecasting, arrays, for-loops, conditional statements, comparison operators, functions, enclosures and cross-domain data requesting. This course will also cover popular data libraries like D3 and Leaflet. While these terms may seem esoteric to a layperson, they need to be part of the vernacular of students wishing to enhance their abilities in this expanding area of journalism.

Sep 4
Introduction to JavaScript — Class will cover syntax, variables, operators, datatypes, concatenation, arrays, multidimensional arrays and displaying information in the console.
Sep 11
Objects — class will cover the three types of object notation: object-literal, dot notation and square-bracket notation; how to store or retrieve data; JSON structures and combining objects with arrays.
Sep 18
Functions and Conditionals — Class will cover how to use functions to execute code blocks, send data to functions via arguments, return data from a function and how to use anonymous functions. Discuss how functions affect variable scope, and how to use encapsulation to avoid cluttering the global scope.
Sep 25
Introduction to SVG — Class will explore the building blocks of Scalable Vector Graphics (SVG) and learn the basic elements. In class, we will manually build multiple some graphics.
Oct 2
Introduction to D3 — Class will cover an introduction to D3 for manipulating the DOM. We will create SVGs from scratch, and then add data to create basic charts.
Oct 9
Making Charts in D3 — Class will cover how to iterate through a dataset, like an array or object. We will then make some more charts with d3, such as a bubble chart, donut chart or bar chart.
Oct 16
Animation in D3 — class will cover basic animation methods, parsing CSV data, and additional D3 methods.
Oct 23
For Loops — Class will cover how to iterate through data using For Loops, and cover other syntax/operators that might still seem mysterious to people.
Oct 30
Workflow and Github — Class will cover the process and how to structure some basic programs based on the subjects covered in previous classes. Practical guidelines to keeping code clean, logical and well-commented. Introduction to GitHub for posting future assignments.
Nov 6
APIs — Class will cover jQuery and AJAX requests for querying web services for JSON data. Then we will parse the data, and display elements in the DOM. Class will also include an in-class written test on parsing JSON.
Nov 13
Learning the Terminal — Class will learn about the command-line interface and how to navigate around the computer using the Terminal program. Also, a tutorial on Regular Expressions (RegEx).
Nov 20
Prototyping and OOP — Class will cover some of the foundations to prototypical languages and object oriented programming. How to store functions in variables, instantiate objects, object inheritance, polymorphism. How to use libraries which have their own variable scope. We will also cover some basic JavaScript coding patterns.
Nov 27
Thanksgiving Break — No class today.
Dec 4
Some D3 Tips — Upon request from the class, this session will cover some more D3 lessons, like adding tooltips and creating event structures.
Dec 11
Putting it all together — Class will cover how to incorporate a project into a website in a real-world scenario. Using AJAX to query data, loops to iterate through the data, and a third-party library to display the data.