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 2020-2021 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


MACS 30000 - Perspectives on Computational Analysis

Benjamin Soltoff

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 30121 - Computer Science with Applications 1

Jon Clindaniel

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 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 30124 - Computational Analysis of Social Processes

Jon Clindaniel

How does the human social and cultural world develop and change? The focus of this course is on introducing computational methods for studying the evolution of phenomena over time, alongside relevant theories for interpreting these processes from fields such as History, Anthropology, and Sociology. Students will gain hands-on experience using the Python programming language to harness a diverse set of digital data sources, ranging from satellite images to social media posts. Additionally, they will learn to employ computational approaches, such as simulation and dynamic topic modeling, to study social processes over a variety of different time scales: from the short term (changes in social media network structures over the course of the past week), to longer term (the evolution of English language discourse over the past 100 years), to deep time scales (long-term settlement pattern dynamics over the past 10,000 years).


MACS 30300 - Civic Data & Technology Clinic

TBD

The Civic Data and Technology Clinic at the University of Chicago partners with public interest organizations to leverage data science research and technology to address pressing social and environmental challenges. The Clinic also provides students with exposure to real-world projects and problems that transcend the conventional classroom experience including: 1) working with imperfect datasets, applying models and algorithms to real-world data, and navigating security and privacy issues; and 2) communicating results to a diverse set of stakeholders (e.g., industry, public interest, government agencies), and translating information into actionable insights, policy briefs and software prototypes. The Clinic is an experiential project-based course where students work in teams as data scientists with real-world clients under the supervision of instructors. Students will be tasked with producing key deliverables, such as data analysis, open source software, as well as final client presentations, and reports.


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

James Evans

Student Initiated research and writing for the MA research component. Open only to MACSS students.

Back to Top


Winter Quarter  


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 30122 - Computer Science with Applications 2

TBD

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 30150 - Perspectives on Computational Modeling for Economics

TBD

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 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 33002 - Introduction to Machine Learning

Philip Waggoner

This course will introduce students to the foundations of machine learning. We will cover everything needed for getting up and running with any computational research project from a machine learning perspective, including the key machine learning tasks: classification, regression, and dimension reduction. Students will learn about the fundamental mathematical concepts underlying machine learning algorithms, but this course will equally focus on the practical use of machine learning algorithms using open source computing. Through a final class group project, students will apply the learned concepts to addressing real social problems. We will cover a variety of topics, including: hypothesis space, resampling methods, feature engineering, model training, testing & tuning, randomization & simulation, supervised vs. unsupervised vs. competitive learning, regularization, tree-based methods, and several other algorithms contributing to a solid foundation of inferential machine learning for social science inquiry.


MACS 35000 - MA Research Commitment

James Evans

Student Initiated research and writing for the MA research component. Open only to MACSS students.


MACS 40100 - Big Data & 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 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 51000 - Introduction to Causal Inference

Guanglei Hong, Kazuo Yamaguchi, and Fang Yang

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 is a prerequisite. This course is a pre-requisite for “Advanced Topics in Causal Inference” and “Mediation, moderation, and spillover effects.”

Back to Top


Spring Quarter  


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

Jon Clindaniel & Philip Waggoner

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

TBD

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

James Evans

Student Initiated research and writing for the MA research component. Open only to MACSS students.


MACS 40600 - More Computing for the Social Sciences

Benjamin Soltoff

This is an applied course for social scientists expanding on computational approaches to reproducible research via programming. It extends on the training in MACS 30500 to cover intermediate and advanced techniques for core data science tasks such as data wrangling, visualization, modeling, and communication. Exact topics will vary, but may include items such as interactive visualizations and web applications, package and API development, functional programming, code profiling and optimization, etc.


MACS 40800 - Unsupervised Machine Learning

Philip Waggoner

A full understanding of data structure is not always possible, nor are tidy labeled data always available to researchers. With an applied focus, this course will cover prominent unsupervised machine learning techniques such as clustering, partitioning, dimension reduction, and deep learning for discovering latent, non-random structure in data. Further, mechanics involved in unsupervised machine learning will also be covered, such as measuring distance, visualization, and methods of validation. Where appropriate, we will also cover best practices in functional programming. 


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 state.


MACS XXXXX - Thinking with Deep Learning for Complex Social & Cultural Data Analysis

James Evans

 

A deluge of digital content is generated daily by web-based platforms and sensors that capture digital traces of human communication and connection, and complex states of society, culture, economy, and the world. Emerging deep learning methods enable the integration of these complex data into unified social and cultural “spaces” that enable new answers to classic social and cultural questions, and also pose novel questions. This book takes the position that the power of deep learning is unleashed by thinking with deep learning to reformulate and solve problems traditional statistical and machine learning methods cannot address. These include fusing diverse data like text, images, tabular and network data into integrated and comprehensive “digital doubles” of the scenarios you want to model, the generation of promising recommendations, and the creation of AI assistants that radically augment a social or cultural analyst’s imagination and intelligence. From the perspective of deep learning, everything can be viewed as data—novels, field notes, photographs, lists of transactions, networks of interaction, theories, epistemic styles—and our treatment examines how to configure deep learning architectures and multi-modal data pipelines to improve the capacity of representations, the accuracy of complex predictions, and the relevance of insights to substantial social and cultural questions.

The course uses Python and the widely popular PyData ecosystem to demonstrate all motivating examples and includes working code, accompanying exercises, relevant datasets and additional analytics and visualization that facilitate social and cultural interpretation and communication. The course will be based on a practical book (“Thinking with Deep Learning”) that the instructor and TA are writing for O’Reilly. Familiarity with Python is required.

This class is for anyone wishing to analyse textual, network, image or arbitrary structured and unstructured data, especially in concert with one another to solve complex social and cultural analysis problems (e.g., characterize a culture; predict next year’s ideology). We note that jobs involving deep learning are the highest paying jobs in AI related fields, and industry trends suggest that by 2022, one in five workers engaged in mostly nonroutine tasks will rely on AI to do a job. Deep learning represents the dominant paradigm of modern artificial intelligence. 

By the end of this class the student will understand:

  • How Deep Neural methods can be used to analyse complex data

  • How critical questions can be addressed by massive data integration

  • Mathematical intuition and computational methods to link, analyze and interpret structured and unstructured data.

  • How creating “digital doubles” with integrated data enable the simulation and design of desired decisions, solutions and outcomes

  • How to navigate the PyData ecosystem to build strategic infrastructure to solve critical problems

And the student will be able to:

  • Find, scrape and clean messy data into the form a neural network requires

  • Organise and leverage data from diverse sources

  • Sample data effectively

  • Annotate data for model interpretability

  • Encode expectations and predict surprise

  • Construct deep learning methods to represent text, networks and tables, images and audio and integrate diverse data Design the appropriate deep learning architecture

  • Create digital doubles enabling simulation of critical phenomena

  • Answer questions and make decisions from integrated data

  • Do all of this in the rich PyData ecosystem with code examples for every chapter