MACS 305001 - Computing for the Social Sciences

  • Instructor: Benjamin Soltoff, Lecturer in Computational Social Science
  • Teaching assistant: Patrick Thelen
  • Meeting day/time: MTuWTh 10-12pm (Haskell Hall 315)
  • Online course discussion: GitHub discussion repo
  • Office hours:
    • Benjamin: TuTh 1-2pm (McGiffert House 209)
    • Patrick: MW 2-3pm, F 9-11am (Regenstein Library, A level)
  • Prerequisites: None
  • Requirements: Bring your own laptop

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
  • Generate reproducible research with R Markdown
  • Implement statistical learning algorithms
  • Utilize cross validation methods
  • 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
  • Implement programs via distributed computing platforms
  • Create interactive web pages using flexdashboard and Shiny

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

Upcoming Classes