Ph.D. (Computer Science), Brown University, 2014
M.Sc. (Computer Science), Brown University, 2010
M.Sc. (Computer Engineering), University of Padua, Italy, 2009
B.Sc. (Information Engineering), University of Padua, Italy, 2007
My research concerns the development of efficient methods for the analysis of large datasets, including graphs, time series, and transactional datasets. My work focuses on designing randomized algorithms offering guarantees on their performances or on the quality of their output. These methods find application in areas such as biology, finance, and network science. To develop them, I employ tools from statistical learning theory, combinatorics, probability, graph theory, and mathematical optimization. The outcomes of my research include state-of-the-art algorithmic results for key data mining tasks, and implementations included in popular software packages and used in production in technology, financial, and commercial companies.
When we design algorithms and implement systems, we are required to make decisions that follow the best strategy, by exploring a trade-off space involving both theoretical and practical aspects. A well-chosen balance of these aspects will lead to the best outcome, i.e., the best algorithm and implementation. My objective as an educator is to enable students to make informed decisions when facing these questions and to argue convincingly about the validity of the choices they make. I teach courses on algorithms and data structures, data science and machine learning, graph analysis, and the use of probability and randomization in computer science. In these courses, I expose students to both theoretical rigorous-ness and practical ingenuity, so that they will be at ease with the dual nature of computer science as a mathematical and engineering discipline. I teach my students how to balance these two aspects and to communicate their choices effectively, abilities that will serve long after they leave the classroom.