Graduate Courses 

Computer Modeling of Complex Systems


This course will offer an introduction to using computational approaches to explore and model complex systems. Its primary purpose will be teaching you how to develop and analyze your own agent-based models (ABM). In the course of pursuing this goal, we will touch on several other subject areas such as networks, basic probability distributions and statistics, a number of topics from computer programming, and a review of important ABM papers. In order to give you the technical skills required to build your own ABM, this course will focus on developing your competency in two programming languages/platforms: Netlogo and Python.

This course will NOT be focusing on formal mathematical models of complex systems such as equation-based models of dynamical systems or other approaches often focused on in standard engineering courses. If you expect that the systems in which you are interested might be better captured by such models, definitely take some time to consider if this is the course for you.

The goal of this class is that by the end of the semester, you will have developed and analyzed an ABM of your own that will be useful to you in your future research.

CSCS 530 Github


Undergraduate Courses 

Social Dynamics


Throughout every society, we find patterns. In different times and places, people have particular ways of dressing, eating, talking, and even thinking. Neighborhoods remain segregated for generations, fads sweep whole countries in a matter of weeks, and both markets and crowds behave more like independent entities than a collection of individuals. We also find that these patterns are not fixed in nature but instead,
quite dynamic. Cultures and neighborhoods change, sometimes quite suddenly. Fads become unpopular as suddenly as they caught on, and both markets and crowds can go from being well-behaved and predictable to dangerously unpredictable and extreme in shockingly short amounts of time.

Where do these patterns and dynamics come from? Throughout the history of social science, people have given a wide variety of answers to this question. The type of explanations we will be focusing on in this class are those which consider how the interdependency of individuals leads to the unexpected and unintentional emergence of collective behaviors and outcomes. To this end, we’ll be covering a wide range of subjects: processes of social influence and interaction, information cascades, tipping points, agent-based modeling, the impacts of diversity on problem solving, networks of interaction and their consequences, and new opportunities for researchers to study these dynamics via the recent availability of so-called “big data.”

Example Syllabus

Foundations of Social Inquiry


The world is full of claims about what is going on in our society. Some say we need gun control and others say we do not. Some say sexism and racism are still major issues, others disagree. Some say we are safer than ever while others say we have never been more at risk.

Politicians, activists, and the media are all examples of the sorts of groups who have major agendas in making you think certain things are happening. But what is really going on in your society? The purpose of this class is to give you the tools you need to sort out the facts from the hype. By the end of this course, not only will you be able to decide for yourself what is going on in society, you will also know how to skillfully back up your own claims with evidence and logic. Along the way, you will learn how to read and interpret academic articles, formulate research hypotheses, develop plans for empirically testing those hypotheses,  understand and interpret social statistics, and learn to distinguish between good and bad social science research.

Example Syllabus


Social Theory


This course acts as an introduction to major theoretical perspectives used in sociology. In addition to familiarizing you with the ideas of well-known social theorists, this class will also give you tools for critical thinking in general. Doing well in this course will require more than just memorizing other people’s ideas. You will also have to apply those frameworks of thought to new situations and learn how to develop your own thinking in a systematic and clear way.

The beginning of the course will consider what “theory” is and does. From this discussion, we’ll identify a natural division between those social theories that focus on “individuals” and those that focus on “society” we will use to organize the rest of our course. In the first half of the quarter, we will compare two two classes of perspectives that focus on individuals and in the second half, two that focus on society. As we consider each pair, it will become clear how it is possible to paint very different pictures of the exact same world just by beginning from a different set of simple, reasonable sounding assumptions. In the process of taking on these different perspectives and learning to use them in your analyses of the social world, you will not only gain new insights into society but also greatly increase your own analytical skills.

Example Syllabus


Other Teaching

Applied Social Statistics

As the sole teaching assistant for UW’s 3 quarter, graduate-level applied social statistics sequence, I have experience teaching a wide range of statistical material to students coming from a variety of math and programming backgrounds. Some examples of the concepts I have taught include but are not limited to: the basic properties of probability distributions, principles of representative sampling, ANOVA, basic multivariate linear regression, interaction terms, dummy variables, methods for dealing with problematic data (e.g. identification of outliers, heteroskedasticity), logistic regression, regression with count data and categorical data as the dependent variables, Maximum Likelihood Estimation, and basic computer programming concepts required to work with Stata and R.