Meet the Faculty - Mattia Fazzini
Tell us about your journey to the University of Minnesota. How did you become interested in computer science and your specific field?
I first became interested in computer science in high school. One of the most exciting activities for me during the week was going to the computer lab and learning how to program and work with computers. I realized then that computers would be a part of my life, and I decided to study computer science.
After my undergraduate degree in Italy, I traveled around with different experiences and then decided to do a master’s degree at the Politecnico di Milano in Italy. By chance, my PhD advisor-to-be there was on sabbatical from the United States. He was a professor at Georgia Tech at the time, and he suggested doing a master's thesis with him. I did — and also earned my PhD at Georgia Tech. After that, I came to the Twin Cities because the Department of Computer Science and Engineering is great, and I found the area to be a perfect match for me and my family.
Tell us more about your current research.
The general theme of my research is devising techniques to improve software quality — particularly, techniques, testing, and maintenance of software. I have a great PhD student currently working on improving software tests so that they are more maintainable and easier to understand for developers. Another project looks at finding failures in software based on log messages that come in after the software was deployed. I am also working on a project where we figure out how to automatically reproduce the problem after a bug report has been filed.
The most recent interesting aspect of my research is how Large Language Models (LLMs) can be leveraged for improving software quality. One recent project on this focuses on generating smaller tests from larger tests with LLMs so that engineers can more easily debug their software.
Which courses do you typically teach? What can people expect to get out of those courses?
I teach CSCI 3081W - Program Design and Development. I like this class because it teaches the building blocks students need for software engineering. It’s a large class, and it's very dense, but I think students get a lot from it.
I also teach CSCI 5802 - Software Engineering II, which is the more advanced level software engineering class. The class has both undergraduate and graduate-level students. In the class, students learn advanced techniques to test software. We go deep into some topics related to the research I do, and students really understand how to assess software quality in software systems.
I’m very excited for the new class I am creating, CSCI 4821 - GenAI for Software Engineering. It will be offered this coming fall and spring. We are at a very transformative point in computer science with AI, and this change has implications on software engineering. I’m designing this new class so students are aware of how to develop software and take advantage of the tools in this new era with LLMs and generative AI.
What do you do outside of the classroom for fun?
I’m really into sports. I am on a curling team that plays weekly. I also play padel and golf. I’m very attached to my culture as well — I am originally from Italy. It’s a part of myself I would like students to know about. I still care a lot about my heritage, and students can always ask me about it.
Do you have a favorite spot on campus or in the Twin Cities?
Something I love about the Twin Cities in general is that you can do anything you want at any time. Everything is within 30 minutes of you. You can find a place to ski or golf. If you want good quality food, you can find it in the Twin Cities. My favorite restaurant is Punch Pizza. I believe it has the best quality-to-cost ratio pizza you can find in the U.S.
Is there anything else you would like students to know?
When I’m in my office, my door is always open. Students can always stop by to talk or set up a meeting. It can be about research, advice on how to approach a career in computer science and software engineering, or anything.
Related to generative AI, I want to say that students need to embrace the change, not fight it, and to not worry too much. The other thing is that computer science is fairly young, and it keeps quickly evolving. So, as a computer science student, you need to have a passion for learning and adapting to whatever is next.