Kevin Joseph Leach

Sony Building, 4110 — Vanderbilt University


Prospective students and postdocs

I am actively recruiting motivated PhD students, postdoctoral fellows, and undergraduate researchers. If you are interested in working in the areas of cybersecurity, software engineering, or artificial intelligence, please send me an email with your CV. Please see this document for more information.

Fall 2022

I am teaching CS3276 - Compiler Construction for the Fall 2022 semester at Vanderbilt. This course entails developing an optimizing compiler during the semester, split across five programming assignments. Compiler theory underpins a wide swath of computer science topics; compilers fundamentally enable all of the programming practices we use every day. How does clang work under the hood? Why do we have classes and objects? Why does C/C++ require semicolons but Python requires whitespace? How do compilers optimize code for you? CS3276 requires CS3270 (Programming Languages). However, if you would like to join the course without satisfying the prereq, please email me with an explanation so I can evaluate your preparedness for the course.

If you are considering CS3276, the course website from my previous offering at the University of Michigan is here. The course will cover much of the same material, though with some modifications for the Vanderbilt curriculum. In particular, I recommend completing the assignments in Python, and I will incorporate new lecture material to introduce Python. Feel free to email me if you have questions or concerns.

Finally, I know the 9:30AM time is earlier than we might like. However, the choice given to me was between MW at 8:30 or TW at 9:30m, so I chose the lesser of two evils :). I hope you'll consider joining!

Spring 2022

I am teaching CS8395 - Topics in Computer Security for the Spring 2022 semester at Vanderbilt. The course website is available at

CS8395 has no hard prerequisites, though I recommend an understanding of computer architecture (e.g., assembly, especially x86-64), virtual machines (e.g., VirtualBox), and operating systems (e.g., processes, memory management, networking). We will cover necessary material in class.

CS8395 will be a research-focused graduate-level course. While there will be some structured assignments to get you started, there is an expectation of independence in reading, discussion, and completion of a term research project.

I am an Assistant Professor of Computer Science at Vanderbilt University. Previously, I was a Senior Research Fellow in the Computer Science and Engineering Division at the University of Michigan—Ann Arbor, where I was engaged in a variety of research spanning security, software engineering, and artificial intelligence. Prior to UM, I was a Research Scientist in the Robust Low Power VLSI group at the University of Virginia. I received my PhD in Computer Engineering at the University of Virginia under the guidance of Wes Weimer. I work across a variety of disciplines, including systems security, software engineering and human studies, conversational artificial intelligence, and medical informatics.

I received my MS in Computer Science at George Mason University in 2013. My advisor was Angelos Stavrou. I received my BS with Distinction in Computer Engineering and Computer Science from the University of Virginia in 2011.

If you are a Computer Science student looking for advice on the job market, please see the CS Grad Job Guide to which I have contributed.

Previous Teaching at UM

For the Winter 2021 semester, I taught EECS 481 — Software Engineering.

For the Fall 2020 semester, I taught EECS 481 — Software Engineering and EECS 484 — Databases.

For the Summer 2020 semester, I taught EECS 485 — Web Systems.

For the Spring 2020 semester, I taught EECS 481 — Software Engineering.

For the Winter 2020 semester, I taught EECS 498 — Conversational AI.

For the Fall 2019 semester, I helped teach EECS 498 — Conversational AI.

For the Winter 2019 semester, I taught EECS 370 — Computer Organization.

For the Winter 2018 semester, I taught EECS 483 — Compiler Construction.

Milestones at a Glance

  • January 2022 — I have accepted a tenure-track Assistant Professorship at Vanderbilt University.
  • September 2017 — I accepted a Senior Research Fellow position at the University of Michigan in Ann Arbor.
  • December 2016 — I successfully defended my doctoral dissertation.
  • April 2016 — I received the Louis T. Rader Graduate Research Award.
  • May 2015 — I successfully defended my dissertation proposal.
  • August 2014 — I successfully passed my Qualifying Exam.
  • January 2014 — I received an $81k grant from MIT Lincoln Laboaratory to support my PhD research.
  • May 2013 — I received my MS in Computer Science from George Mason University