teaching

Courses I have taught at Chicago and Harvard.

University of Chicago

  • MACS 30123 - Large-Scale Computing for the Social Sciences (Autumn 2020-21; Spring 2020-25)

    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 applicationas, 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.

    Course Website

  • MACS 40123 - Large-Scale Data Mining for Social and Cultural Knowledge Discovery (Fall 2024)

    This course will introduce fundamental data mining techniques for extracting insights from massive datasets, as well as the practical and theoretical implications of using these approaches to produce new knowledge about the social and cultural world. For instance, students will learn strategies for deciphering cultural logics at scale (e.g. association rule and frequent itemsets mining), revealing patterns in complex social networks (e.g. link analysis and graph neural networks), and discovering large-scale processes that shape our social and cultural world (e.g. recommender systems and causal rule mining). Through in-class discussions, as well as hands-on exercises using Python and large-scale computing frameworks like Spark, students will develop the mastery necessary to conduct large-scale data mining research. By the course's conclusion, students will synthesize their knowledge and skills into an original research project, geared toward publication in a relevant Computational Social Science journal or conference.


  • MACS 30000 - Introduction to Computational Social Science (Autumn 2019, 2022-23)

    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.


  • MACS 40400 - Computation and the Identification of Cultural Patterns (Autumn 2019, 2022; Winter 2020-22)

    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 30124 - Computational Analysis of Social Processes (Autumn 2021)

    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 30200 - Perspectives on Computational Research (Spring 2020, 2022)

    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 machine 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 30120 - Computing Fundamentals Boot Camp (September 2022-25)

    This boot camp focuses on introducing fundamental open-source tools for producing reproducible, computational research. Topics include the basics of Python programming, working on the Linux command line, as well as using Git/GitHub for version control. The course assumes no prior exposure to these topics and serves as preparation for the first course in the MACSS computing sequences in the Fall (MACS 30111 or MACS 30121).


  • MACS 30121 - Computer Science with Social Science Applications I (Autumn 2020)

    This course is the first in a sequence that teaches computational thinking and skills to students from a variety of Social Science disciplines. The course will cover abstraction and decomposition, simple modeling, basic algorithms, and programming in Python. Applications from a wide range 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 30122 - Computer Science with Social Science Applications II (Winter 2021)

    This course is the second in a sequence that teaches computational thinking and skills to students from a variety of Social Science disciplines. The course will 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. 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 perform speaker identification. Students will program in Python and complete a group programming project.


Harvard University (Leading TA Discussion and Lab Sections)

  • SW 40 - The Incas (Spring 2018)

    This course guides students on an exploration of the largest civilization of the Pre-Columbian Americas - the Inca Empire (ca. 1400-1532AD). Following over a century of intensive study, archaeologists and historians are finally beginning to be able to answer key questions about this unusual civilization, including: Who were "the Incas" and where did they come from? How could the Incas have emerged and extended their rule some 5,000 km. along the Andes in only 100-150 years? How did a civilization emerge and thrive at 12,000 feet above sea level? How could a state-level society exist without the invention of market economies, the wheel, or a writing system? In examining these questions, the course will explore how the study of the Inca Empire might recast our understanding of ancient states and empires, what would it mean to "think like an Inca," and how might such a perspective affect our own ways of conceiving of the world?


  • SW 30 - Moctezuma’s Mexico: Then and Now (Fall 2017)

    This course explores how the origins of Mesoamerican civilization played a pivotal role in the birth, glory days, and fall of the Aztec Empire. We explore the profound contributions of Moctezuma's Mexico, then, and now in today's world, through the lenses of five major concepts: gift exchange, surplus and social hierarchy, the longue durée, gender and duality, and trade and tribute. Our class takes a hard look at the Great Encounter and the positive as well as the tragic results of the European invasion of Mexico, through the lens of the conquistadors (in Bernal Diaz del Castillo's "True History of the Conquest of New Spain") as well as the voices of the indigenous scribes, warriors, and rulers (male and female) who survived the ordeal and transformed their world. Through art and literature we study the astonishing formation of Colonial Mexico City and its prominent though little known role as a economic and cultural crossroads between Europe and Asia. Mexico's 1810-1821 Independence Movement lead by Catholic warrior-priests, and the struggles of post-independence Mexico are contextualized within the framework of the globalization wrought by the industrial revolution. We survey the 1910-1919 Mexican Revolution, inspired in part by indigenous and mestizo rebels, and the ways in which post-revolutionary Mexico--through the artistic genius of Diego Rivera, Frida Kahlo, José Orozco and others--has led the way in embracing racial and cultural hybridity for other cultures and countries in the Americas.


  • SW 38 - Pyramid Schemes: The Archaeological History of Egypt (Spring 2016)

    This course surveys the ancient Egyptian civilization of the pharaohs (about 3,000–332 B.C.) as one example of ancient complex society. It emphasizes Egyptian material culture — pyramids, temples, tombs, settlements and cities, art masterpieces and objects of daily life — and explores major developmental themes that defined the Egyptian state — the geographical landscape, concepts of kingship, social stratification, craftsmanship, religion and mortuary beliefs. As a Gen Ed course, it also links our fascination with all things Egyptian to the present: Egyptomania, repatriation, and the use and abuse of archaeology in international politics. Our chronological path includes excursions into Egyptian art, history, politics, religion, literature and language (hieroglyphs), along with the evolution of modern Egyptology. Illustrated lectures will use immersive and interactive technologies to bring students into close contact with selected ancient sites.


  • ANTH 1095 - Urban Revolutions: Archaeology and the Investigation of Early States (Fall 2015)

    This course examines the development and structure of the earliest state-level societies in the ancient world. Archaeological approaches are used to analyze the major factors behind the processes of urbanization and state formation in Mesopotamia, Egypt, Central Asia, the Indus Valley, and Mesoamerica. The environmental background as well as the social, political, and economic characteristics of each civilization are compared to understand the varied forces that were involved in the transitions from village to urbanized life.


  • ANTH 1202 - Forensic Anthropology: CSI Harvard (Spring 2015)

    Forensic anthropology gives the opportunity to rewrite the dead back into history. It is one of the few but powerful opportunities where you can give voices to those who lost them at death. We will explore how we can analyze human skeletal remains, material culture and find contexts using cutting edge forensic anthropological and archaeological methods and theories. We will explore recovery and excavation strategies used at crime scenes, from the perspective of using archaeological and anthropological methods. We will learn how to reconstruct a biological profile, manner of death, pathological conditions and trauma. We also will study material culture associated with remains, mass disaster responses, burned bodies, migration, human rights violations and genocides, and violence, among others.


  • HEB 1590 - Biomolecules (Fall 2014)

    This course couples topics in which the studies of ancient biomolecules were used to explore questions about the past with an examination of the methods used. The course objective is to develop a sense for the known, the unknown and the unknowable in the study of ancient biomolecules, and to critically evaluate the current literature and the often accompanying press reports. The course will focus on moving beyond the “facts” of a case to an examination of hypotheses tested, methods used and data analyzed.