A modern logo for a modern class

What we doing here?

This is a course about making data-y, graphics-y things for the internet. We are going hard on the future, here.

Where is “here?”

Jonathan Soma: js4571@columbia.edu, @dangerscarf

Spring 2012, Columbia Graduate School of Journalism

Tuesdays, 2:30-5PM

Zoom office hours available via calendly

Syllabus

Week 1: HTML/CSS build systems

An introduction to build systems, automated pipelines for getting your content on the web. We’ll use pandoc to produce web pages from Jupyter Notebooks. Customization comes from HTML templates and a CSS framework or two. We’ll also leave the warm embrace of pip for the Wild West of npm.

portfolio-autopublish will give us a hand to update our website whenever we push a change to the repo (courtesy GitHub Actions). To make autopublish do what we want, we’ll create a few issues and make unreasonable demands of the repo owner.

Output

  • Customized portfolio website via autopublish build system
  • Project walkthrough/tutorial page sourced from a Jupyter Notebook

Week 2: Intro to scrollytelling

Wait, is it 2012 all over again? We’ll tackle scrollytelling, the scourage of usability and darling of designers. This session will focus on image-based transitions and stacks, not the D3-whiz-bang version.

We’ll also review our bottlejack websites and see what needs improving, along with doing a little maintenance on our terminals.

Output

  • A fancy-looking scrollytelling page to add to your portfolio

Tutorial

Week 3: Svelte web apps

I typically teach webapps using Flask (Python) with a SQL backend, but we might as well go all-in on JavaScript. This week we’ll learn to create web apps, which encompasses everything from browsable databases to interactive calculators.

Output

  • A custom web app using the dataset of your choice

Tutorial

  • Svelte, a web application framework for JavaScript, which is like a nicer Vue which is like a nicer React
  • Flask, a web application framework for Python
  • Dollars for docs, an age-old example of a webapp for news (but not Svelte!)

Week 4: Intro to D3

Imagine if the most beautiful idea in data visualization was married wit the least useable interface. Or don’t imagine, and just go use D3! It’s a wreck, but a loveable, constantly-requested one.

Week 5: ai2html

ai2html is a magic tool that exports responsive visuals from Illustrator to HTML. More or less every newsroom with a graphics desk uses ai2html.

Week 6: Blender (+ 3D scrollytelling!)

Week 7: More D3

Week 8: Force Diagrams (D3)

Week 9: Scrollytelling with D3

Week 10: Radial diagrams with D3

Other topics

  • Observable.js (sigh)
  • Photogrammetry
  • Text-based games with Twine
  • Canvas
  • WebGL
  • GreenSock
  • Netlify
  • Linting
  • Three.js
  • Figma