Student Research

Interested in doing research with me? This page of FAQs is for you.


What kinds of things are you working on?

These days (late 2023), I am thinking about models of how networked systems (like social or biological networks) evolve over time. This involves creating mathematical descriptions of new models, mathematical analysis, and the development of statistical inference algorithms for fitting these models to real-world data.

I also work on mathematical models of collective social behavior, network data analysis, and selected projects in data science and applied statistics. Here’s a description of my areas of recent research.

Would I like working with you on that?

Maybe! You are most likely to enjoy this kind of work if you are interested in the intersection between math, data science, computation, and the science of complex systems.

Can I do machine learning research with you?

Probably not, no. Although I teach machine learning, it is not my primary research interest. If you ask me to offer you a research project to you related to machine learning, I am likely to decline. If you already have an idea that I find unusually interesting or promising, then I may still agree to work with you.


What courses should I take to prepare for research with you?

In general, the minimal requirements for working with me on research are:

  • MATH 0200 (Linear Algebra)
  • At least one advanced elective in CS that significantly uses mathematical content, especially those which have MATH 0200 as a prerequisite.
  • Comfort reading and writing mathematical descriptions of models and programs.

The following items are very helpful and increase the likelihood that I will accept you as a research student:

  • Additional advanced coursework in mathematics and statistics, especially including MATH/STAT 310 (Probability).
  • Any elective course taken with me, especially CSCI/MATH 4xx (Network Science).
4xx exact course number to be determined, offered starting in ’24-’25.


Can I talk to you about my research interests and how they might fit into my time at Middlebury?

Yes, absolutely! Send me an email and we’ll set up a time to meet.

What are the ways I can do research with you?

The two most common ways are writing a thesis (i.e. CSCI 702) and summer research.

Do you accept students for independent study (CSCI 0500)?

The reason I am so picky about independent studies is that it is extra work for which neither I nor any other faculty are paid.

Rarely, and only under unusual circumstances for students who either (a) demonstrate outstanding ability to contribute to my research agenda or (b) are continuing work from a summer research collaboration.

Do you supervise research students over the summer?

Sometimes! It depends on my other commitments and priorities for the summer, as well as my ability to secure funding.

Can I write a thesis with you?

Maybe! We need to agree on something we are both interested in and for which you have appropriate background. I do not usually accept thesis students unless they have completed a relevant elective or proposed something that is very interesting to me.

Can I work with you for just one semester?

Usually no. Theses (CSCI 702) require two semesters of effort. Independent study (CSCI 0500) requires only one semester, but I don’t usually accept those except as a precursor to or continuation of research for a summer or for a thesis.

I do prefer to work with students as long-term collaborators. This means that I’m more likely to accept you for a research experience if you tentatively plan to continue in another one. For example, you might continue your summer research in a thesis.

Am I guaranteed a spot in your research group?

No, there are far more students who want to do research than I am able to accommodate. I don’t expect to accept more than 2-3 students in most summers.