I am interested in all aspects of the theory of computer science. This includes algorithmics, complexity theory, communication complexity, cryptography, probabilistic arguments, lower bounds, information theory, spectral analysis, discrete mathematics, data structures, simulations, and machine learning.


The essential building block in computer science is algorithms, which are recipes for how data is being manipulated, modified, moved, or otherwise altered. Without algorithms, there would be no computer science discipline. The first developed algorithms were deterministic strict step-by-step procedures used primarily for mathematical calculations. Algorithms come in many forms. They can for instance be deterministic, probabilistic, and non-deterministic. They can use interactions with users or other algorithms. They can be used to develop other algorithms, and they can simulate the evolution of complex systems.

Computing does not need bits

Algorithms are often implemented by manipulating bits (zeros and ones) on a computer. But computing is much more than a computer. Computing does not even need a computer. Computing is all around us. The rainbow, water rings, the construction of seashells, and patterns in leaves are easily visible and naturally occurring demonstrations of computations. Most computations take place at a scale so small we cannot see it with our naked eyes, and they utilize physical structures inherent for the computations. Water-repellent swimwear, self-darkening windows, wiring nerve cells to chips, and slowing down light are just some examples of where we humans are enforcing physical evolutions on materials by mingling physical objects with information theory and processing. Most of such evolutions take place at the atomic scale, the smallest possible scale at which we know how to reliably manipulate physical objects. The physical properties and laws at the atomic scale are determined, not by classical mechanics, but by quantum mechanics.

Quantum computing

How can we think of quantum mechanics as computations and information processing, and how can think of information processing in physical terms? Can we think more physically about computations, and, conversely, can we think more computationally about physical phenomena? Quantum computing is about these questions. Quantum computing is harnessing the powers of quantum mechanics for computations. Quantum computing is a foundation for gaining a more holistic understanding of the connections between the physical world, information theory, computer science, and mathematics.

Fundamental questions

My research interests are on these fundamental connections between computer science, algorithmics, mathematics, and the physical world. Can we utilize quantum mechanical systems in algorithmics, complexity theory, cryptography, communications, information theory, and simulations? Can we gain a deeper understanding of algorithms by studying quantum mechanical systems? Can we gain a better understanding of quantum mechanics and evolutions of physical systems? Is physics a matter of information theory? These are questions that are motivating my research and work in quantum computing and theoretical computer science.