2021 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:
Automatically Detecting and Fixing Software Bugs and Vulnerabilities
In this project, we will develop cool machine learning approaches to automatically learn bug/vulnerability patterns and fix patterns from historical data to detect and fix software bugs and security vulnerabilities. This project is partially funded by a Facebook Research Award (https://research.fb.com/programs/research-awards/proposals/probability-and-programming-request-for-proposals/).
Earlier work can be found here: https://www.cs.purdue.edu/homes/lintan/publications/deeplearn-tse18.pdf
More information: https://www.cs.purdue.edu/homes/lintan/
Crawling the Internet for Denial of Service Vulnerabilities
A student will explore the Internet looking for denial of service (DoS) vulnerabilities. DoS vulnerabilities prevent legitimate users from accessing a service, with implications ranging from financial costs to personal safety. In this project, the student will focus on algorithmic complexity vulnerabilities, where a particular input is particularly expensive for a web service to process. Such inputs will unfairly direct resources away from legitimate users and towards the attacker. To identify these vulnerabilities, the student will synthesize state-of-the-art web crawlers, analysis tools, and probing techniques to discover novel security vulnerabilities.
More information: http://davisjam.github.io
On-Line Programming Assessment
Computer programs are difficult to evaluate due to the large number of possibilities. Existing evaluation systems are restricted to simple programs or impose restrictions to limit possibilities. This project aims to build an online assessment system that can evaluate non-trivial programs and assist students learning computer programming.
SoCET: System on Chip Extension Technologies
The processors inside your cell-phone, automobile, television, etc. are some of the most complex and smallest devices created in human history, but with access to the right tools, design techniques, and fabrication facilities you can create new capabilities to be fabricated on silicon. Such processors are implemented in the form of a System-on-Chip (SoC). Design of SoC's and access to fabrication facilities are ordinarily extremely expensive and very restricted. However, thanks to industry and governmental support, interested undergraduates are able to join in the design, fabrication, and test of custom SoC's. The primary reason for the existence of the SoC team is to give students an integrated circuit design experience that as close as possible to what they would encounter in industry.
The technical objective of the SoC Team is to create and keep improving on an SoC design that we can then customize for special application and research needs. The team's major project is that of creating an SoC that is optimized for very small scale and low power machine learning applications, but there are numerous problems one can work on including modelling of a secure SoC architecture, design of chiplets, FPGA prototyping, extending a RISCV open source processor design, testing of recent chips designed by SoCET, analog circuit design, and using industry grade design verification techniques.
More information: https://engineering.purdue.edu/SoC-Team