Course Syllabus

The goal of this course is to provide you with the tools to build data-driven interactive systems and explore the new opportunities enabled by this data through a combination of guest lectures, discussion of current literature, and practical skills development. Over the course of the semester, you will learn about data science and the entire data pipeline from collecting and analyzing to interacting with data.

This course requires comfort with programming, as required projects make use of (at a minimum) python, sql, css, and javascript (including D3). A series of "project bytes" help to lay the groundwork for a final larger group project.

The learning goals of the course are as follows:

  • To introduce basic concepts in data collection including data formats, parsing and sources of data
  • To introduce common problems with data such as structural problems, outliers, incomplete data, and dirty data
  • To introduce basic concepts in data interpretation including feature generation, statistical analysis and classification
  • To introduce concepts in data visualization including what makes a good visualization and the use of interaction in visualization
  • To provide practical applied examples of the data pipeline through an examination of current literature
  • To provide hands on experience with creating data driven applications and a produce a portfolio of such applications

Prerequisites:

The class will involve programming and debugging. If required by your background, it is possible to minimize the programming you do for projects (in which case you will be expected to spend more time on other factors such as beautiful visual designs). However, you should not take the course if you find programming or debugging extremely difficult because you will have to master several very different programming languages/concepts in very short order (projects make use use of web programming frameworks including Flask, Bootstrap, Ajax, jQuery, D3, Google Appspot; and multiple languages including Python, Javascript and SQL). That being said, the assignments that require these will have useful resources for brushing up on the topics.

Projects:

The course is project oriented. It includes a large final self-defined project along with 5 smaller "project bytes" designed to provide the stepping stones needed to complete the final project. Tentative due dates for these projects can be found at the bottom of this syllabus under the 'Course Summary' heading. Your work will be evaluated relative to your background and level of effort. This is a graduate class, and the assumption is that you are a mature and motivated student, and that you will define your work so that you learn and grow, given your background. Students who are taking this course as a part of a technical requirement (such as the computer science course requirement in the HCI PhD) will need to do more advanced or ambitious projects, and should consult with the instructor to make sure they are meeting this bar.

All bytes are to be done as individual work. It is expected that students may assist each other with conceptual issues, but not provide code. If you use example code, you must explicitly acknowledge this in your assignment submission. If you are unsure about these boundaries, ask. The larger project is to be done in groups of two or larger. 

Some of the specific skills that will be covered in projects include:

  • Display data from an API (such as the twitter API) on a website you create
  • Create a mashup of data from multiple web APIs
  • Create an interactive visualization of a data set
  • Answer a series of intriguing questions from both the data and corresponding visualizations

Late projects will be penalized 20% per day.

Quizzes:

There will be a few in-class quizzes covering the lecture materials and readings. There is no midterm or final.

Course Materials:

Readings will be made available on this CMU Canvas site. The following books are recommended:

Interactive Data Visualization for the Web (Free online version

Doing Data Science (Schutt & O'Neil) 

These books may also be useful:

Visualize This (Nathan Yau) (uses R and Python)

Programming Google App Engine, Charles Severance (uses Python, plus add-ons like JavaScript)

Python for Data Analysis, Wes McKinney (Python) 

List of Topics Covered:

Week Date Category Topic
1

8/28/2018

Course Introduction Data Pipeline
1

8/30/2018

Exploratory Data Analysis Asking a Question
2

9/4/2018

Exploratory Data Analysis Data Quality
2

9/6/2018

Exploratory Data Analysis Data Sampling
3

9/11/2018

Exploratory Data Analysis Database Storage
3

9/13/2018

Exploratory Data Analysis Database Retrieval 
4

9/18/2018

Exploratory Data Analysis Ethics of Exploring Data
4

9/20/2018

Human Centered Methods Ubiquitous Self 
5

9/25/2018

Human Centered Methods Ubiquitous Self
5

9/27/2018

Intro to Visualization Overview of field
6

10/2/2018

Intro to Visualization Intro to Tableau
6

10/4/2018

Human Centered Methods Ubiquitous Self
7

10/9/2018

Exploratory Data Analysis Statistical Methods
7

10/11/2018

Machine Learning Overview
8

10/16/2018

Machine Learning Ethics
8

10/18/2018

Human Centered Methods Crowd Sourcing
9

10/23/2018

Human Centered Methods Ethics of HC Data
9

10/25/2018

Human Centered Methods Crowd Sourcing
10

10/30/2018

Research Methods Controlled Experiments
10

11/1/2018

Research Methods Data from Experiments
11

11/6/2018

Advanced Visualization Perception, Cognition, and Color
11

11/8/2018

Advanced Visualization

Multi-dimensional Data Visualization

12

11/13/2018

Advanced Visualization

Design Guidelines

12

11/15/2018

Advanced Visualization Interaction
13

11/20/2018

Advanced Visualization

Ethics of Visualization

13

11/22/2018

No Class - Holiday
14

11/27/2018

Advanced Visualization

Storytelling with Data

14

11/29/2018

Advanced Visualization

Advanced Vis Topic TBD

15

12/4/2018

Final Presentation
15

12/6/2018

Final Presentation

Concepts

  • Structured vs unstructured data
  • Dealing with heterogeneous data
  • Sampling and Bias in Data Collection
  • Sensed Data
  • Mobile Data
  • Data transformation and analysis
  • Information Visualization
  • Current research in information driven interfaces

Skills

  • Getting Web data
  • Dealing with APIs and Oauth
  • Getting access to mobile data
  • Common data formats
  • Data parsing
  • Common problems with data
  • Tools for analyzing data
  • Tools for visualizing data

Readings and Discussion:

You will be expected to read assigned readings before the lecture they pertain to. These may include chapters drawn from textbooks about data, or readings about the research literature. To incentive this, each student will be required to make at least two relevant postings to the discussion group before the class on which each reading is due.

Grades:

The tentative breakdown for grading is below. As a reminder, here is the university policy on academic integrity.

60% Project Bytes 
30% Final Project
10% Quizzes

Course Summary:

Date Details Due