Kevin Joseph Leach

Sony Building, 4110 — Vanderbilt University

kevin.leach@vanderbilt.edu

 

Human Subject Recruitment

Students in my lab are actively recruiting participants for human subject studies. Please consider participating if you are eligible! You can get paid to participate! More information here.

(studies are approved by our Institutional Review Board)

Prospective students and postdocs

My group is currently full for the foreseeable future. However, if you feel you are strongly independently motivated to work in the areas of cybersecurity, software engineering, or artificial intelligence, please send me an email with your CV.

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.


Bio

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.


Fall 2024

I am teaching CS3276 - Compilers during the Fall 2024 semester. It is a great course that will prepare you for building big software systems. You should take this course.

This course entails developing an optimizing compiler during the semester, split across six 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? And more recently, how does compiler theory underpin Natural Language Processing and other applications of AI? CS3276 requires CS3270 (Programming Languages). However, if you would like to join the course without satisfying the prereq, please email me so I can consider your request.


Spring 24: CS8395 - Topics in Computer SecurityCourse websiteStudent reviews.

Fall 23: CS3276 - CompilersCourse websiteStudent reviews.

Spring 23: CS8395 - Topics in Computer SecurityCourse websiteStudent reviews.

Fall 22: CS3276 - Compiler ConstructionCourse websiteStudent reviews.

Spring 22: CS8395 - Topics in Computer SecurityCourse websiteStudent reviews.



Previous Teaching at UM

Winter 2021: EECS 481 — Software Engineering.

Fall 2020: EECS 481 — Software Engineering and EECS 484 — Databases.

Summer 2020: EECS 485 — Web Systems.

Spring 2020: EECS 481 — Software Engineering.

Winter 2020: EECS 498 — Conversational AI.

Fall 2019: I helped teach EECS 498 — Conversational AI.

Winter 2019: EECS 370 — Computer Organization.

Winter 2018: EECS 483 — Compiler Construction.


Milestones at a Glance

  • June 2024 — I received an ARPA-H award ($2,000,000) to develop automated binary analysis and patching techniques for medical device firmware (with James Weimer, Baris Kasikci). In press.
  • May 2024 — I have been invited again to visit the Air Force Research Laboratory this summer.
  • September 2023 — I received an NSA grant ($750,000) to study classification of malware with neural networks (with Taylor Johnson).
  • September 2023 — Along with several VU faculty and industrial researchers, our team has received a DARPA grant to build infrastructure for testing autonomous network security agents.
  • September 2023 — I received an NSF SaTC EDU grant ($500,000) to develop a middle school robotics and security curriculum in Tennessee (along with Akos Ledeczi and Corey E Brady).
  • June 2023 — I received a Seeding Success grant ($120,000) to develop infrastructure for using conversational AI agents to support mental health.
  • May 2023 — I have been invited to serve as a Visiting Scientist with the Air Force Research Laboratory this summer with the Griffis Institute.
  • April 2023 — I received an Amazon Research Award to support our group's efforts to improve robustness in document classification.
  • 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