New Faculty Spotlight: Liyi Li

February 5, 2024

Meet Liyi Li, our new Assistant Professor. He started in August of 2023. He received his Ph.D. in Computer Science from the University of Illinois at Urbana-Champaign in 2020. His research focuses on using formal methods and programming language tools to improve the security, reliability, and availability of software. During his career, he has published many refereed conference and journal papers. He also likes to interact with talented students and mentors Ph.D. students toward successful Ph.D. careers.

"The people here drew me to the department. The students here are strong, and I enjoy working with them. The professors here are also very talented, so we have many chances to collaborate together for more research.”

What drew you to the Department of Computer Science at Iowa State? What do you most enjoy about the department / what are you most looking forward to?

The people here drew me to the department. The students here are strong, and I enjoy working with them. The professors here are also very talented, so we have many chances to collaborate together for more research.

What attracted you to your specific area of research?

It is an accident at the beginning. I was a data scientist when I was an undergraduate. Then, I went into the field after I got advice from Elsa Gunter. After that, I found that I am used to the idea of functional programming and any programming language aspects.

Later, I was working on the compiler verification field. At that time, I found that everything is a compiler in CS because compilers mean to translate a complicated problem into another problem in another system that can be easily solved. This is why the University of Maryland, College Park hired me to do quantum computing research, because the quantum computing fields lack tools for them to solve problems, and compiling the programs in quantum computing to quantum machines or compiling problems in quantum computing to be solved by tools in traditional CS will play essential roles in the field.

Please tell us some key research questions you are trying to answer.

My research is about properties, such as correctness, of computer systems. Compiler verification is one of the main fields I am working on. This field is actually significant. For example, quantum compiler verification is one of the studies in the field. In addition, helping users write correct quantum programs whose properties can be learned is another critical topic. Classical compiler assurance is another field that I am interested in. For example, to ensure the memory safety of C programs, we developed the Checked-C system that adds type annotations to the C code so that we can guarantee the spatial safety of C programs. Obviously, people do not want to learn new programming languages, so we provide tools for them to automatically rewrite unsafe C code to safe Checked-C code. We plan to rewrite an extensive embedded system library to a safe version.

What are some long-term implications of your research? What is the impact of your research on the average person?

The quantum projects will have a big impact on people. I am developing tools for users to develop fantastic quantum algorithms. One issue in the quantum computing field is that there is no application. There is only a field of quantum algorithms, so the motivation for developing quantum computers is not urgent. The key here is that when programmers write programs, they need facilities to write good programs. No programmer will try to write something that cannot be tested. This is why many up-to-date quantum programs are small. If we have good tools, we can allow people to write comprehensive quantum programs, showing people the motivation for developing quantum computers. Classical compiler assurance actually matters to ordinary people a lot. For example, embedded systems are the computer systems people use in cameras, sensors, airplanes, and automated cars. If the systems there are unsafe or have the threats to be unsafe, it will really affect people’s lives.

What is one thing you hope that students who work with or study with you will walk away?

In my mind, a good CS graduate is at least a sound software engineer. If there is only one thing my students can learn from school, I hope it is software engineering skills. After the study, the students must be confident to show interviewers the projects they have done in their school years, the papers they have published, and, more importantly, show the code they have written for the interviewers so that the interviewers know how good the students are.

What is one thing you enjoy doing outside of work?

I spend time with my family and enjoy family time. I also would like to invite students and colleagues to have parties together.