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


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.


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 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 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 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 40101 - Social Network Analysis

Sabrina Nardin

This course introduces students to concepts and techniques of Social Network Analysis (“SNA”). Social Network Analysis is a theoretical approach and a set of methods to study the structure of relationships among entities (e.g., people, organizations, ideas, words, etc.). Students will learn concepts and tools to identify network nodes, groups, and structures in different types of networks. Specifically, the class will focus on a number of social network concepts, such as social capital, homophily, contagion, etc., and on how to operationalize them using network measures, such as centrality, structural holes, and others. 


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 2022  


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.


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 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 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 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 40101 - Social Network Analysis

Sabrina Nardin

This course introduces students to concepts and techniques of Social Network Analysis (“SNA”). Social Network Analysis is a theoretical approach and a set of methods to study the structure of relationships among entities (e.g., people, organizations, ideas, words, etc.). Students will learn concepts and tools to identify network nodes, groups, and structures in different types of networks. Specifically, the class will focus on a number of social network concepts, such as social capital, homophily, contagion, etc., and on how to operationalize them using network measures, such as centrality, structural holes, and others. 


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


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 31300 - AI Applications in the Social Sciences

Brooke Luetgert

Artificial Intelligence (AI) describes algorithms constructed to reason in uncertain environments. This course provides an introduction to AI applications in the social sciences. Driven by the rapid increase in accessible big data documenting social behavior, AI has been applied to: increase effective diagnosis and prediction under different conditions, improve our understanding of human interaction, and increase the effectiveness of data management in different social and human services. Random forests and neural networks are among the most frequent AI methods used for prediction, while natural language processing and computer vision contribute to understanding decision-making and improving service provision. We begin with careful consideration for what AI can achieve and where current limitations exist by looking at a variety of real-world applications. We will focus on three core sections: search, representation, and uncertainty. In each section, we will explore major approaches, representational techniques and core algorithms. We will examine the trade-offs between model structure and the algorithmic constraints that this structure implies. The course is driven by hands-on exercises with AI algorithms written in Python. At the end of the term, you should be able to apply and tweak these algorithms to accommodate your own data and research interests.


MACS 35000 - MA Research Commitment

James Evans

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


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 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 analyze 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
  • Organize 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