Teaching
At Vassar College I mostly teach courses related to statistics and data. In these courses I try to introduce interdisciplinary perspectives and to help students discover ways to use quantitative tools to pursue and support their interests. Previously at WSU I was heavily involved in developing courses for the Data Analytics program and I'm particularly passionate about incorporating real-world data and computational tools into the classroom. Examples of my course materials can be found in the links below.
As a result of my work analyzing gerrymandering I also focus on the social impact of mathematical modeling in my teaching and have developed several sets of materials for helping math students contribute to research around voting rights and political redistricting, which I used while supervising students through the Voting Rights Data Institute and the UW eScience Data Science for Social Good programs. I have also developed and presented materials for other instructors on this topic through the AMS Engaged Pedagogy Series.
In addition to collegiate instruction, the resources I created for mentoring and coaching middle and high school math teams are collected here. For broader descriptions of my perspectives on teaching you can read this interview about my graduate student teaching award and my teaching philosophy statement from the last time I was on the job market.
Vassar College
- Fall 2025
- Math 144: Foundations of Data Science (R) This course focuses on the development and practice of computational and inferential thinking. Students are introduced to the fundamentals of programming and inference. Students learn to write programs, create data visualizations, and work with real-world datasets, culminating in a final data analysis project.
- Math 240: Introduction to Statistics (R) The purpose of this course is to introduce the methods by which we extract information from data. Topics are similar to those in MATH 141, with more coverage of probability and more intense computational and computer work. Statistical software is introduced and used.
- Spring 2025
- Math 325: Elementary Combinatorics Introduction to combinatorial theory, including counting methods, binomial coefficients and identities, generating functions, occurrence relations, inclusion-exclusion methods.</li>
- Math 555: Topics in Combinatorics Graduate course in combinatorics covering generating functions, recurrence relations, inclusion-exclusion, coding theory, experimental design, and graph theory.
- Fall 2024
- Math 554: Advanced Graph Theory (Python) Second course in graph theory for graduate students covering matchings, colorings, extremal graph theory, graph algorithms, algebraic and spectral methods, and random graph models.
- Spring 2024
- Stat 437: High Dimensional Data Learning and Visualization (R) Required course for senior data analytics majors covering data visualization, metric-based clustering, probabilistic and metric-based classification, algebraic and probabilistic dimension reduction, scalable inferential methods, and analysis of non-Euclidean data.
- Math 588: Topics in Computational Mathematics: Social Network Analysis and Computational Redistricting (Python) Topics course for graduate students focusing on discrete modeling in the social sciences with emphasis on social networks, computational redistricting, and gerrymandering.
- Spring 2023
- Math 555: Topics in Combinatorics: The Probabilistic Method Topics course for graduate students focusing on combinatorial proof techniques and applications of probabilistic methods.
- Fall 2022
- Math 587: Introduction to Representation Theory Topics course for graduate students covering representations of finite groups with a particular emphasis on S_n, character theory, and basic Lie representations, with applications to Fourier analysis, spectral graph theory, and random walks.
- STAT 536: Statistical Computing (R) Graduate course on modern computing methods for statistical application and research including generation of random variables, Monte Carlo simulation, bootstrap and jackknife methods, EM algorithm, and Markov chain Monte Carlo methods.
- Math 589: Professional Development See Fall 2020 description.
- Math 533: Teaching College Mathematics Theory and practice of mathematics instruction at the collegiate level. This course is designed to support TAs in the Department of Mathematics and Statistics. This includes not just pedagogical development but also provides a broader introduction to the various cultures of academia.
- Spring 2022
- Math 548: Numerical Analysis (MatLab) This is a fundamental course on numerical computation, including: finding zeroes of functions, approximation and interpolation, numerical integration, numerical solution of ordinary differential equations, and numerical linear algebra.
- Fall 2021
- Data 115: Introduction to Data Analytics (R) See Fall 2020 description.
- STAT 419: Introduction to Multivariate Statistics (R) Introductory course covering multidimensional data, multivariate normal distribution, principal components, factor analysis, clustering, and discriminant analysis.
- Math 581.03: Professional Development See Fall 2020 description.
- Spring 2021
- Data 115: Introduction to Data Analytics (R) See Fall 2020 description.
- Introduction to NetworkX (Python) Tutorial on analyzing complex networks in Python at the 2021 JMM short course: Mathematical and Computational Methods for Complex Social Systems. This tutorial provides Jupyter notebooks exploring basic aspects of the networkx package. Examples include manually constructing ego networks, loading and processing social networks, comparing networks to null models, and simulating dynamics on networks.
- Fall 2020
- Data 115: Introduction to Data Analytics (Python) This course provides an introduction to the field of data analytics. Motivated by natural questions that arise in simple data examples, we will cover many of the basic techniques for working with data including sourcing raw data, cleaning and processing, exploring and analyzing, and finally presenting conclusions. In addition to exploring basic tools and methods, this course provides a broad exposure to the diverse types of data analytics projects that are currently being conducted around the world. A key component of the course will be critically analyzing these published data analytics works and discussing their strengths and shortcomings.
- Math 581.05: Computational Tools for Complex Networks (Python) This course introduces tools and methodology for analyzing complex social systems with network models. The first half of the course covers standard network constructions and associated centrality metrics, clustering algorithms, dynamical models, and null models through classic papers and examples from the field. The second half focuses on the discrete formulation of political redistricting problems and related applications of sampling connected graph partitions. In addition to the theoretical components, this course provides resources and experiences with relevant software packages including networkx and gerrychain.
- Math 581.03: Professional Development This course helps advanced graduate students prepare for the academic and industry job markets, providing advice and feedback about preparing job materials, practice interviews and talks, and other professional preparation.
- Introduction to Discrete MCMC (Notes) (Software) This is an introduction to discrete MCMC that starts with the definition of a probability distribution and builds to discussing how these methods are used in redistricting problems. The text is supplemented with a large collection of interactive tools for exploring the concepts in more depth.
- Introduction to GerryChain (Notes) ( Software) (Templates)</b> GerryChain is our open-source software for constructing districting plans with random walks on graph partitions. This guide walks through all of the main components of the software and the templates show examples on real-world data. </li>
- Introduction to Complex Networks (Notes) (Software)</b> This guide explores how methods from the study of complex networks are useful for analyzing redistricting problems. Updated versions of the notes are included with the software on GitHub. </ul>
- In Fall 2017 I taught Math 36: Mathematical Modeling in the Social Sciences. This course helps students develop and apply quantitative skills to data and problems motivated by the social sciences. The main assessments in this course were essays that required the students to not just analyze models and data but also to construct compelling arguments based on their results. The course also including a programming component using MatLab and Sage. Much of that code is collected here.
- In each of 2015, 2016, and 2017 I taught sections of the UNSG 100: Graduate Ethics Seminar ( course website) for first year Ph.D. students in mathematics, computer science, and engineering. The course places an emphasis on small group discussions and case studies. The focus is on ethical issues in academia, particularly those that are viewed differently in other fields, and many of the case studies that I teach are drawn from contemporary events and situations. Many of the resources that I have compiled for the course can be found here.
- In 2017 I taught Math 8: Calculus of Functions of one and Several Variables (course website). Some of the interactive Sage programs that I developed for the students are linked below:
- Taylor Polynomials
- Taylor Approximation Error
- Convergence of Infinite Series
- Infinite Series Error
- Plotting 3d Functions
- Level Curves, Linearizations, and Gradients
- Gradient Descent on Surfaces
- In 2015 I taught Math 1: Calculus with Algebra (course website). I strongly support the use of technology in the classroom and frequently incorporate interactive Sage programs into my classes. Some of the programs from Math 1 can be found at the following links (adapted from the Sage @interact example page):
- Function Plotting
- Secant Plotting
- Polynomial Interpolation
- Linearizations
- Newton's Method
- Taylor Polynomials
- Previously at Dartmouth, I served as a teaching assistant for Math 3 (Winter 2014), Math 12 (Fall 2013), Math 22 (Fall 2014), Math 23 (Spring 2015).
- 2015 Modern Cryptography Presentation (with D. Freund)
- Cryptography Worksheets (Red) and Cryptography Worksheets (Blue)
- 2016 Forensic Accounting Presentation
- Forensic Activities
- 2017 Binary Computing and Barcodes Presentation (with D. Freund)
- Binary and Barcodes Activities
- Mathematics of Games
- Mathematics of Secrets
Washington State University
AMS Engaged Pedagogy Series: Mathematical Foundations for Democratic Processes
In Spring 2023, Beth Malmskog and I designed and presented interactive course materials on gerrymandering and computational redistricting for instructors across the country together with other experts in the Mathematical Foundations for Democratic Processes program. The resouces we put together are available here.UW eScience Institute Data Science for Social Good
During the 2021 summer term I served as a project lead for the UW DSSG program, supervising a team of graduate student researchers on a project about employing the ensemble method to analyze newly proposed districting plans. The fellows created a detailed guide describing the modeling process and conducted several case studies with real data to evaluate their methodology. A summary of all of their excellent work is displayed here.Voting Rights Data Institute
During the 2018 and 2019 summer terms I helped lead the Voting Rights Data Institute organized by the MGGG. This is an 8 week program that has included 80+ undergraduate and graduate students focused on problems related to redistricting. Much of the work was interdisciplinary, combining skills from mathematics, political science, computer science, geography, and many others. Some of the material that I developed for this program have also been used for stand-alone workshops and tutorials:Tufts Models Reading Lab
In the Spring 2019 term I cotaught a course on Mathematical Models in Social Context with Moon Duchin. This course focused on STS readings and discussion of models as socially situated scientific tools.MIT IAP 2019
In January 2019 I developed a four week IAP course on Computational Approaches for Political Redistricting at MIT. This course focused on software tools and mathematical principles for analyzing political redistricting developed by MGGG.Teaching Award Interview
In 2017, I won the Dartmouth Graduate Teaching Award, which is a college-wide recognition for exemplifying the qualities of a college educator. An article from the graduate school focused on my teaching experiences can be found: here.Dartmouth Math Courses
Crossroads Math Team
I volunteer as a coach for the competitive math team at Crossroads Academy in Lyme, NH. Our weekly meetings are centered around developing problem solving skills and preparing for competitions and coached the New Hampshire state Math Counts team at Nationals in 2017. Many of the resources that I have put together for the students are collected here.
In 2015-16, the Crossroads team won the chapter and state Math Counts and Math League competitions as well as placing first in New Hampshire and Northern New England on the AMC-8. In 2016-17, the students repeated as champions in all of these competitions as well as qualifying two students for the national Math Counts competition. The team was equally successful in 2017-18 and again qualified a student for the national Math Counts competition.
LaTeX Workshops 2016-2018
Together with David Freund, I have developed and presented a series of workshops on mathematical typesetting with LaTeX, organized through the Kresge Library and Mathematics Librarian Katie Harding.High School Workshops
Through the Johns Hopkins Center for Talented Youth Science and Technology Series I developed and presented two workshops for middle and high school aged students:
As part of the Dartmouth Mathematics Garduate Teaching Seminar I helped develop and run two week-long workshops for local high school students
