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. We will send PINs to add the class as spots become available. Students have 24 hours to register, so it may appear that the class is open. We cannot tell you your exact position on the waiting list, but we will try to give you an indication of whether it is likely that you will be able to register.

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 are acceptable. We follow the official Cornell academic calendar; 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 5.

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


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