Computing for Social Sciences, Winter 2015

Course Information
UPDATED for Winter 2015!
  • Instructors:
  • Teaching Assistants:
    • Hunter Owens (howens@)
    • Yujia Pan (yujiap@)
  • Meeting day and time: Tuesday/Thursday 1:30pm-2:50pm,
    Harper Memorial Library 140 NOTE: New location
  • Online course discussion: Piazza website
  • Open Lab Session: Wednesday 6-7:30pm, CSIL Room 3 (Room reserved until midnight)
  • Office Hours: Weekly TA sessions, by appointment, or with J. Evans, Th. 9-11am, SSR 420
  • Additional TA Hours: Monday 6:30-7:30pm, CSIL Room 4 NOTE: New time and new location
  • Prerequisites: None
  • Requirements: BYO Laptop1

Learn to scrape, parse, analyze, and visualize data for exploratory analysis and quantitative research. No previous programming knowledge is assumed.

Course Goals and Topics

This is an for-credit applied course focusing on a pragmatic understanding of programming languages and software libraries, specifically oriented towards students in the social sciences and humanities with emerging research projects requiring basic programming skills.

Students in the course will learn to write programs in the (open-source) interpreted programming language Python, as well as learning to use databases and to interact with a wide variety of existing software libraries. The course's goals are to demonstrate that data can be created, analyzed and visualized by a diversity of methods, and to encourage students not to be intimidated by unfamiliar computer programming dialects and interfaces. The course will introduce methods required to parse text files, scrape data from other sources, write structured programs for statistical analysis, create and query databases, simulate social processes, visualize datasets, conduct network analysis, and assemble multiple processes into software "pipelines". As such, the course's goals include unshackling academic researchers from the constraints of commercial, general-purpose statistics/GIS software and to free them from the limitations of working with pre-existing and pre-formatted data sets.

Assignments and Help Sessions

Each week's lectures will be accompanied by a take-home programming assignment which will be due before the following week's class on Tuesday. Weekly tutoring hours will be provided for those requiring extra guidance on the assignment. The programming assignments will often be cumulative and build on one another, so completing the functionality of each assignment is crucial.

This year we will be using Piazza for class discussion. Rather than emailing questions to the teaching staff directly, we encourage you to post your questions there.


The course grade will be composed of three parts: participation (10%); homework (50%); and a final project (40%). Participation will be primarily evaluated based on your participation in Piazza where you can ask and answer questions about anything course-related. Homework will be given full credit if completed on-time, will be discounted 10% each class period that they remain incomplete. If you do not complete the assignment on-time, you will need to inform us to look at it again for re-evaluation. If you are having a hard time...let us know on Piazza or in person at any of the study sessions. We hope that you will support each other in solving problems associated with the homework, but each student must understand, complete and "turn in" their own. Undergraduate student final projects will involve creation of a flexible, interactive, web-presentable project that either performs (1) network analysis on Facebook data; (2) content analysis on Twitter data; or (3) simulation analysis on city portal (e.g., crime) data. Graduate student final projects will be flexible, interactive, web-presentable projects of their own design that solve a substantial research problem. (Undergraduates can petition to perform a "graduate" project). Undergraduate and graduate projects can be performed by individuals or pairs of students. Evaluation will be fair; more will be expected from pairs than individuals.

Winter 2015 Schedule

Week 1
Jan 6th/8th
Programming, Python Fundamentals and an Introduction to Computational Social Science
Week 2
Jan 13th/15th
Code Reuse and Tuning

Week 3
Jan 20th/22nd
Data and Information Visualization
Week 4
Jan 27th/29th
Computer Fundamentals
Week 5
Feb 3rd/5th
Analysis pipelines
Week 6
Feb 10th/12th
Common Pipelines 1
Week 7
Feb 17th/19th
Common Pipelines 2
Week 8
Feb 24th/26th
Data warehousing
Week 9
Mar 3rd/5th
Week 10
Mar 10th
High performance computing
Final (March 19th) Hacker Fair
  • (Thu 3/19/2015) Undergraduates (set projects); Graduates (personal projects)


  • Text editors: you should find a scripting editor you enjoy using. Our recommendation for beginners is Sublime Text.

Local Meetups

UPDATED for 2015!

One easy, ethnographically-oriented way to help adapt to contemporary computing culture is to crash one of Chicago's many friendly user groups and meetups, which typically offer opportunities for collaboration, free pizza, and PowerPoint presentations in various campus locations and downtown office spaces.

  • Open Gov Hack Night is an unparalleled mashup of civic-minded developers, municipal and regional stakeholders, journalists, and moonlighting grad students. Meets at the 8th floor of the Merchandise Mart downtown.
  • Chicago Woman Developers Meetup: weekly hack nights downtown.
  • ChiPy is Chicago's Python user group, where every meeting is "the best meeting ever", and which has recently been held at the offices of Threadless, The Onion, and Groupon.
  • UChicago Hack Night meets every Friday night in Ryerson 255. Also on Facebook.
  • ACM-W Study Break: the UChicago Chapter of the Association for Computing Machinery‚Äôs Committee on Women has study breaks every alternate Tuesday.

1 Students will be required to install Python distributions and other software on their own computers, in a Week 3 "installathon".