Automata theory, grammars, and applications
We consider problems related to automata and grammars, including
learning these formalisms from data. We apply the theory to practical problems
in image processing, diagram understanding, music generation, regular
expression matchers, and more.
Program testing and verification
We work on testing, program analysis, symbolic execution, probabilistic
symbolic execution, logic-based techniques, and model checking, for both sequential
and concurrent systems. We also help to develop the widely used Java PathFinder
tool suite, as well as the CSeq and ESBMC tools that focus on analysing
concurrent and embedded software.
We consider various aspects of artificial intelligence, including
probabilistic modelling and machine learning, search algorithms, evolutionary
computing, and swarm intelligence. Application areas include, computer vision,
natural language processing, robotics and computer players for various games.
Broadband and mobile networks
We investigate incentive schemes to promote cooperation and improve
performance in mobile ad hoc networks. We also investigate protocols for data
forwarding in vehicular ad hoc networks. We investigate the behaviour of the
Bitcoin blockchain and the profitability of various dishonest data mining
COMPUTING AND SOCIETAL IMPACT
is an inter-disciplinary area, combining Computer Science with different
disciplines in interesting ways. It is about exploring an ecosystem comprising
overlapping iterative cycles of community-based co-elicitation of requirements,
co-design & planning, co-implementation & production, co-testing,
analysis and monitoring & evaluation and finally co-reflection on
Information and Communication Technology (ICT) tools in local languages and
local cultural ways, with and by local communities.