Gramoz Goranci is a tenure-track assistant professor at the Faculty of Computer Science, University of Vienna. He is broadly interested in algorithm design, and its connections to optimization, graph theory and machine learning. His recent research has centered around the design of fast and provable dynamic algorithms for graph-based optimization problems.
Previously, he was an advanced fellow at the Institute for Theoretical Studies, ETH Zurich. He completed his postdoc at the Theory Group, University of Toronto, held a permanent lectureship at University of Glasgow, and was a visiting researcher at College of Computing, Georgia Insititute of Technology. He received his PhD from University of Vienna under the supervision of Monika Henzinger.
At the beginning of his employment, he provided us with comprehensive insights into his research work and also shared his opinion on the research field of computer science. Additionally, he provided valuable advice for beginners in the field of computer science.
How did you get interested in Computer Science?
During high school, I was fortunate enough to attend a specialized program in Mathematics and Computer Science. This involved a lot of exposure to these two subjects, and I even learned the basics of C++ programming during that time. The instant feedback aspect of programming, where you write some code and then test if the code does what you intended to do, is what initially got me hooked on computer science.
Since Computer Science is a very broad field, what does Computer Science mean for you?
While computer science is a broad term, in the classical sense, I would describe computer science as the process of modeling a real-life problem in an abstract way (depending on the computational model), coming up with a solution to that problem while keeping in mind constraints of the model such as memory/space/communication, etc., and finally, being able to translate these solutions into a language that computers understand.
What makes Computer Science fascinating for you?
The three aspects of computer science that make it so fascinating for me are (i) impact on society, (ii) impact on other (traditional) sciences, and (iii) the ample opportunities it offers for creativity and innovation. Computer science has a profound impact on almost every aspect of modern society, and in addition to its obvious connection to mathematics, it has successfully managed to establish strong connections to many other scientific disciplines. For me, personally, the creative problem-solving aspect as well as the relevance of the problems we study make it a particularly exciting field to work on.
On his Research
How would you describe your research in one sentence?
I design provable algorithms that react quickly to changes in dynamic networks.
What is your area of research and what sets it aside from other areas in your field?
I primarily work on designing and analyzing fast static and dynamic algorithms for fundamental graph problems such as shortest paths, maximum flow, solving Laplacian systems and clustering. Within theoretical computer science, my research focuses on providing “positive” results, while there are other neighboring areas that look at the same problems from a different angle, e.g. in complexity theory, one is intentered in providing “negative” or hardness results.
In a broader context, my area draws upon tools from different branches of mathematics to prove the correctness and running time analysis of the algorithms we invent. This is in contrast to more applied areas of computer sciences, where more emphasis is put on the empirical evaluations of algorithms. Luckily, I was also involved in a few projects where we managed to design algorithms with strong theoretical guarantees that performed reasonably well in practice, thus combining the best of both worlds.
Where do you see the connection between your research and every-day life?
Consider the following problem that navigation systems (e.g., google maps) need to solve on a regular basis: suppose you’re driving from Vienna to Munich and there is a traffic jam on the highway. The navigation system needs to react to this change in the underlying road network by telling you that you should either stay on the same route or take a faster alternative route. However, to be able to do so, it needs to run some computation in the background. These computations are usually very costly if done naively, as road networks tend to be complex in structure and of massive size.
My research is concerned with casting the above scenario as a graph-theoretic problem, and understanding, from a theoretical viewpoint, how fast navigation systems can react to potential traffic jams by exploring only small parts of the network, while still provably guaranteeing a fast alternative route for the driver.
What are the 3 most important ingredients for a successful research project?
In an ideal situation, I would say (i) picking an important research problem, (ii) having deep interest and motivation to work on the problem, and (iii) developing the necessary background to tackle the problem as well as having a “big appetite” for failure when trying to solve it, hoping that one manages to eventually turn it into a success.
This is difficult to simulate on every research project one works on, but having a few such projects under one's belt is priceless.
Additional Questions about the Field and Teaching
What gives you joy in the field of work?
The most rewarding aspects of doing this job are (i) freedom to work on problems I’m excited about, (ii) working with students and seeing them thrive, and (iii) the opportunity to collaborate with many talented, international researchers.
Why do you think there are still fewer women in Computer Science than men?
I think that this has mainly to do with stereotypes and the perception of computer science as male-centered discipline. What’s even more alarming is that there are studies that show the gender gap was much smaller in the 80’s, and many events afterwards led to computer science becoming less diverse. This means that our discipline is missing out on a large pool of talent, and I think that we as a department need to come up with measures to decrease this gap. One thought would be to increase our outreach activities and showcase the female role models in our department, or improve the visibility of the extension curricula (EC) offered by the University of Vienna, which would potentially help increase awareness about computer science across other disciplines where women to men ratio is better.
Which talents should people bring along for a career in Computer Science?
I tend to not believe much in talent as an innate ability, but I would say that some mathematical maturity and problem solving skills are required in nearly every area of computer science. Some of the skills that one needs for a scientific career in any scientific discipline are motivation, time management, treating the research process as a marathon instead of a sprint and cultivating one’s research taste.
Your advice to today’s first-year students?
Spend a lot of time understanding the foundations, stay open, curious and take as many classes as you can; you never know what you’ll like best until you try it. Attend the lectures in person so you have the opportunity to develop lasting friendships with your peers, and finally, don’t forget to have fun and enjoy yourselves.