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 2022-2023 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 2022


MACS 30000 - Perspectives on Computational Analysis

Jon Clindaniel, Sanja Miklin, Shilin Jia, Pedro Arroyo

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 30111 - Principles of Computing 1: Computational Thinking for Social Scientists

Zhao Wang

This course is the first in a three-quarter sequence that teaches fundamentals of computational thinking to students in the social science. Lectures in the class will cover topics such as functions, data structures, as well as classes and objects. Assignments will give students the opportunity to practice these basic computing concepts using the Python programming language and get familiar with computational logic in real-world tasks.

This course is intended for those who placed into it via MACS 30120 "Computing Fundamentals Boot Camp" or for those who are not otherwise prepared to independently and fluently write code using any programming language (e.g., R, Python, C, C++, Java). Note that this is the introductory version of MACS 30121. We will provide several test questions to help students better identify the suitability of this course at the beginning of the quarter.


MACS 30121 - Computer Science with Social Science Applications 1

Zhao Wang

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.

At least one completed programming course and the ability to fluently and independently write code using any programming language (e.g., R, Python, C, C++, Java). Note that this is the accelerated version of MACS 30111. We will post several test questions to help students better identify the suitability at the beginning of the quarter.


MACS 30500 - Computing for the Social Sciences

Sabrina Nardin

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 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 predict emerging cultural movements using social media data, identify the latest fashion trends, and even decipher ancient symbols using archaeological databases.


MACS 35000 - MA Research Commitment

Marc Berman

Student Initiated research and writing for the MA research component. Open only to MACSS students. Second-year MACSS students can take the course only once in their second year.


MACS 50000 - Computational Social Science Workshop

Marc Berman

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 95000 - MA Internship Course

Marc Berman

All MACSS students who have completed three academic quarters of full-time course work in our MA program are eligible to participate in the Computational Social Science Internship Program. Any interested persons must speak with Career Services, have an approved external employer, complete a petition from our Student Affairs Administrator, and enroll in this non-credit field research course. The course will appear on your transcript, and will be evaluated on a pass/fail basis, in consultation with the employer. Note that MACS 95000 does not count against your other curricular requirements.

Back to Top


Winter Quarter 2022  


MACS 30100 - Perspectives on Computational Modeling

Zhao Wang

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 30112 - Principles of Computing 2: Data Management for Social Scientists

Sabrina Nardin

This course is the second in a three-quarter sequence that teaches computational thinking and programming skills to students in the social sciences. Specifically, this course equips students with a fundamental toolkit for working with social science data. Students will learn the basics of web-scraping, relational databases, record linkage, data cleaning, modeling, visualization, and data structures. The programming language of the course is Python.

Prerequisites: MACS 30111 or instructor consent. Note that this is the introductory version of MACS 30122. Instructor consent required for all non-MACS students.


MACS 30122 - Computer Science with Social Science Applications 2

Sabrina Nardin

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.

Prerequisites MACS 30121 or CAPP 30121. Note that this is the accelerated version of MACS 30112. Instructor consent required for all non MACS students.


MACS 30150 - Perspectives on Computation Modeling in Economics

Sergio Salas

In this course students will learn several computational methodologies and tools to solve, simulate, and analyze models that are the backbone of current macroeconomic analysis. While learning the relevant computational methods is the main objective, the theoretical economic aspects of the model will be stressed and the students will be required to apply their economic knowledge and skills to interpret and analyze the results. We will examine non-stochastic and stochastic general equilibrium models, both under local and global approximations. The main part of the course will deal with representative agent models, but a significant part will be devoted to introducing students to the solution of heterogeneous agent models as well.


MACS 30617 - Introduction to Organizational Analysis

Pedro Alberto Arroyo

Organizations impact almost every aspect of social life; further, organizations have become some of the most significant actors in society. The course will provide a grounding in the sociological literature on how organizations function as well as the dynamics that govern both their internal structures and their interface with society. The second part of the course will cover macro-social organizational processes with a particular focus on social movement organizations and neo-institutionalism. Throughout, we will engage questions pertaining to where organizations come from, how they function, when they ‘succeed’ and ‘fail’, as well as their social consequences. At the completion of the course, students will apply the concepts covered in class to develop a research proposal.


MACS 33002 - Introduction to Machine Learning

Zhao Wang

This course will train students to gain the fundamental skills of machine learning. It will cover everything needed for getting up and running with computational research projects from a machine learning perspective, including the key techniques used in standard machine learning pipelines: data processing (e.g., data cleaning, feature selection, feature engineering), classification models (e.g., logistic regression, decision trees, naive bayes), regression models (e.g., linear regression, polynomial regression), parameter tuning(e.g., grid-search), model evaluation (e.g., cross-validation, confusion matrix, precision, recall, and f1 for classification models; RMSE and Pearson correlation for regression models), and error analysis (e.g., data imbalance, bias-variance tradeoff). Students will learn simple and efficient machine learning algorithms for predictive data analysis as well as gain hands-on experience by applying machine learning algorithms in social science tasks. The ultimate goal of this course is to prepare students with essential machine learning skills that are in demand both in research and industry.


MACS 35000 - MA Research Commitment

Marc Berman

Student Initiated research and writing for the MA research component. Open only to MACSS students. Second-year MACSS students can take the course only once in their second year.


MACS 40550 - Agent-Based Modeling

Jean Clipperton

Social science problems often have so many details and moving parts that it can be difficult for researchers to gain traction without models. In this course, we explore agent-based modeling approaches to understand these social science problems including cooperation and the development of culture. Agent-based models enable us to build an understanding from the bottom up, starting with simple assumptions and analyzing how patterns emerge at a larger scale. Through the term, we’ll cover the fundamentals of modeling, including basic principles of model design, data extraction, and canonical examples like Conway’s Game of Life, Schelling’s segregation model, and Boids/flocking. The course is balanced between social science readings and applications and hands-on coding. It cumulates in a final project consisting of an agent-based model designed by students to apply to a social science phenomenon.


MACS 50000 - Computational Social Science Workshop

Marc Berman

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 95000 - MA Internship Course

Marc Berman

All MACSS students who have completed three academic quarters of full-time course work in our MA program are eligible to participate in the Computational Social Science Internship Program. Any interested persons must speak with Career Services, have an approved external employer, complete a petition from our Student Affairs Administrator, and enroll in this non-credit field research course. The course will appear on your transcript, and will be evaluated on a pass/fail basis, in consultation with the employer. Note that MACS 95000 does not count against your other curricular requirements.

Back to Top


Spring Quarter 2023 


MACS 30113 - Principles of Computing 3: Big Data and High Performance Computing for Social Scientists

Jon Clindaniel

Computational social scientists increasingly need to grapple with data that is too big and code that is too resource intensive to run on a local machine. Using Python, students in this course will learn how to effectively scale their computational methods beyond their local machines -- optimizing and parallelizing their code across clusters of CPUs and GPUs, both on-premises and in the cloud. The focus of the course will be on social scientific applications, such as: accelerating social simulations by several orders of magnitude, processing large amounts of social media data in real-time, and training machine learning models on economic datasets that are too large for an average laptop to handle.


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 30200 - Perspectives on Computational Research

Pedro Arroyo, Shilin Jia and Sanja Miklin

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 30500 - Computing for the Social Sciences

Jean Clipperton

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 35000 - MA Research Commitment

Marc Berman

Student Initiated research and writing for the MA research component. Open only to MACSS students. Second-year MACSS students can take the course only once in their second year.


MACS 40700 - Data Visualization

Jean Clipperton

Social scientists frequently wish to convey information to a broader audience in a cohesive and interpretable manner. Visualizations are an excellent method to summarize information and report analysis and conclusions in a compelling format. This course introduces the theory and applications of data visualization. Students will learn techniques and methods for developing rich, informative and interactive, web-facing visualizations based on principles from graphic design and perceptual psychology. Students will practice these techniques on many types of social science data, including multivariate, temporal, geospatial, text, hierarchical, and network data. This will be primarily based in R.


MACS 50000 - Computational Social Science Workshop

Marc Berman

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 95000 - Computation MA Internship

Marc Berman

All MACSS students who have completed three academic quarters of full-time course work in our MA program are eligible to participate in the Computational Social Science Internship Program. Any interested persons must speak with Career Services, have an approved external employer, complete a petition from our Student Affairs Administrator, and enroll in this non-credit field research course. The course will appear on your transcript, and will be evaluated on a pass/fail basis, in consultation with the employer. Note that MACS 95000 does not count against your other curricular requirements.