Advanced Coding Interactives Fall 2015

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 are quickly becoming a necessary part of the vocabulary of students wishing to enhance their abilities in this expanding area of journalism.

Mastering coding

Sep 15
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).
Sep 22
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.
Sep 29
Introduction to JavaScript Variables and Arrays — Class will cover syntax, variables, operators, datatypes, concatenation, arrays, multidimensional arrays and displaying information in the console.
Oct 6
Objects — Class will cover JavaScript Object Notation (JSON) and how to both store and retrieve data using the different styles of notation (dot, square-bracket, and object literal).
Oct 13
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.
Oct 20
Introduction to SVG and Illustrator — 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 27
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.
Nov 3
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.
Nov 12
Animation in D3 — class will cover basic animation methods, parsing CSV data, and additional D3 methods.
Nov 19
APIs and scraping — 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 24
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.
Dec 3
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.
Dec 8
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.