WIKIMEDIA COMMONS

Research in Computer Science

Research in Computer Science at Heidelberg University covers a large number of working groups and interdisciplinary projects, some of which are listed below as examples. Also note that the students' theses in Computer Science (BSc, MSc, PhD) reflect a good picture of the current projects of the various working groups.

Some core research areas are listed below, which are presented in more detail on the pages of the Faculty of Mathematics and Computer Science, among others


Algorithms and Theoretical Computer Science

In the modern world, we are surrounded by algorithms. Every task performed by a computer, be it processing images, connecting to the internet, or using a credit card, requires a precise step-by-step guide that a computer can understand. This guide is an algorithm. But algorithms are not only for computers. At least 3600 years ago, algorithms were used in mathematics and to this day, many mathematical proofs are algorithmic. There are three primary questions one can ask about an algorithm; does an algorithm exist that solves a particular problem, if so, how much resources (computation, communication, memory, storage) does it require, and how fast is it when executed on a specific hardware?   >> more

 


 

Machine Learning and Image Analysis

Machine Learning is the science of extracting knowledge from data and experience, and Image Analysis is one of its main applications. Deep learning – machine learning with large artificial neural networks – has recently enjoyed big successes in solving challenging real-world tasks such as natural language translation, automated game playing, and medical image analysis. Increasing the scope of deep learning and ensuring its trustworthiness are among the hottest topics in computer science and applied mathematics. To this end, current research asks how to automatically define good network architectures for a given problem, how to train well even when data is scarce, how to assess the reliability of the results, how to guarantee prediction performance mathematically, and how to explain the decisions of deep networks to humans.  >> more


Software Systems and Engineering

Software Systems and Engineering focuses on the structure, behavior and quality of complex IT-systems in diverse contexts as well as on the development, operation and usage of these systems.

In Heidelberg, we focus on the qualities IT-security, reliability, maintainability and usability. For IT-security we develop methods for modelling and evaluation of attacks in order to develop countermeasures, in particular security models, cryptography, access measures, digital identities, penetration tests. For maintainability and usability, we develop methods for requirements engineering and rationale management to ensure high-quality software engineering processes over the whole product-lifecycle. Furthermore, we focus on parallel and distributed systems in terms of scalable data analysis, AI-based methods for programming support, and software reliability.   >> more


 

Data Analysis

Driven by continual advancements in sensor technology, experimentation, and simulation, we are witnessing an explosion in the amount and complexity of data being collected in various application domains. While already the management itself of such “big data” is a challenge, robust and efficient methods to analyze and explore such data is one of today’s key research and development areas, aimed at obtaining insights and through this driving innovations and business models.

The development and application of data analysis and exploration methods is typically closely tied to the application domain in which the data are generated and used. In Heidelberg, this takes place in a rich interdisciplinary setting, where research groups from different disciplines, ranging from the natural sciences, such as medicine, biology, and physics, to the social sciences and humanities, are collaborating with members of our research groups. The focus in these collaborations for the data analysis group is primarily in the areas of visual data analysis and text analysis.   >> more


Computer Engineering

Computer Engineering deals with the operation principles, development and utilization of hardware for acquiring and processing data. Through a thorough understanding of the elementary components, functional units, chips, computer architectures and of large, heterogeneous computing systems it is possible – through ‘hardware aware programming’ – to adapt algorithms to the strengths and weaknesses of the available hardware and to significantly increase compute performance and power efficiency. Specific computing tasks are addressed by application specific hardware/software combinations and by optimized system configurations.

Computer Engineering in Heidelberg has links to many research fields in the university where large amounts of data must be acquired or processed quickly. ZITI has the competences to develop electronics microchips for specific applications in sensing or data transport from scratch. Data communication being one of the largest sources of power consumption, is addressed on the hardware level, by hardware aware programming and adapted system design. Apart from efficient programming of modern processors, ZITI operates a variety of coprocessors (FPGA, GPU, ML-coprocessors) in order to exploit their specific strengths and research methods and workflows for most efficient data processing.   >> more