Your selection corresponds to 26 entries
TU Darmstadt | Mathematisches und angewandtes Visual ComputingThe GRIS department deals with a wide range of research topics in graphical computing. The range of topics extends from geometric and semantic modeling, digital libraries, visual inference and digitization in computer graphics to medical image processing and visual analysis.
In addition, the department continuously offers both introductory courses, such as "Graphical Computing I and II, "Human Computer Systems, and advanced courses. These courses teach the basics of rendering with OpenGL, 3D data acquisition, illumination models, modeling with curves and surfaces, volume data, triangle meshes and many other topics. 
TU Darmstadt | Reaktive ProgrammiertechnologieOur research is dedicated to developing robust, secure and efficient software. The research includes the following main focuses:
Programming paradigms and languages for resilient decentralized data-intensive software systems
Learning systems are often interactive distributed software systems that are increasingly decentralized and act “on the edge”. The dominant architecture of interactive distributed software systems is usually based on centralized data storage and callback controlled interactions. However, callback-driven interactions are notorious for their complexity hell, and centralized data storage is not well suited in terms of offline availability, low latency, user control over privacy as well as overall architecture in the age of programmable network devices and powerful mobile devices and sensors. On the other hand, while decentralized data storage seems a natural choice to solve the problems of offline availability, low latency and data protection, when building distributed applications, developers can no longer rely on fault tolerance and concurrency control solutions built into centralized data storage systems and would have to deal with them at the application level. The Software Technology Group researches and develops declarative programming platforms inspired by functional reactive programming, not only in managing the complexity of enabling interactivity and real-time viability without the callback hell, but also by enabling language implementation to automatically handle complicated aspects of distributed software such as concurrency control and fault tolerance with strong “out-of-the-box” consistency guarantees.
Code intelligence: learning program analyses for automated software quality (e.g., discovering security vulnerabilities, data protection violations, API misuses, etc.)
In a digitalized world (“software is eating the world”), software quality in general and software security in particular play a central role. The research goal of the Software Technology Group at TU Darmstadt is to contribute to the development of high-quality and especially secure software. An important means for this are powerful intelligent methods and algorithms of program analysis, which automate the detection of different kinds of problems, rule violations and especially security vulnerabilities. Automated analysis or automated understanding of program code is a very difficult task (for example, the simultaneous assurance of precision and correctness is generally an unsolvable problem; abstraction and approximation, as well as the systematic deviation between the two goals are required). The analysis is made even more difficult if the code is obfuscated – for example, if obfuscated code is integrated into third-party software libraries.
The Software Technology Group’s research addresses the above mentioned challenges. On the one hand, we investigate architectural models of artificial intelligence in order to facilitate the systematic assessment between different objective functions (precision, correctness, performance). Specifically, we are developing a software analysis platform called OPAL, the core of which is a “blackboard system”, in which a common knowledge base, the “blackboard”, is iteratively updated by a diverse group of expertise sources (individual code analyses), starting with a problem specification and ending with a solution. On the other hand, we develop learning analysis algorithms based on machine learning methods, which learn patterns from large code bases that encode knowledge about the code. In particular, we have developed methods and learning program analysis to automate the verification of security vulnerabilities in code and data protection specifications, i.e. without specific expert knowledge, or to support developers in the correct use of programming interfaces and libraries and thus contribute to the correct use of programming interfaces and prevent the occurence of faulty code or security holes.
Development methods and declarative languages for AI software systems
The development of AI software systems differs significantly from that of classical software systems. For example, the handling of training data is the main focus in the development of AI software systems. Nevertheless, there is a lack of appropriate development methods and tools. Even though there are many libraries available for training models, e.g. TensorFlow, their correct use poses great challenges for developers without deep knowledge of the methods encoded in them and it requires automation. At the same time, tools that are usually used in software development for the analysis of software correctness are hardly available. Therefore, the group is researching new methods and tools that support developers in meeting these challenges and help to ensure that AI can be used by a larger circle of developers and thus be transferred to a broad application.
In addition to increasing productivity in the development of software systems with built-in AI components, another object of our research is the development of new software engineering methods to enhance the AI itself. For example, we are exploring ways to introduce ideas of reactive programming and modular programming into the pipeline design of ML APIs. Their stages are sequential and require a complete restart if a stage fails. Perspectively, we want to explore new programming languages to support the third wave of AI. Such AI integrates learned, modeled and built in knowledge and cognitive models to achieve human-like properties, for example by continuously extending existing knowledge and independently “thinking” logically. The von-Neumann machine model on which today's programming is based describes calculations on a level too low to be suitable for the complexity of third-wave AI. However, a new suitable model has not yet been systematically researched. Possibly, the same architectures that are used for the pipeline design of the ML APIs can be applied to the composition of different components of third wave AI. 


TU Darmstadt | Parallele ProgrammierungParallelism in a computer program is the ability to run it faster by using more than one processor at the same time. Parallel programming is the act of writing programs that can harness such parallelism. This becomes particularly relevant when there are no other optimization options left such as using a faster processor or algorithm. Given that technical constraints, in particular power consumption, limit the speed of individual processors, parallelism is permeating the world of computers.
However, the principle of parallelism predates the age of computers by far. Already our ancestors applied parallelism whenever a problem such as hunting big animals, harvesting a field, or constructing a house exceeded the capacity of individuals. Today, teamwork is the rule rather than the exception in almost every organization. The work in a team should be balanced, and team members need to synchronize their efforts to maintain the correct order among subtasks and avoid confusion.
Parallel programmers face similar challenges when orchestrating the work of multiple processors. Unfortunately, no compiler exists that can translate an arbitrary sequential program into a correct and efficient parallel program, leaving most of the work to human experts. To make their task easier and save their time, we create methods, tools, and algorithms that support the development and deployment of parallel software systems in various stages of their life cycle. In addition, we teach our students the skills to successfully exploit parallelism in their programs. 




TU Darmstadt | SystemsicherheitSystem Security is the protection of information systems from theft or damage to the hardware, the software, and to the information on them, as well as from disruption or misdirection of the services they provide. It includes controlling physical access to the hardware, as well as protecting against harm that may come via network access, data and code injection, and due to malpractice by operators, whether intentional, accidental, or due to them being tricked into deviating from secure procedures.
The field is of growing importance due to the increasing reliance on computer systems in most societies. Computer systems now include a very wide variety of “smart” devices, including smart phones, televisions and tiny devices as part of the Internet of Things – and networks include not only the Internet and private data networks, but also Blue-tooth, Wi-Fi and other wireless networks. 
TU Darmstadt | Visuelle InferenzThe Visual Inference Lab at TU Darmstadt, led by Prof. Stefan Roth, conducts research in several areas of computer vision with an emphasis on statistical methods and machine learning. We develop mathematical models and algorithms for analyzing and processing digital images with the computer. For example, we work on semantic scene understanding, image motion estimation, deep learning, probabilistic methods, image restoration, and object tracking.
Moreover, we regularly offer courses, seminars and labs in computer science, particularly in computer vision and machine learning. 
TU Darmstadt | Wissenschaft und Technik für Frieden und SicherheitAdvances in science and technology, especially in computer science, play an essential role in the context of peace and security. The Chair of Science and Technology for Peace and Security (PEASEC), headed by Prof. Dr. Christian Reuter in the Department of Computer Science with secondary membership in the Department of Social and Historical Sciences at the Technische Universität Darmstadt, combines computer science with peace and security research.
At the intersection of the disciplines of human-computer interaction, cyber security and privacy, and peace and conflict research, the 30-member PEASEC team addresses the following topics in particular:
Crisis Informatics and Information Warfare
Social media in conflict and crisis situations
Manipulation of Opinion and Fake News
Usable Security and Privacy
Resilient digital agriculture / cities
Security and privacy enhancing measures
Technical peace research
Cyber-Peace, -War, -Arms Control
Dual Use in Computer Science
Methodologically, empirical studies (qualitative and quantitative surveys of current developments, e.g. of the self-help organization during COVID-19) are combined with technical research (conceptualization of innovative interaction concepts, security mechanisms, privacy-enhancing technologies or machine-learning algorithms) and final evaluations in the application field (e.g. social media analytics for disaster control).
The interdisciplinary research is regularly awarded and published in about 250 scientific (mostly peer-reviewed) publications including the textbooks "Information Technology for Peace and Security" and "Safety Critical Human-Computer Interaction". The teaching covers the above mentioned research topics as well as the basics of computer science and was honored with the Athene Award for Good Teaching - Special Award Interdisciplinary Teaching.