MACS 305001 - Computing for the Social Sciences

All class meetings and office hours will be held on Zoom. Links to these meetings can be found on the Canvas site (UChicago authentication required).

  • Instructor: Benjamin Soltoff
  • Teaching Assistants
    • Dominique Janvier
    • Donghyun Kang
    • Deblina Mukherjee
  • Meeting day/time: TuTh 1-2:20pm
  • Online course discussion: GitHub discussion repo
  • Office hours
    • Benjamin: Tuesday 9-11am
    • Dominique: Thursday 4-6pm
    • Donghyun: Friday 1:30pm-3:30pm
    • Deb: Monday 6-8pm, Sunday 9:30-10:30am
  • Prerequisites: None
  • Requirements: Bring your own laptop
Example of student work using `sf`, `tidycensus`, and `ggplot2`

Figure 1: Example of student work using sf, tidycensus, and ggplot2

Course Description

This is an applied course for social scientists with little-to-no programming experience who wish to harness growing digital and computational resources. The focus of the course is on generating reproducible research through the use of programming languages and version control software. Major emphasis is placed on a pragmatic understanding of core principles of programming and packaged implementations of methods. Students will leave the course with basic computational skills implemented through many computational methods and approaches to social science; while students will not become expert programmers, they will gain the knowledge of how to adapt and expand these skills as they are presented with new questions, methods, and data.

Course Objectives

By the end of the course, students will:

  • Construct and execute basic programs in R using elementary programming techniques and tidyverse packages (e.g. loops, conditional statements, user-defined functions)
  • Apply stylistic principles of coding to generate reusable, interpretable code
  • Debug programs for errors
  • Identify and use external libraries to expand on base functions
  • Apply Git and GitHub workflows for version control
  • Implement best practices for reproducible research
  • Implement statistical learning algorithms
  • Visualize information and data using appropriate graphical techniques
  • Import data from files or the internet
  • Munge raw data into a tidy format
  • Scrape websites to collect data for analysis
  • Parse and analyze text documents

  1. aka ENST 20550/MACS 20500/CHDV 30511/MAPS 30500/PLSC 30235/SOCI 20278/SOCI 40176↩︎


Benjamin Soltoff

Assistant Instructional Professor in Computational Social Science

University of Chicago


Benjamin Soltoff is Assistant Instructional Professor & Assistant Director in the Masters in Computational Social Science program at the University of Chicago. He is a political scientist with concentrations in American government, political methodology, and law and courts. Additionally, he has training and experience in data science, big data analytics, and policy evaluation. He currently teaches courses in introductory programming, machine learning, social scientific research design, and data visualization.

Upcoming Classes

Getting data from the web: scraping

Practice scraping content from web pages using rvest.

Text analysis: fundamentals and sentiment analysis

Introduce methods for text data, structuring text data in R, and conducting exploratory analysis.

Text analysis: classification and topic modeling

Implement unsupervised and supervised learning methods for text data.