INFO 3300 - Data-driven Web Applications

This course will introduce students to working with data in the context of modern web applications. These include data representation with relational and non-relational databases, data mining to find patterns and make predictions, and graphical presentation for visualization.

Prerequisite: INFO 2300 is required because we will be working in a web environment. Writing web applications is about more than programming -- it's a complex ecosystem of technologies. Students will need to be familiar with Javascript, HTML, CSS, and client-server architectures. CS 2110 (object-oriented programming) is required for programming experience. If you have not taken one or both of these courses, be prepared to present a portfolio of previous project-based experience.

The Spring 2018 section is currently full. Register here for the waiting list.

Notes and "prompts" (pre-notes for upcoming classes) will be posted to GitHub. Assignments will be posted to CMS. Questions should go to Piazza.

Absences from class will be excused for compelling reasons, such as sports competitions or illness with appropriate documentation from the Athletic Dept or Gannett. A small number of absences for personal reasons such as interview travel. Classes immediately before University breaks are not optional. If you will not be able to make it to class, use this form to notify course staff. You must notify us before class or explain why you were unable to do so.

Syllabus [PDF]


A Layered Grammar of Graphics by Hadley Wickham. Due Monday, Feb 6.

Tidy Data by Hadley Wickham. Due Wednesday, Feb 15.


Book: d3.js in Action by Elijah Meeks. Not required, but a good resource, and very close to my approach to teaching d3.

Inspiration: Feltron reports, Explained Visually.

Javascript reference websites:

SVG reference:

It will be useful to have a webserver running locally on your computer. Here are some options:

Data Sources