Data Journalism & Information Visualization

I was adjunct for this course at the Columbia Journalism School in the Spring 2012 semester. The course is taught by faculty of the Tow Center for Digital Journalism.

Course Website:

Course Description:
Over the course of the semester, students will develop hands-on skills in data journalism and information visualization, as well as the critical capacity to design and evaluate their own work and the work of others. The major work product of the class will be a significant data journalism project, which should incorporate aspects of data analysis, data visualization, and more traditional reporting techniques. Working in groups of 2-4, students will identify a story or stories that can be pursued at least in part through data analysis and visualization. Depending on the available skills, more complex projects involving mashups, real-time data and/or mobile applications will also be considered. During the course, students will be introduced to a wide variety of retrieval and analysis tools, but approaches taught may vary with the requirements of the selected projects. Issues of scope, feasibility and maintainability will also be addressed.

"Write Once, Access Anywhere" (aka "Device Independence with Mobile Web Applications")

This course was originally taught at the NYU Interactive Telecommunications Program Summer 2010 and Spring Semester 2011.

Course Website:

Course Description:
Mobile devices are now a vital part of our digital lives, yet they are splintering into a disparate set of platforms with complicated proprietary SDK's, making it difficult for application creators to reach the greatest potential audience. Mature web technologies such as HTML5, Javascript, and CSS3 are powerful alternatives for maintaining an open and interoperable future, and mobile web browsers are now capable of exposing their rich set of features with which to work. This course covers the fundamental aspects of developing and deploying online and offline applications for mobile devices based on these advanced browser capabilities. The course starts with a quick overview of the major mobile computing platforms and their native application development models. We then move on to developing web applications for mobile screens -- focusing on mobile browser capabilities and optimizing web applications for small touchscreens. Students learn how to use HTML5, CSS, and Javascript frameworks like JQuery to build applications that are virtually indistinguishable from platform-native applications. The class will also briefly cover the PhoneGap application framework, which allows developers to create cross-platform native applications, using web technologies, that access handset hardware capabilities (GPS, accelerometer, camera, etc.) These capabilities are typically reserved for applications developed with native platform SDK's. Introduction to Computational Media or a solid proficiency in basic programming concepts is required, and familiarity with web technologies is strongly encouraged.