# Research

I study the theory of distributed systems. I am particularly interested in understanding what can and cannot be solved in novel or exotic systems. Among other topics, I have studied the theory behind dynamic networks (in which the participants are unknown, communication can fail, and/or the network topology can change), peer-to-peer networks made up of smartphones communicating with direct radio links, vehicular ad hoc networks, and distributed coordination strategies from nature.

# Funding

Recent funding sources for my work include NSF CCF award number 1733842, "AiTF: Collaborative Research: Algorithms for Smartphone Peer-to-Peer Networks," NSF CCF award number 1320279, "AF: Small: Algorithms for Wireless Networks with Dynamic Links," NSF CCF award number 1649484, "EAGER: Noisy Computation of Distributed State Machines," the Ford Motor Company University Research Program, and the Georgetown Security and Software Engineering Research Center.

# Training

Before coming to Georgetown I was at MIT, where I received my PhD working with Nancy Lynch in the Theory of Distributed Systems group, and spent two years as a postdoctoral associate working with Hari Balakrishnan in the Networks and Mobile Systems group.

# Teaching

In fall 2018, I am teaching the required undergraduate
algorithms course.
The course web site can be accessed here:
**COSC 240 - Introduction to Algorithms**.

In fall 2017, I am teaching the required undergraduate
algorithms course.
The course web site can be accessed here:
**COSC 240 - Introduction to Algorithms**.

In spring 2017, I am teaching the graduate-level theory course.
The course web site can be accessed here:
**COSC 545
- Theory of Computation**.

In spring 2017, I am also teaching
a doctoral seminar on biological algorithms.
The course web site can be accessed here:
**COSC 844
- Doctoral Seminar in Biological Algorithms**.

In fall 2016, I am teaching the department's undegraduate
discrete math requirement.
The course web site can be accessed here:
**COSC 030 - Math Methods for Computer
Science**.

In spring 2016, I am teaching the graduate-level theory course.
The course web site can be accessed here:
**COSC 545
- Theory of Computation**.

In spring 2016, I am teaching a graduate-level course on distributed
algorithms. The course web site can be accessed here:
**COSC 546 - Distributed Algorithms**.

*(Notice, this course is also open to undergraduates
who are seniors and computer science majors: contact me if you are
interested.)*

In fall 2015, I am teaching the department's undergraduate
discrete math requirement.
The course web site can be accessed here:
**COSC 030 - Math Methods for Computer
Science**.

In fall 2014, I am teaching the department's undergraduate
discrete math requirement.
The course web site can be accessed here:
**COSC 030 - Math Methods
for Computer Science**.

In spring 2014, I am teaching the graduate-level theory course.
The course web site can be accessed here:
**COSC 545 - Theory of
Computation**.

In fall 2013, I am teaching an introductory undergraduate course
on distributed algorithms.
The course web site can be accessed here:
**COSC 242 - Algorithms
for Distributed Systems**.

In spring 2013, I am teaching the graduate-level theory course.
The course web site can be accessed here:
**COSC 545 - Theory of
Computation**.

In spring 2013, I am also teaching a graduate-level topics course on wireless network
algorithms. The course web site can be accessed here:
**COSC 747 - Topics in Wireless Network Algorithms**.

In spring 2012, I am teaching the graduate-level
theory course. The course web site can be accessed here:
**COSC 545 - Theory of Computation**.

In fall 2011, I taught a graduate reading
course that tackles my research interest in unconventional
distributed algorithm theory. The course web site
can be accessed here:
**COSC 547 - Distributed
Computing Outside the Box****.
**