The Department of Software Technology (ST) of the Faculty of Electrical Engineering, Mathematics, and Computer Science (EEMCS) of Delft University of Technology covers the design, engineering and analysis of complex, distributed and cooperative software and computer systems.
Together with the Department of Intelligent Systems (INSY), the department of Software Technology is responsible for all computer science research and education of the faculty.
In its research, the ST department wants to contribute both to the foundations of software and computer systems, and to the understanding of the operation of such systems. Therefore, its research approach is both fundamental - designing algorithms and abstractions, developing new concepts and theories, and identifying principles, as well as experimental - engineering and analysing the behaviour of actual systems. It is this combination of design, engineering and analysis that characterises the research of the department.
The department employs over 25 faculty and 100 postdoctoral and PhD researchers.
The department is organized into three layers with their corresponding sections: systems layer - Distributed Systems and Embedded and Networked Systems, software layer - Programming Languages and Software Engineering and information layer - Algorithmics and Web Information Systems covering the main research themes of the department. Additional there is the section Computer Science & Engineering Teaching Team covering all teaching activities of the EEMCS faculty.
The department's management team consists of the heads of the sections, director of BSc programme Computer Science Andy Zaidman, and the department coordinator Jasper van Dijck. The management team is chaired by the Head of Department Arie van Deursen.
The management team meets bi-weekly to discuss organizational matters. The full faculty also meets bi-weekly in its faculty lunch, to share the newest research ideas and emerging results.
The research mission of the Department of Software Technology (ST) is to conduct world-class research in the design, engineering and analysis of complex, distributed and data-intensive software and computer systems. Society is on its way to be completely dependent on such systems, which include online payment systems, smart grids, smart cities, and self-driving cars. Designers of these systems face many fundamental and practical challenges including managing their complexity, reliability, scalability, predictability, evolution, adaptability, and explainability.
In its research area of software and computer systems, the ST department covers the following three layers; each layer has two defined research programmes with their own research focus.
The systems layer, with the programmes Distributed Systems (the programming, effectiveness and efficiency of data centres and internet overlays) and Embedded and Networked Systems (micro- and networked controllers, with an emphasis on wireless systems).
Distributed Systems - DS - Distributed SystemsBlockchain Technology
ES - Embedded and Networked SystemsInternet of Things
Visual light communications
In the Distributed Systems programme, we aim at designing and understanding the operation of large-scale distributed systems.
- Blockchain Technology: How to design mechanisms for trust, reputations, privacy, and anti-censorship, and how to incorporate these mechanisms into trustworthy blockchain-based overlays?
- Big-Data Processing: How to enable efficient analytics over large and complex data sets on modern and emerging data centre infrastructure, and how to design efficient runtime systems for distributed computation at scale?
- Scheduling: How to design mechanisms and policies for schedulers in large-scale infrastructures that target modern and emerging hardware and compute data-intensive workloads
In the Embedded and Networked Systems programme, we are interested in improving the software development and maintenance process of embedded systems.
- The Internet of Things (IoT): How to craft the sensor and actuators for innovative IoT platforms that should be collaborative in nature, yet consume minimal resources to reduce operation costs?
- Software-Defined Networking: How to provide a robust, yet flexible network infrastructure accommodating the mobile systems and applications of the future?
- Visual Light Communications: How to unlock the demonstrated capabilities of visual light at the link level, and create/integrate LED-based networking serving realistic indoor scenarios?
- Intermittent Computing: How to architect autonomous battery-less systems that face frequent power loss due to the intermittent nature of ambient energy sources?
The software layer, with the programmes Programming Languages (the effectiveness and reliability of programming languages and their programming environments) and Software Engineering (software quality attributes and software developer productivity).
Programming Languages - PL - Programming LanguagesLanguage Engineering
SE - Software EngineeringSearch-based software engineering
Software engineering education and end user programming
In the Programming Languages programme, we aim at improving the effectiveness and reliability of programming languages and systems.
- Language Engineering: How can declarative language definitions be used to derive rich development environments for (domain-specific) programming languages?
- Program Analysis: How to define program analyses at a high-level of abstraction and efficiently and incrementally execute these definitions?
- Semantics Engineering: How to efficiently verify the consistency of language definitions in order to check properties such as type soundness and semantics preservation?
- Language Design: How to systematically design (domain-specific) software languages with an optimal trade-off between expressivity, completeness, portability, coverage, and maintainability.
In the Software Engineering programme, we aim at making the engineering of software more effective.
- Search-Based Software Engineering: How can search-based techniques be used to automate complex software development tasks?
- Software Analytics: How can streams of data collected from versioning, issue tracking, and continuous integration repositories be used to understand and improve the software development process?
- Software Engineering Education and End User Programming: How can non-developers be helped to become proficient in coding at a level suitable for their needs?
- Software Testing: What are effective software testing methods and techniques?
The information layer, with the two programmes Web Information Systems (the processing, retrieving and interpreting of human-ge-nerated web data) and Algorithmics (support for intelligent decision making in real-world applications).
Web Information Systems - WIS - Web Information SystemsWeb-based user modeling
Web data processing and retrieval
Human-enhanced web systems
ALG - AlgorithmicsModel-based reinforcement learning
In the Web Information Systems programme, we aim at making web information system engineering more effective in processing, retrieving and interpreting human-generated web data.
- Web-Based User Modeling: How can human-generated data that are retrieved and semantically enriched from the web, be used to enhance systems’ interpretation of people’s actions for user-adaptation?
- Web Data Processing and Retrieval: How to efficiently process data at web-scale and design effective information retrieval mechanisms for domain-specific web tasks?
- Human-Enhanced Web Systems: What are effective ways to augment web-based systems with automated, large-scale human computation and interaction?
In the Algorithmics programme, we aim to design, and understand the fundamental properties of, planning and coordination algorithms for intelligent decision-making in real world applications.
- Model-Based Reinforcement Learning: How to deal with uncertainty in planning?
- Multi-Party Optimization: How to account for strategic behaviour in multi-actor planning?
- Constraint Reasoning: How to support individual and group scheduling decisions?
- Meta-Heuristics: What are effective general heuristic methods to support decisions taking into account different preferences?
Furthermore, the department is involved in various cross-faculty initiatives. The most important of these are:
In our research, we collaborate with academic and industrial partners around the world. We welcome new collaborations. Contact the researcher closest to your interest.
The department plays a key role in various educational programs, including the following:
Mathematics & Computer Science (EE)MCS
Building 28 - Van Mourik Broekmanweg 6