I am Andrew K. Hirsch, an Assistant Professor in the Department of Computer Science and Engineering at the University at Buffalo, SUNY. My research is on programming languages for decentralized systems. My focus is on choreographic programming, a programming paradigm for message-passing concurrency. I also work on information-flow security, and on other, related, ideas. I’m currently recruiting students. If you’re interested in working with me, please send me an email!

Before I came to Buffalo, I was a postdoc at the Max Planck Institute for Software Systems (MPI-SWS) in Saarbrücken, Germany. I worked with Deepak Garg in the Foundations of Security group. I earned my Ph.D. in 2019 from Cornell University in Ithaca, NY, USA. There, I worked with Ross Tate on programming-language foundations, focusing on the theory of computational effects. Before that, I attended The George Washington University in Washington, DC, where I earned a Bachelor’s of Science degree in Computer Science and Pure Mathematics.


My Work at a Glance

Research

My research involves applying methods from the theory of programming languages and mathematical logic to concurrency and computer security. I’m especially focused on choreographies, static information-flow control, and authorization logic. I’m also interested in the theory of effects more broadly, especially reasoning about effects in lazy programming.

Teaching

In the fall, I’m teaching CSE 505: Foundations of Programming Languages.

Service

In my role as a computer scientist, I have acted in service to both my research community and my local community. On the research side, I have acted as a reviewer and have organized several meetings, including a regional meeting which attracted researchers from Cornell, Rochester Institute of Technology, Carnegie Mellon, and more.

Locally, I worked with the Ithaca School District to teach mathematics and computer science in elementary schools, giving young students a positive experience with both.


Students


Research Areas

Information-Flow Control

Computational Effects

Authorization Logic

Choreographic Programming


Papers By Date


Contact