I am a PhD student in computer science at the University of Pennsylvania. My advisor is Rajeev Alur. Here is my CV.
I graduated from Brown University in May 2016 (ScB Mathematics – Computer Science).
Research
My research interests include: (1) programming systems and abstractions for data stream processing; (2) formal verification; and (3) logical foundations of computing.
I attend the Penn PL Club:
Current research
We aim to improve the stateoftheart in streamprocessing systems by developing tools and programming abstractions on strong formal foundations. To improve programmer productivity, good tools should be reliable, i.e. they should have a clear underlying semantics free of unexpected behavior. They should be expressive enough to describe common computations and programming patterns. Finally they should allow for highlevel programming of the desired computation whenever the efficient lowlevel implementation can be inferred automatically.
Stream processing refers to the paradigm, increasingly critical in modern data processing and IoT applications, where data arrives at an extremely high rate and must be processed in realtime. Typically, algorithms in this setting are required to have a constant bound on space usage and a constant bound on the delay to process each element of the incoming stream. Successful algorithms usually exploit concurrency, and scale by distributing the computation among nodes in a distributed architecture. Popular streamprocessing frameworks include Apache Storm and Twitter Heron.
Existing systems generally provide very minimal overhead and achieve high throughput. They also aim to provide fault tolerance in the distributed setting. Orthogonal to this, however, there has not been a focus on developing an underlying framework and semantics which allows for reliable highlevel programming. Formal models which achieve this are elusive, with existing models either having completely lowlevel semantics or only supporting highlevel queries. We believe that programmer productivity can be improved by separating the logical view of the computation from the physical implementation, but allowing room for both.
Publications

Interfaces for stream processing systems, R. Alur, K. Mamouras, C. Stanford, and V. Tannen. Principles of Modeling: Festschrift Symposium in honor of Edward A. Lee, Robert S. Pepper Distinguished Professor. Berkeley, California, October 2017. Proceedings forthcoming.

Automatabased stream processing, R. Alur, K. Mamouras, and C. Stanford. 44th International Colloquium on Automata, Languages, and Programming (ICALP), July 2017.
Work in Progress

Data transducers for streamable regular functions, R. Alur, K. Mamouras, and C. Stanford. In preparation, December 2017.

Datatrace types for distributed stream processing systems, K. Mamouras, C. Stanford, R. Alur, Z. Ives, and V. Tannen. In submission, November 2017.
Other Projects

Formal verification of properties of knowledge (spring 2016)
My undergraduate capstone project at Brown was on verifying the solutions to several epistemic logic puzzles in the Alloy programming language. The abstract is here. You can also download the Alloy files and run them yourself; they are here.

Undergraduate research (summer 2015)
I attended the Complexity Across Disciplines Undergraduate Math REU in summer 2015. The work was in graph theory and combinatorics related to computational biology. We studied a particular operation, called a ‘contextdirected reversal’, on signed permutations — permutations of where each element is additionally given a sign.
The main result classifies exactly which signed permutations are sortable by contextdirected reversals. We are unable to provide a formula for the number of such signed permutations, but we relate signed permutations to a subclass of graphs, and provide a formula for the number of graphs sortable by an analogous graph operation. We prove that asymptotically it is 1/3 of all graphs.
Here are some slides on our work and a final poster which we presented at the Joint Math Meetings (JMM) in January 2016, winning an Outstanding Presentation Award.

SPEED computational complexity estimation (fall 2016)
For a project in CIS 673 (ComputerAided Verification), I gave a presentation on the paper SPEED: precise and efficient static estimation of program computational complexity. You can read my take on the paper in my project report, or take a look at the slides. See also the SPEED webpage.

Model theory notes (spring 2015)
With a group of 8 other students, I ran a group independent study project (GISP) on model theory, in the spring semester of 2015. The website for this class is still accessible here.
Here are some of the notes I wrote for the class:
(The notes are not entirely free of errors.)