2022 Research Projects

Projects are posted below; new projects will continue to be posted. To learn more about the type of research conducted by undergraduates, view the 2021 Research Symposium Abstracts (PDF) and search the past SURF projects.

This is a list of research projects that may have opportunities for undergraduate students. Please note that it is not a complete list of every SURF project. Undergraduates will discover other projects when talking directly to Purdue faculty.

You can browse all the projects on the list or view only projects in the following categories:

Cybersecurity (2)


Making Blockchains/Cryptocurrencies Secure and Scalable for Billions 

Aniket Kate
Preferred major(s):
  • Computer Science
  • Computer Engineering
  • Mathematics - Computer Science
  • Computer Engineering Technology
  • Cybersecurity
Desired experience:
Programming proficiency/interest in Golang and Rust will be necessary. Knowledge about distributed systems, blockchains, cryptocurrencies will be useful.

The cryptocurrency boom has seen millions of people adopting digital assets; the recent economic successes of Bitcoin and several other blockchains/cryptocurrencies have enthused a broad population to explore them. The diversity in the needs and objectives of these cryptocurrency users is vast, ranging from just being enthused by technology to trading, sometimes even using all of their savings. With increasing adoption and valuation, the attacks on the system have also seen a rise. Moreover, the current systems cannot scale beyond a few million users. There is a desperate need to improve the blockchain architectures towards combating these issues. In collaboration with the blockchain industry, this project considers the security and scalability aspects of real-world blockchain solutions for finance, supply-chain, precision agriculture, and beyond.


Software for deep learning and deep learning for software 

Lin Tan
Preferred major(s):
  • Computer Science
  • Computer Engineering
  • Software Engineering
Desired experience:
Strong coding skills and motivation in research are required. Background in security or machine learning is not required but a plus.

Possible industry involvement: Some of these projects are funded by Facebook research awards and J.P.Morgan AI research awards. 

We have three openings for different tasks including those listed below.
NOTE: We especially encourage applications from women, Aboriginal peoples, and other groups underrepresented in computing.

*** Subproject 1. Testing Deep Learning Systems 

We will build cool and novel techniques to make deep learning code such as TensorFlow and PyTorch reliable and secure. We will build it on top of our award-winning paper (ACM SIGSOFT Distinguished Paper Award)! 

Machine learning systems including deep learning (DL) systems demand reliability and security. DL systems consist of two key components: (1) models and algorithms that perform complex mathematical calculations, and (2) software that implements the algorithms and models. Here software includes DL infrastructure code (e.g., code that performs core neural network computations) and the application code (e.g., code that loads model weights). Thus, for the entire DL system to be reliable and secure, both the software implementation and models/algorithms must be reliable and secure. If software fails to faithfully implement a model (e.g., due to a bug in the software), the output from the software can be wrong even if the model is correct, and vice versa.  

This project aims to use novel approaches including differential testing to detect and localize bugs in DL software (including code and data) to address the testing oracle challenge. 

Early work and background can be found here: 
EAGLE: Creating Equivalent Graphs to Test Deep Learning Libraries (our ICSE 2022 paper, forthcoming, check my homepage)

*** Subproject 2. Inferring Specifications from Software Text for Finding Bugs and Vulnerabilities

A fundamental challenge of detecting or preventing software bugs and vulnerabilities is to know programmers’ intentions, formally called specifications. If we know the specification of a program (e.g., where a lock is needed, what input a deep learning model expects, etc.), a bug detection tool can check if the code matches the specification. 

Building upon our expertise on being the first to extract specifications from code comments to automatically detect software bugs and bad comments, in this project, we will analyze various new sources of software textual information (such as API documents and StackOverflow Posts) to extract specifications for bug detection. For example, the API documents of deep learning libraries such as TensorFlow and PyTorch contain a lot of input constraint information about tensors. 

Early work and background can be found here: 

*** Subproject 3. Leveraging Deep Learning to Detect and Fix Software Bugs and Vulnerabilities

In this project, we will develop cool machine learning approaches to automatically learn bug and vulnerability patterns and fix patterns from historical data to detect and fix software bugs and security vulnerabilities. 

Early work and background can be found here: 

More information: https://www.cs.purdue.edu/homes/lintan/research.html