Below you will find core and elective classes offered by our Computation faculty in the AutumnWinter, and Spring quarters. We will continue to add relevant course descriptions for the 2019-2020 academic year as they are made available. Please note that course offerings, instructors, dates, and times are all subject to change.

Students are also welcome to pursue graduate courses in the Toyota Technological Institute, the Department of Computer Science, the Booth School of Business, the Harris School of Public Policy, the Committee on Computational Neuroscience, and elsewhere in the Division of Social Sciences, if they meet the relevant prerequisites, and after assuring that all curricular requirements in our Computation program are met.


Autumn Quarter


CAPP 30121 - Computer Science with Applications 1

Diogo Ferrari

This course is the first in a three-quarter sequence that teaches computational thinking and skills. The course will cover abstraction and decomposition, simple modeling, basic algorithms, and programming in Python. Applications from a wide variety of fields serve both as examples in lectures and as the basis for programming assignments. In recent offerings, students have written programs to simulate a model of housing segregation, determine the number of machines needed at a polling place, and analyze tweets from presidential debates.


MACS 30000 - Perspectives on Computational Analysis

Section 1 - Benjamin Soltoff

Section 2 - Jon Clindaniel

Massive digital traces of human behavior and ubiquitous computation have both extended and altered classical social science inquiry. This course surveys successful social science applications of computational approaches to the representation of complex data, information visualization, and model construction and estimation. We will reexamine the scientific method in the social sciences in context of both theory development and testing, exploring how computation and digital data enables new answers to classic investigations, the posing of novel questions, and new ethical challenges and opportunities. Students will review fundamental research designs such as observational studies and experiments, statistical summaries, visualization of data, and how computational opportunities can enhance them. The focus of the course is on exploring the wide range of contemporary approaches to computational social science, with practical programming assignments to train with these approaches.


MACS 30500 - Computing for the Social Sciences

Benjamin Soltoff

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. More information can be found at https://cfss.uchicago.edu.


MACS 30301 - Introduction to Bayesian Statistics

Diogo Ferrari

The goal of this course is to give students an overview of the theory and methods for data analyses using the Bayesian paradigm. Topics include: (1) foundations of Bayesian inference, (2) development of Bayesian models and prior choices (3) analytical and simulation techniques for posterior estimation (4) model choice and diagnostics (5) sensitivity analysis, (6) an introduction to Monte Carlo Markov Chain (MCMC) simulations (7) intro to commonly used Bayesian estimation packages (R/JAGS/Bugs) (8) application of Bayesian analysis in real world and Political Science problems.


MACS 40400 - Computation and the Identification of Cultural Patterns

Jon Clindaniel

Culture is increasingly becoming digital, making it more and more necessary for those in both academia and industry to use computational strategies to effectively identify, understand, and (in the case of industry) capitalize on emerging cultural patterns. In this course, students will explore interdisciplinary approaches for defining and mobilizing the concept of “culture” in their computational analyses, drawing on relevant literature from the fields of Anthropology, Psychology and Sociology. Additionally, they will receive hands-on experience applying computational approaches to identify and analyze a wide range of cultural patterns using the Python programming language. For instance, students will learn to identify emerging social movements using social media data, predict the next fashion trends, and even decipher ancient symbols using archaeological databases.


MACS 40800 - Unsupervised Machine Learning

Philip Waggoner

Though armed with rich datasets, many researchers are confronted with a lack of understanding of the structure of their data. Unsupervised machine learning offers researchers a suite of computational tools for uncovering the underlying, non-random structure that is assumed to exist in feature space. This course will cover prominent unsupervised machine learning techniques such as clustering, item response theory (IRT) models, multidimensional scaling, factor analysis, and other dimension reduction techniques. Further, mechanics involved in unsupervised machine learning will also be covered, such as diagnosing clusterability of a feature space (visually and mathematically), measures of distance and distance matrices, different algorithms based on data size (k-medoids/k-means vs. PAM vs. CLARA), visualizing patterns, and methods of validation (e.g., internal vs. external validation).


MACS 40500 - Computational Methods for American Politics

Philip Waggoner

In this class, students will be introduced to several computational techniques aimed at exploring, understanding, and diagnosing substantive American political phenomena. Rather than focus on derivations and proofs of models, the main focus of the course will be applying and diagnosing model fit, along with computation and application in R. The goal of the class is twofold: first, to offer students a methodological toolbox to tackle complex questions of interest in the social sciences. The second goal, then, is to prepare students for applied quantitative research, offering modern data science techniques and computational training in the service of understanding and predicting American political behavior in a range of contexts. The course will be a combination seminar/applied, where we will read and discuss the latest developments as well as classical works related to a week’s topic, but also apply the concepts in R.


MACS 54000 - Introduction to Spatial Data Science

Luc Anselin, Marynia Kolak

Spatial data science consists of a collection of concepts and methods drawn from both statistics and computer science that deal with accessing, manipulating, visualizing, exploring and reasoning about geographical data. The course introduces the types of spatial data relevant in social science inquiry and reviews a range of methods to explore these data. Topics covered include formal spatial data structures, geovisualization and visual analytics, rate smoothing, spatial autocorrelation, cluster detection and spatial data mining. An important aspect of the course is to learn and apply open source software tools, including R and GeoDa.

Back to Top


Winter Quarter  


CAPP 30122 - Computer Science with Applications 2

Diogo Ferrari

This course is the second in a three-quarter sequence that teaches computational thinking and skills to students from a wide-variety of fields. Lectures cover topics in (1) data representation, (2) relational databases, (3) data cleaning and presentation, (4) shell scripting, (5) data structures, such as graphs, hash tables, and heaps, and (6) recursion. Applications and datasets from a wide variety of fields serve both as examples in lectures and as the basis for programming assignments. In recent offerings, students have written a course search engine and a system to do speaker identification.

Students will program in Python and do a group programming project.


MACS 30100 - Perspectives on Computational Modeling

Philip Waggoner

Students are often well trained in the details of specific models relevant to their respective fields. This course presents a generic definition of a model in the social sciences as well as a taxonomy of the wide range of different types of models used. We then cover principles of model building, including static versus dynamic models, linear versus nonlinear, simple versus complicated, and identification versus overfitting. Major types of models implemented in this course include linear and nonlinear regression, machine learning (e.g., parametric, Bayesian and nonparametric), agent-based and structural models. We will also explore the wide range of computational strategies used to estimate models from data and make statistical and causal inference. Students will study both good examples and bad examples of modeling and estimation and will have the opportunity to build their own model in their field of interest.


MACS 30150 - Perspectives on Computational Modeling for Economics

Rick Evans

Students are often well trained in the details of specific models relevant to their respective fields. This course presents a generic definition of a model in the social sciences as well as a taxonomy of the wide range of different types of models used. We then cover principles of model building, including static versus dynamic models, linear versus nonlinear, simple versus complicated, and identification versus overfitting. Major types of models implemented in this course include linear and nonlinear regression, machine learning (e.g., parametric, Bayesian and nonparametric), agent-based and structural models.We will also explore the wide range of computational strategies used to estimate models from data and make statistical and causal inference. Students will study both good examples and bad examples of modeling and estimation and will have the opportunity to build their own model in their field of interest. This course will be specifically tailored to students concentrating in Economics.


MACS 40200 - Structural Estimation

Rick Evans

Structural estimation refers to the estimation of model parameters by taking a theoretical model directly to the data. (This is in contrast to reduced form estimation, which often entails estimating a linear model that is either explicitly or implicitly a simplified, linear version of a related theoretical model). This class will survey a range of structural models, then teach students estimation approaches including the generalized method of moments approach and maximum likelihood estimation. We will then examine the strengths and weaknesses of both approaches in a series of examples from the fields of economics, political science, and sociology. We will also learn the simulated method of moments approach. We will explore applications across the social sciences.


MACS 40400 - Computation and the Identification of Cultural Patterns

Jon Clindaniel

Culture is increasingly becoming digital, making it more and more necessary for those in both academia and industry to use computational strategies to effectively identify, understand, and (in the case of industry) capitalize on emerging cultural patterns. In this course, students will explore interdisciplinary approaches for defining and mobilizing the concept of "culture" in their computational analyses, drawing on relevant literature from the fields of Anthropology, Psychology and Sociology. Additionally, they will receive hands-on experience applying computational approaches to identify and analyze a wide range of cultural patterns using the Python programming language. For instance, students will learn to identify emerging social movements using social media data, predict the next fashion trends, and even decipher ancient symbols using archaeological databases.


MACS 33002 - Introduction to Machine Learning

Philip Waggoner

This course will introduce students to the foundations of machine learning. Building on a mathematical foundation, we will cover everything needed for getting up and running with any computational research project from a machine learning perspective, including: the basics and mechanics of a model, sampling methods, training, testing and tuning, comparing supervised vs. unsupervised learning, regularization techniques, decision trees, neural networks (artificial and convolutional), and various other models and algorithms contributing to a solid foundation of machine learning. Prerequisites: prior statistical training (through regression, though ideally MLE/GLM); statistical computing (at least basic proficiency in R).


MACS 50100 - Introduction to Causal Inference

Guanglei Hong, Kazuo Yamaguchi

This course is designed for graduate students and advanced undergraduate students from the social sciences, education, public health science, public policy, social service administration, and statistics who are involved in quantitative research and are interested in studying causality. The goal of this course is to equip students with basic knowledge of and analytic skills in causal inference. Topics for the course will include the potential outcomes framework for causal inference; experimental and observational studies; identification assumptions for causal parameters; potential pitfalls of using ANCOVA to estimate a causal effect; propensity score based methods including matching, stratification, inverse-probability-of-treatment-weighting (IPTW), marginal mean weighting through stratification (MMWS), and doubly robust estimation; the instrumental variable (IV) method; regression discontinuity design (RDD) including sharp RDD and fuzzy RDD; difference in difference (DID) and generalized DID methods for cross-section and panel data, and fixed effects model. Intermediate Statistics or equivalent such as STAT 224/PBHS 324, PP 31301, BUS 41100, or SOC 30005 is a prerequisite. This course is a prerequisite for "Advanced Topics in Causal Inference" and "Mediation, moderation, and spillover effects."


MACS 60000 - Computational Content Analysis

James Evans

A vast expanse of information about what people do, know, think, and feel lies embedded in text, and more of the contemporary social world lives natively within electronic text than ever before. These textual traces range from collective activity on the web, social media, instant messaging and automatically transcribed YouTube videos to online transactions, medical records, digitized libraries and government intelligence. This supply of text has elicited demand for natural language processing and machine learning tools to filter, search, and translate text into valuable data. The course will survey and practically apply many of the most exciting computational approaches to text analysis, highlighting both supervised methods that extend old theories to new data and unsupervised techniques that discover hidden regularities worth theorizing. These will be examined and evaluated on their own merits, and relative to the validity and reliability concerns of classical content analysis, the interpretive concerns of qualitative content analysis, and the interactional concerns of conversation analysis. We will also consider how these approaches can be adapted to content beyond text, including audio, images, and video. We will simultaneously review recent research that uses these approaches to develop social insight by exploring (a) collective attention and reasoning through the content of communication; (b) social relationships through the process of communication; and (c) social states, roles, and moves identified through heterogeneous signals within communication. The course is structured around gaining understanding and experimenting with text analytical tools, deploying those tools and interpreting their output in the context of individual research projects, and assessment of contemporary research within this domain. Class discussion and assignments will focus on how to use, interpret, and combine computational techniques in the context of compelling social science research investigations.

Back to Top


Spring Quarter  


MACS 20500 – Computing for the Social Sciences

Benjamin Soltoff

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. More information can be found at https://cfss.uchicago.edu


MACS 30122 - Political Behavior and Computational Social Science

Diogo Ferrari

In this course, students will be introduced to a combination of topics and theories of political behavior. We will cover different approaches, including political psychology, political sociology, and rational choice behavioral models. The course will cover some methodological challenges to study attitudes and behavior, and how Computational Social Science techniques can help to overcome them. Students will have the chance to develop their own project, with instructor's guidance, and apply CSS approaches to study aspects of political behavior of their choice.

 


MACS 30123 - Large-Scale Computing for the Social Sciences

Jon Clindaniel

Computational social scientists increasingly need to grapple with data that is either too big for a single machine and/or code that is too resource intensive to process on a single machine. In this course, students will learn how to effectively scale their computational methods beyond their local machines. The focus of the course will be social scientific applications, ranging from training machine learning models on large economic time series to processing and analyzing social media data in real-time. Students will be introduced to several large-scale computing frameworks such as MPI, MapReduce, Spark, and OpenCL, with a special emphasis on employing these frameworks using cloud resources and the Python programming language.


MACS 30133 - Machine Learning for Political Analysis

Diogo Ferrari

This is an intermediate-to-advanced introduction to the mathematical and computational aspects of the core statistical and machine learning techniques. The goal is to equip students with a knowledge of the theoretical and practical aspects of four groups of machine learning methods which are widely used in applied research: (1) dimension reduction (PCA, MDS, and their extensions) (2) classification methods (SVM, Bayes classifiers, and other classification methods) (3) clustering procedures and density estimation (K-means, FMM, non- and semi-parametric Bayesian methods) (4) categorical data analysis (with brief introduction to probabilistic graphical models). The course includes applications in Political Science, such as FMM to estimate fraud in elections, PCA to construct indices to measure democracy, and text classification.


MACS 30200 - Perspectives on Computational Research

Section 1 - Philip Waggoner

Section 2 - Jon Clindaniel

This course focuses on applying computational methods to conducting social scientific research through a student-developed research project. Students will identify a research question of their own interest that involves a direct reference to social scientific theory, use of data, and a significant computational component. The students will collect data, develop, apply, and interpret statistical learning models, and generate a fully reproducible research paper. We will identify how computational methods can be used throughout the research process, from data collection and tidying, to exploration, visualization and modeling, to the final communication of results. The course will include modules on theoretical and practical considerations, including topics such as epistemological questions about research design, writing and critiquing papers, and additional computational tools for analysis.


MACS 30250 - Perspectives on Computational Research for Economics

Rick Evans

This course focuses on scaling up computational approaches to social science analysis and modeling with big data in context of opportunities afforded by high performance and cloud computing. We will begin by exploring various data structures encountered in social science research, how to deal with large or complex data storage and streaming data, and how to factor considerations of computational complexity into their analyses. We will also study social science applications of parallel computing, both on stand-alone machines and in supercomputing environments, to carry out complex computations. Students will learn to carry out parallel I/O and parallel computation on their own machines and on a cluster. We will also address API construction and access, and explore cloud configurations for social science research designs. We will also help students construct web-based outward facing data, analysis and visualization portals. Students will efficiently gather, structure, perform and present analysis on large-scale social science data. This course will be specifically tailored to students concentrating in Economics.


MACS 30500 - Computing for the Social Sciences

Benjamin Soltoff

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.


MACS 30500 – MA Research Commitment

James Evans

Student Initiated research and writing for the MA research component.


MACS 40100 - Big Data and Society

Benjamin Soltoff

The massive explosion of information produced by computers and sophisticated computational methods capable of harnessing this data to generate inferences has led to an increasingly data-driven society. Businesses, governments, and individuals seek to leverage this data to develop and market products, formulate policy, and improve the human condition. Computational approaches to decision making have become increasingly prevalent in domains such as criminal justice, education, employment, finance, and politics. While decision making based on data mining and algorithms has the capacity to improve society, critics argue that these approaches strengthen socioeconomic class divisions, constitute an invasion of privacy, or violate the civil rights of minority groups. This course will survey some of the major uses of big data in society and assess the potential ethical, moral, and legal implications of these models.


MACS 40300 - Open Research Methods

Rick Evans

The purpose of this course is to give students experience in the broad set of skills and tools for managing, collaborating on, and contributing to open source research projects. Transparency and replicability of research have received renewed emphasis in recent years due to the increased prevalence and sophistication of empirical and computational methods as well as the increased availability of large high frequency data sources. This course focuses on the open source programming languages of Python and R, but the principles could be applied to projects using any language. The course will present the common open source software development workflow as an efficient structure for collaborative academic research. We will learn Git and GitHub basic tools and methods. We will practice multiple levels of documentation ranging from in-code docstrings to full PDF and HTML documentation tools. Students will implement continuous integration testing and regression testing in their own open source repositories. And students will learn how to set an environment with specific library and package versions. We will also discuss methods for anonymizing proprietary data or creating synthetic datasets that can be used by the general public.


MACS 50000 - Computational Social Science Workshop

James Evans

High performance and cloud computing, massive digital traces of human behavior from ubiquitous sensors, and a growing suite of efficient model estimation, machine learning and simulation tools are not just extending classical social science inquiry, but transforming it to pose novel questions at larger and smaller scales. The Computational Social Science (CSS) Workshop is a weekly event that features this work, highlights associated skills and data, and explores the use of CSS in the world. The CSS Workshop alternates weekly between research workshops and professional workshops. The research workshops feature new CSS work from top faculty and advanced graduate students from UChicago and around the world, while professional workshops highlight useful skills and data (e.g., machine learning with Python's scikit-learn; the Twitter firehose API) and showcase practitioners using CSS in the government, industry and nonprofit sectors. Each quarter, the CSS Workshop also hosts a distinguished lecture, debate and dinner, and a student conference.


MACS 55000 - Spatial Regression Analysis

Pedro Amaral

This course covers statistical and econometric methods specifically geared to the problems of spatial dependence and spatial heterogeneity in cross-sectional data. The main objective of the course is to gain insight into the scope of spatial regression methods, to be able to apply them in an empirical setting, and to properly interpret the results of spatial regression analysis. While the focus is on spatial aspects, the types of methods covered have general validity in statistical practice. The course covers the specification of spatial regression models in order to incorporate spatial dependence and spatial heterogeneity, as well as different estimation methods and specification tests to detect the presence of spatial autocorrelation and spatial heterogeneity. Special attention is paid to the application to spatial models of generic statistical paradigms, such as Maximum Likelihood, Generalized Methods of Moments and the Bayesian perspective. An important aspect of the course is the application of open source software tools such as R, GeoDa and PySal to solve empirical problems.