Advanced Coding Interactives Fall 2017

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 computational literacy to construct interactive online stories such as data visualizations, infographics, maps, multimedia packages, games or innumerable other types of projects students may conceive.

These skills and abilities allow students to think critically about how communicate on digital media platforms. 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.

Grading Policy

Grading will be made up of four areas:

Quizzes, class assignments, attendance: 33%
Mid-term project: 33%
Final Project: 34%

Quizzes and class assignments will be given on bCourses. The mid-term project is an interactive web feature built using tools and code learned in class (usually a D3 chart). The mid-term can be done with tutorial material, or materials from another class. The final project is a full web-page interactive news package feature showcasing a story. This can be done with tutorial material given from the professor, or preferably with real materials. Double-dipping with other classes is allowed. The final project ideas should be approved beforehand.

Mastering coding

Aug 29
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 5
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 12
Introduction to JavaScript Variables and Arrays — Class will cover syntax, variables, operators, datatypes, concatenation, arrays, multidimensional arrays and displaying information in the console.
Sep 19
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).
Sep 26
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 3
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 10
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 17
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 24
Animation in D3 — class will cover basic animation methods, parsing CSV data, and additional D3 methods.
Oct 31
Mapping in D3 — This class will cover basic mapping concepts and how to create cartographic maps in D3.
Nov 7
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.
Nov 14
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 21
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 28
Final Assignment — Instructions for turning in the final assignment for the class.