This was CS 205

Lecture: Tuesday, Dec. 6, 2016

  1. Google Slides: This was CS 205
  2. Final Project Updates
  3. Your formal feedback: ICES forms

Experience 13: Workbook to Web, Publishing Your Content

Lecture: Tuesday, Nov. 29, 2016

  1. Informal Final Project Updates
  2. Merge today's git branch:
    git fetch release
    git merge release/demo_publish master -m "merge"
  3. Google Slides: Social Media Tags + Publishing Your Work

Mid-week Homework (Complete before lecture on Thursday)

Final Project Milestone #1: Make sure you come to class ready to discuss your project and the data you've gathered with the class.

Lecture: Thursday, Dec. 1, 2016

  1. Final Project Updates
  2. Merge today's git branch:
    git fetch release
    git merge release/demo_clustering master -m "merge"
  3. Google Slides: Clustering

Experience 12: Geographical Visualization + Solution

Lecture: Tuesday, Nov. 15, 2016

  1. Project #2 Presentations
  2. Merge today's git branch:
    git fetch release
    git merge release/demo_olympics master -m "merge"
  3. Google Slides: Map Projections Using d3.js
  4. d3-legend by Susie Lu

Mid-week Homework (Complete before lecture on Thursday)

Final Project Proposal: Complete a proposal for your final course project. Your final project is a solo project and should be specific to your field, personal interest, or your favorite area covered in CS 205. The only requirement is that it must involve some form of data processing and must have a d3.js visualization. The proposal should be at least half a page and printed out, to be handed in at the beginning of class on Thursday.

Lecture: Thursday, Nov. 17, 2016

  1. Google Slides: Analytics
  2. Data from Analytics: ga_gened_checkboxes.csv, ga_gened_mouseovers.csv
  3. Final Project Discussions
    • Milestone #1 (Data): Thursday, Dec. 1, start of class
    • Milestone #2 (Draft Working Visualization): Tuesday, Dec. 5, start of class
    • Early Presentations: Friday, Dec. 9, 11am
    • Standard Presentations: Thursday, Dec. 15, 7pm

Experience 11: Geographical Data/Visualizations + Google Maps

Lecture: Tuesday, Nov. 8, 2016

  1. Project #2 Updates
  2. Merge today's git branch:
    git fetch release
    git merge release/demo_cumtd_gmaps master -m "merge"
  3. Google Slides: CUMTD + Google Maps

Mid-week Homework (Complete before lecture on Thursday)

Complete the second milestone in Project #2. Be ready to present when you come to class on Thursday!


Lecture: Tuesday, Nov. 10, 2016

  1. Project #2 Updates
  2. Merge today's git branch:
    git fetch release
    git merge release/demo_interactive_d3 master -m "merge"
  3. Towards Interactive Visualizations

Weekend Homework (Complete before lecture on Tuesday)

Complete Project #2. Be ready to present when you come to class on Thursday!

Experience 10: CUMTD

Lecture: Tuesday, Nov. 1, 2016

  1. Get your free CUMTD API developer key:
    • Visit https://developer.cumtd.com/, scrolling down to nearly the bottom until you see the header Get an API Key.
    • Fill out a name and valid e-mail address. (I used by @illinois.edu address.)
    • Check your e-mail and click the link in your e-mail to activate the key. The key must be activated in order to work.
    • In your CS 205 Workbook, navigate into the static directory, then into the keys directory, and open cumtd.txt. Copy and paste your key into cumtd.txt (this file will be used every time we make a CUMTD API request).

  2. Merge today's git branch:
    git fetch release
    git merge release/exp_cumtd master -m "merge"
  3. Lecture Handout (PDF)

Mid-week Homework (Complete before lecture on Thursday)

Complete Activity 11: Using the CUMTD API.


Lecture: Tuesday, Nov. 3, 2016

  1. Form project groups of 2-5 students, for Project #2
  2. Merge today's git branch:
    git fetch release
    git merge release/project_two master -m "merge"

Weekend Homework (Complete before lecture on Tuesday)

Complete the first milestone in Project #2. Be ready to present when you come to class on Tuesday!

Experience 9: Graphs w/ Machine Learning and Simulation

Lecture: Tuesday, Oct. 25, 2016

  1. Merge today's git branch:
    git fetch release
    git merge release/exp_markov master -m "merge"
  2. Google Slides: Machine Learning with Simulation and Markov Chains

Mid-week Homework (Complete before lecture on Thursday)

Complete Activity 10: Simulation of a State Tree.


Lecture: Thursday, Oct. 27, 2016

  1. Merge today's git branch:
    git fetch release
    git merge release/exp_googleDistMatrix master -m "merge"
  2. Google Slides: JSON-based Datasets (using Google Distance Matrix)

Weekend Homework (Complete before lecture on Tuesday)

Ensure you are caught up on all activities (they are all due Tuesday, Nov. 1), finish creating the graph from exp_googleDistMatrix (many of you finished in lecture on Thursday, make sure you check in your work and finish it if you haven't), and I'll send an e-mail about getting you set up on CUMTD that you'll need to do before lecture on Tuesday!

No office hours on Oct. 28, regular office hours on Oct. 31.

Have a great and safe Halloween!

Experience 8: Graphs and Tic-tac-toe

Lecture: Tuesday, Oct. 18, 2016

  1. Merge today's git branch:
    git fetch release
    git merge release/demo_tictactoe master -m "merge"
  2. Tic-tac-toe (Google Slides)
  3. Lecture Handout: Tic-tac-toe

Mid-week Homework (Complete before lecture on Thursday)

Complete Activity 8: Interactive Storytelling w/ Sentiment Analysis.


Lecture: Thursday, Oct. 20, 2016

  1. Merge today's git branch:
    git fetch release
    git merge release/demo_tictactoe2 master -m "merge"
  2. Graph 2: Depth First and Breadth First Search (Google Slides)

Weekend Homework (Complete before lecture on Tuesday)

Complete Activity 9: Pathfinding in Interactive Storytelling

Experience 7: Wordnets and Graphs

Lecture: Tuesday, Oct. 11, 2016

  1. project_uiuc presentations!
  2. Merge today's git branch:
    git fetch release
    git merge release/demo_wordnet master -m "merge"
  3. NLP: Review of Topics and NLTK Word Nets (Google Slides)

Lecture: Thursday, Oct. 13, 2016

  1. Install networkx, a graph library for Python:
    conda install networkx
  2. Merge today's git branch:
    git fetch release
    git merge release/lecture_oct13 master -m "merge"
  3. Lecture Handout: Intro to Graphs

Weekend Homework (Complete before lecture on Tuesday)

Complete Activity 7: Interactive Storytelling. (This activity involves creative and programming elements, which may result in it taking far longer than a regular activity.)

Experience 6: Text Similarity

Lecture: Tuesday, Oct. 4, 2016

  1. Install numpy by running the following command:
    conda install numpy
  2. Merge today's git branch:
    git fetch release
    git merge release/demo_documentSim master -m "merge"
  3. Lecture Handout (PDF)
  4. Text Similarity (Google Slides)

Lecture: Thursday, Oct. 6, 2016

  1. Merge today's git branch:
    git fetch release
    git merge release/master master -m "merge"
    git merge release/demo_peopleInHungerGames master -m "merge"
  2. Lecture Handout (PDF)
  3. NLP: Part of Speech (POS) and Named Entity Recognition (NER) with Sentiment Analysis

Weekend Homework

This weekend will be the last weekend dedicated to Project #1. We will present final versions of Project #1 in class on Tuesday!

Experience 5: NLP

Lecture: Tuesday, Sept. 27, 2016

  1. Visualizing Literature (Google Slides)

Lecture: Thursday, Sept. 29, 2016

  1. Merge today's git branch:
    git fetch release
    git merge release/demo_textCleaning master -m "merge"
  2. Install the NLTK package and libraries by running these commands from inside your workbook directory:
    conda install nltk
    python install_nltk_deps.py
  3. Conversation: Informal early feedback on CS 205
  4. Continuing w/ Cinda's Visualizing Literature (Google Slides)

Experience 4: GPA Visualizations

Lecture: Tuesday, Sept. 20, 2016

  1. Merge today's git branch:
    git fetch release
    git merge release/demo_gpaDist2 master -m "merge"
  2. Lecture Handout: PDF

Mid-week Homework (Complete before lecture on Thursday)

  1. Prepare a high-quality hand-drawn visualization with your partner for Project #1, ready to present on Thursday. The requirements for this visualization are the same as Activity 4 and Activity 6.

Lecture: Thursday, Sept. 22, 2016

  1. Merge today's git branches:
    git fetch release
    git merge release/demo_football_adam master -m "merge"
    git merge release/demo_football_ashley master -m "merge"
  2. Lecture Handout: PDF

Experience 3: Grades at UIUC

Data Source

This week's dataset is the grade for every course offered at Illinois between 2010-2014. Some classes (where there are 20 or fewer studnets or all the students receive the same grade) are marked with N/A.

This dataset was made public by Illinois as part of FOIA #15-173 and FOIA #16-456:


Lecture: Tuesday, Sept. 13, 2016

  1. Merge today's git branch:
    git fetch release
    git merge release/demo_gpaDist master -m "merge"
  2. Lecture Handout: PDF

Mid-week Homework (Complete before lecture on Thursday)

  1. Complete Activity 6: Second Visualization Design

Lecture: Thursday, Sept. 15, 2016

  1. Make sure you merged Tuesday's branch:
    git fetch release
    git merge release/demo_gpaDist master -m "merge"
  2. Reviewing d3.js slides: Overview of d3.js (Google Slides)

Experience 2: Every Football Game Ever Played at UIUC

Data Source

We continue using Illini-centric datasets to explore data. This week, our dataset contains every football game played by the Illini from the 1892 football season through last season (2015) — over 120 years of football games!


Lecture: Tuesday, Sept. 6, 2016

  1. Merge today's git branch:
    git fetch release
    git merge release/demo_studentGrades master -m "merge"
  2. Lecture Slides: Overview of d3.js (Google Slides)

Mid-week Homework (Complete before lecture on Thursday)

  1. Complete Activity 4: First Visualization Design

Lecture: Tuesday, Sept. 8, 2016

  1. Merge today's git branch:
    git fetch release
    git merge release/exp_footballStreak master -m "merge"
  2. Lecture Slides: exp_footballStreak (Google Slides)

Weekend Homework (Complete before lecture on Tuesday)

  1. Complete Activity 5: First Steps with d3.js

Experience 1: Majors at UIUC

Data Source

This week we will focus on the demographics for each department/major at The University of Illinois. The Excel file lists every department for each year in 2005-2015:


Lecture: Tuesday, August 30, 2016

  1. Lecture Handout (PDF)
  2. Merge today's git branch to your workbook by running the following inside of your CS 205 workbook directory (on a command line):
       git fetch release
       git merge release/demo_exp1 master -m "merge"

Mid-week Homework (Complete before lecture on Thursday)

  1. Complete Activity 2: Gender Diversity at Illinois

Lecture: Thursday, Sept. 1, 2016

  1. Merge today's git branch:
    git fetch release
    git merge release/demo_demographics master -m "merge"
  2. Install the Python module flask via the following command:
    conda install flask
  3. Inside of the CS 205 workbook directory (not any activity), start the workbook:
    python workbook.py
  4. Navigate your browser to 127.0.0.1:5000 to view your CS 205 workbook
  5. Lecture Slides: Google Slides

Weekend Homework (Complete before lecture on Tuesday)

  1. Complete Activity 3: Explore Visual Encodings

Experience 0: Welcome to CS 205!

Lecture: Tuesday, August 23, 2016

Welcome to CS 205 (offered as CS 199, Section 205)! Bring your laptop to lecture and we'll get to know each other on the first day of class.

  1. Lecture Handout (PDF)
  2. Let us get to know each other: Google Sheet
  3. Previous work: GPAs of Every Course at The University of Illinois

Mid-week Homework (Complete before lecture on Thursday)

  1. Create your engr.illinois git repository for CS 205.
  2. Complete Activity 0: A Refreshing Program, where you'll refresh your knowledge on basic programming in the langauge of your choice. This will be turned in via your git repository.
  3. Install Python 3.5 on your laptop. Make sure to bring your laptop to class every day!
  4. Have a source code editor that you are comfortable to use. I personally like atom by github, but anything that can handle Python and JavaScript will work great.
  5. Join the CS 205 Mattermost community.

Lecture: Tuesday, August 25, 2016

  1. Lecture Handout (PDF)
  2. Merge today's git branch to your workbook by running the following inside of your CS 205 workbook directory (on a command line):
       git fetch release
       git merge release/demo_pokemon master -m "merge"
  3. Cleaned Data Set: "Let us get to know each other" (Google Sheet)
  4. A visualization of your most similar person — force directed graph visualization

Weekend Homework (Complete before lecture on Tuesday)

  1. Get comfortable with basic Python syntax by going through some/all of the web reosurces below (or others). In each of them, focus on learning the syntax for loops, conditionals, lists, and functions. CS 205 will help you with specifics of reading data, using libraries, etc.
    • codecademy's Learn Python: The first lesosn under each unit is free (shouldn't even need an account) and allows you to program right in your browser. The first lesson (~20 problems each) under Units 1, 2, 3, 4, and 5 are a great introduction to Python. Link: https://www.codecademy.com/learn/python
    • codecombat has created a web-based RPG-style game that requires learning Python to advance through the game. The main "campaign" is free and shouldn't even need an account. Link: https://codecombat.com/play
    • "Learn Python the Hard Way" is an online book that goes through Python via exercises of increasing difficulty. The online HTML-based book is free and there's no need for an account. Link: https://learnpythonthehardway.org/book/
    • "Welcome to Python for you and me" is another online book, more like a traditional text book, that guides you through basic Python topics. Link: http://pymbook.readthedocs.io/en/py3/
  2. Complete Activity 1: Explore Your Data