MACS 305001 - Computing for the Social Sciences

  • Instructor: Benjamin Soltoff
  • Teaching Assistants
    • Wanitchaya (Mint) Poonpatanapricha
    • Ruben Rodriguez
    • Xiaogao Zhou
  • Meeting day/time: TuTh 12:30-1:50 (Stuart Hall 104)
  • Online course discussion: GitHub discussion repo
  • Open lab sessions
    • Th 2-3:20pm (Kent Chem Lab 102)
    • F 1:30-2:50pm (Saieh Hall of Economics 103)
  • Office hours:
    • Mint: M 9-11am (Regenstein Library)
    • Benjamin: M 1:30-3:30pm (McGiffert House 209)
    • Ruben: Tu 11-12pm (Pick Hall 507)
  • 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
  • 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

Introduce relational data structures, and practice working with factor columns.

Review the pipe, define a function, and practice writing and debugging functions.

Define a vector, review iterative operations, and practice using loops and map functions.