Courses

Planned Course Offerings for 2023-2024

Please consult the Schedule of Classes for the current quarter's schedule. Class offerings are subject to change.

Course Schedule

(Course Descriptions Below)

  Autumn 2023 Winter 2024 Spring 2024
Perspectives Sequence MACS 30000. Perspectives on Computational Analysis MACS 30100. Perspectives on Computational Modeling MACS 30200. Perspectives on Computational Research
  MACS 30150. Perspectives on Computational Modeling for Economists  
Core Programming MACS 30111. Principles of Computing 1: Computational Thinking for Social Scientists MACS 30112. Principles of Computing 2: Data Management for Social Scientists MACS 30113. Principles of Computing 3: Big Data and High Performance Computing for Social Scientists
MACS 30121. Computer Science with Social Science Applications 1 MACS 30122. Computer Science with Social Science Applications 2 MACS 30123. Large-Scale Computing for the Social Sciences
Other MACS 30500. Computing for the Social Sciences MACS 30617. Organizational Analysis MACS 30405. Exploring Cultural Space
  MACS 40700. Data Visualization MACS 33002. Introduction to Machine Learning
    MACS 40101. Social Network Analysis
    MACS 40550. Agent-Based Modeling
Our non-Credit Workshop (more info here) MACS 50000. Computational Social Science Workshop

 

Course Descriptions

MACS 30000. Perspectives on Computational Analysis. 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. P. A. Arroyo, S. Jia, A. Sanaei, J. Clindaniel. Autumn. Note: Consent required for non MACSS students.

MACS 30111. Principles of Computing 1: Computational Thinking for Social Scientists. This course is the first in a three-quarter sequence that teaches fundamentals of computational thinking to students in the social sciences. 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. J. Clipperton. Autumn. Note: MACS students have priority.

MACS 30121. Computer Science with Social Science Applications 1. This course is the first in a three-quarter sequence that teaches computational thinking and essential skills to students in the social sciences. Lectures in the class will cover topics such as functions, data structures, classes and objects, as well as recursion. Assignments will give students the opportunity to practice these computing concepts using the Python programming language and apply the computational logic in a wide variety of social science applications. Previous example assignments include modeling epidemics, modeling language shifts, analyzing candidate tweets from presidential debates, determining the number of machines needed at a polling place, predicting housing price with linear regression models. Z. Wang. Autumn. Note: MACS students have priority.

MACS 30500. Computing for the Social Sciences. (CHDV 30511, ENST 20550, MAPS 30500, PLSC 30235, PSYC 30510, SOCI 20278, SOCI 40176, SOSC 26032). 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 learning the basics of programming and on generating reproducible research. Topics include coding concepts (e.g., data structures, control structures, functions, etc.), data visualization, data wrangling and cleaning, version control software, exploratory data analysis, etc. Students will leave the course with basic computational skills implemented through many 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. The course will be taught in R. S. Nardin, Autumn.  Note: MACS students have priority.

MACS 30100. Perspectives on Computational Modeling. This is a core-course for the MACSS program and it requires Python programming experience (for non-MACSS students, please email the instructor for consultation). This course will teach fundamental skills of applying statistical machine learning models in computational social science tasks. It will focus on understanding the strengths and weaknesses of modern machine learning algorithms as well as their applications in real-world tasks. Topics will include the key techniques in standard machine learning pipelines: data processing (e.g., data representation, feature selection), classification models (e.g., decision trees, logistic regression, naive bayes), regression models (e.g., linear regression), 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, interpret model performance). A. Sanaei, Z. Wang. Winter. Note: Consent required for non MACSS students.

MACS 30150. Perspectives on Computational Modeling for Economists. 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. S. Salas. Winter.

MACS 30112. Principles of Computing 2: Data Management for Social Scientists. 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. S. Nardin. Winter. Note: MACS students have priority. Prerequisites: MACS 30111 or equivalent.

MACS 30122. Computer Science with Social Science Applications 2. This course is 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. This is an accelerated introductory course that is designed for advanced beginner programmers. S. Nardin. Winter. Note: MACS students have priority. Prerequisites: MACS 30112 or equivalent.

MACS 30617. Organizational Analysis. (PBPL 23002, SOCI 20585, SOCI 30337, EDSO 30617, MAPS 30617).  Organizations - NGOs, corporations, social movement organizations, governments, etc. - impact almost every aspect of social life; in addition, organizations have become some of the most significant actors in modern 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 how they interface with society. We will cover rational, ecological, and resource-based approaches, as well as others. We will study organizations in local and global contexts, their role in economic production, their impact on members and non-members, as well as public policy. 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 a final project. P. A. Arroyo. Winter.  

MACS 40700. Data Visualization. (MACS 20700).  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. These techniques will be developed using a variety of software implementations such as R, ggplot2, D3, and Tableau. J. Clipperton. Winter.  

MACS 30200. Perspectives on Computational Research. 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. Staff. Spring.

MACS 30113. Principles of Computing 3: Big Data and High Performance Computing for Social Scientists. 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. J. Clindaniel. Spring. Note: MACS students have priority. Prerequisites: MACS 30111 and MACS 30112, or equivalent.

MACS 30123. Large Scale Computing. 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. J. Clindaniel. Spring. Note: MACS students have priority. Prerequisites: MACS 30121 and MACS 30122, or equivalent.

MACS 30405. Exploring Cultural Space. (MACS 20405, SOCI 30340, SOCI 20584). The class will put a special emphasis on the construct of space in cultural analysis. Spatial models have been prevalently used in quantitative studies of culture and ideology, for instance, most famously in Pierre Bourdieu's analysis of French cultural fields. With the development of big data and machine learning, there has also been bourgeoning advancement in its methodology. In the first five weeks of the lectures and discussions, we will cover the foundational social theories and most commonly-used statistical/computational methods in the studies of cultural space. We will ask and try to answer: what is a cultural space? What are its dimensions? What is its topology? What social processes take place in it? Major statistical techniques, such as principal component analysis, correspondence analysis, and latent class analysis as well as recent advances in computational text analysis and neural-embedding models, will be introduced. The second half of the class will be devoted to empirical studies and student projects. Some prior programming experience will be helpful but not required. Undergraduate students are admitted with the consent of the instructor. Every student is expected to submit an empirical study or extensive literature review at the end of the course. S. Jia. Spring.  

MACS 33002. Introduction to Machine Learning. (MAPS 33002, PLSC 43505). This course requires Python programming experience. The course will train students to gain the fundamental skills of machine learning. It will cover knowledge and skills of of 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. Z. Wang. Spring.  Prerequisites: Python programming experience.

MACS 40101. Social Network Analysis. (SOCI 40248). 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. S. Nardin. Spring.  

MACS 40550. Agent-Based Modeling. (MACS 20550). 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. J. Clipperton. Spring.  Prerequisites: Must have completed MACS 30111 or equivalent. Consent required for all undergads not meeting prerequisites and all non-MACSS students.