Theoretical computer science (TCS) concerns the foundations of efficient and correct algorithms, and it deals with the tractability of computational problems. Applications include computational biology, cryptography, natural language tools, and complex technical systems.
Algorithms and Complexity
Solving a computational problem requires resources and the fundamental question studied in this research area is to determine, as closely as possible, the computational difficulty of basic problems.
We study the impact of network communication delays and failures on the behavior of networked software, where error handling is difficult to test with conventional means.
Computer science education research is an interdisciplinary area aiming at improving the understanding of how students learn computer science and how the teaching and assessment of computer science could be improved.
Data science has emerged as a key discipline to enable transforming the available data into knowledge products that bring insights into the corresponding domains, improve decision making, and accelerate scientific discovery.
A major current technological and societal challenge is to be able to produce software systems that behave in a reliable and predictable manner. We perform research into different ways of mastering software complexity.