Most of the completed M.Sc. Final Project reports are publicly available at https://purl.utwente.nl/essays/. We maintain a complete list (currently being completed) from 2021 onwards below, and list a selection of completed projects from prior years.
2026
- Harry Braam: Spatio-Temporal Networks for Detecting Dim Targets in Cluttered Radar Environments (supervised by Faizan Ahmed)
- Rob Kooiker: Product configuration through MaxSAT solving (supervised by Tom van Dijk)
- Gengrun Li: Model-Based Testing of a WOOL-based Medical Chatbot: From Dialogue Scripts to Python Tests (supervised by Marcus Gerhold)
- Fieke Middelraad: .NET MAUI: how usable is it for a cross-platform mobile app, and how does it compare to others? (supervised by Marieke Huisman)
- Tim Mulder: GovtBench: A Large Language Model benchmark and evaluation framework for the Dutch public sector (supervised by Faizan Ahmed)
2025
- Tayfun Akin: Self Organised Criticality and Avalanche Detection in Neural Networks. (supervised by Moritz Hahn)
- Iusof Al-Salekh: Enhancing VerCors's User Interface Experience: Integrating Language Server Protocol for Improved Usability (supervised by Marieke Huisman and Robert Mensing)
- Lars van Arkel: Procedural generation and validation of fixed-viewpoint digital nature landscapes. (supervised by Marcus Gerhold and Vadim Zaytsev)
- Boris Belchev: Code Green : Evaluating the Carbon and Energy Implications of LLM Integration in Software Development. (supervised by Fernando Castor)
- Ivo Broekhof: Maintainability Metrics for Mixed-Paradigm Code in Scala. (supervised by Vadim Zaytsev)
- Srivatsa Chidara: From Unknown to Understood: Evolution of XAI Over Active Learning Cycles. (supervised by Faizan Ahmed)
- Andrei-Ion Covaci: Wi-Fi MAC address randomization vs Crowd Monitoring (supervised by Georgiana Caltais)
- Aron Davids: Evaluating Strategic AI Techniques and Personality-Driven Behavior for Commercial Turn-Based Card Games: A Case Study in Candor’s (supervised by Marcus Gerhold)
- Anissa Donkers: Exploring Code Quality in First-Year Java Projects: A Comparative Study of Traditional and AI-Assisted Solutions (supervised by Vadim Zaytsev)
- Kirill Fedorov: Transformation of Attack-Defense Trees into 2-player Game Automata (supervised by Milan Lopuhaä and Reza Soltani)
- Pelle de Greeuw: Evaluating Ordering Strategies For State Elimination. (supervised by Moritz Hahn)
- Valentijn Hol: Explorations in Quasi-Polynomial Algorithms for Parity Games. (supervised by Tom van Dijk)
- Alexander Ivakin: Causal analysis of faults in actor-based models (supervised by Georgiana Caltais)
- Franka van Jaarsveld: Practical Probabilistic Program Verification using Caesar. (supervised by Stefano Nicoletti and Joost-Pieter Katoen)
- Serge Johanns: Efficient Deductive Synthesis of Programs with Pointers. (supervised by Marieke Huisman, Tom van Dijk and Alex Skopalik)
- Cato de Kruif: Optimising Digital Queues Using Transformers and Process Mining. (supervised by Faizan Ahmed)
- Tom Meulenkamp: Relational Parsing – Form Academics to Practice. (supervised by Vadim Zaytsev)
- Wander Nauta: AValAnCHE: Improving robustness of the VerCors verification toolset using fuzzing. (supervised by Marieke Huisman and Marcus Gerhold)
- Faisal Nizamudeen: Benchmarking the Programming Capabilities of Large Language Models. (supervised by Vadim Zaytsev)
- Rens Oliemans: Replicating "Reinforcement Learning: An Introduction" by Sutton and Barto (supervised by Arnd Hartmanns)
- Lenn Perik: Leveraging Generative Pre-trained Transformers for the Detection and Generation of Social Engineering Attacks : A Case Study on YouTube Collusion Scams. (supervised by Rom Langerak)
- Aleksandar Petrov: Converting Attack-Fault Trees into Markov Decision Processes for Quantitative Analysis in PRISM. (supervised by Milan Lopuhaä-Zwakenberg and Reza Soltani)
- Sjoerd Plat: From Correlation to Causation: A Causal Discovery Approach to Optimizing SonarQube Rules for Fault Prediction (supervised by Petra van de Bos)
- Caz Saaltink: Model Checking DOGLog : Implementing Risk Assessment with Object-Oriented Disruption Graphs. (supervised by Moritz Hahn)
- Peter Smit: A study on static taint analysis techniques in Ruby. (supervised by Marcus Gerhold)
- Lotte Steenmeijer: Use weighted attribute grammars to formalize human-to-machine communication in Internet of Things systems. (supervised by Vadim Zaytsev)
- Luc Timmerman: SCREAM: System for Cloud Resource Extraction And Motivation. (supervised by Vadim Zaytsev and Fernando Castor)
- Youri Tomassen: Explanation Guided Learning for Sports Video Data. (supervised by Alexia Briassouli and Tom van Dijk)
- Katiuscka van Veen: XAI In Fraud Detection : A Causal Perspective. (supervised by Faizan Ahmed)
- Laurens van der Wal: Lightweight Scheduler Sampling for Hybrid Automata. (supervised by Arnd Hartmanns)
- Nick Wolters: Building a Grammar: Generating Samples for Weighted Attribute Grammars (supervised by Vadim Zaytsev)
- Ken Yeh: From Modeling to Verification: Translating SysMLv2 to PNML Compliant Petri Nets. (supervised by Vadim Zaytsev)
- Sophie Weidmann: Contrastive Prompt Tuning: Towards Energy-Efficient Code Generation (supervised by Fernando Castor)
- Grigory Baranov: From Questions to Solutions: Analyzing Software Energy Consumption Through Stack Overflow (supervised by Fernando Castor)
2024
- Feije van Abbema: Enhancing Vessel Re-identification with RGB-Infrared Multi-Modal Techniques. (supervised by Faizan Ahmed)
- Jan Douwe Beekman: Error bounds for floating points in Isabelle/HOL. (supervised by Peter Lammich)
- Ties Bolding: Introducing Automated Testing into an Existing Codebase with Limited Effort. (supervised by Petra van den Bos)
- Niels Bos: Enhancing Portfolio Management Efficiency through Automated Scheduling: Harnessing Genetic Algorithms. (supervised by Moritz Hahn)
- Wouter Bos: Generating Piping & Instrumentation Diagrams from Static Fault Trees. (supervised by Marielle Stoelinga)
- Nele Budde: Automatic evaluation of fault-tree-based student exercises. (supervised by Moritz Hahn)
- Danut Copae: Attack-Defense Trees with Offensive and Defensive Attributes. (supervised by Marielle Stoelinga)
- Rafael Malach Dulfer: WAGon: A Weighted Attribute Grammar Oriented Notation. (supervised by Vadim Zaytsev)
- Daniël Floor: Code comprehension in the multi-paradigm environment Kotlin. (supervised by Vadim Zaytsev)
- Jelle Hulter: Data access paradigms in enterprise software development. (supervised by Fernando Castor)
- Filip Ivanov: CodeQuizzer: Improving codebase understanding for code review via a gamified quiz taking system. (supervised by Vadim Zaytsev)
- Dylan Damian Janssen: Design and Implementation of new features for Runtime Permission Verification in Concurrent Java Programs using VerCors. (supervised by Marieke Huisman and Pieter Bos)
- Oebele Lijzenga: Generating Patch Ingredients for Search-based Program Repair using Code Language Models. (supervised by Vadim Zaytsev)
- Michael Mulder: From Behaviours to Code : Exploring Behaviour-Driven Development in Unity 3D Game Creation. (supervised by Petra van den Bos)
- Theodor Fabian Niculae: The ChatGPT Effect: An Analysis of Topic Modeling and User Interaction on StackOverflow. (supervised by Faizan Ahmed)
- Manzi Aimé Ntagengerwa: Towards gradual typing: a type-shifting Python language implementation. (supervised by Peter Lammich)
- Koen Reefman: Using LLMs to aid developers with code comprehension in codebases. (supervised by Fernando Castor)
- Mart de Roos: Faster Mutation Testing through Simultaneous Mutation Testing. (supervised by Arend Rensink)
- Ömer Sayilir: Towards Grammatical Inference of Legacy Programming Languages. (supervised by Vadim Zaytsev)
- Matthias Sleurink: Verified Parser- and Printer-Combinator Bidefinition in the Isabelle Proof Assistant. (supervised by Peter Lammich)
- Alexander Stekelenburg: Solving Parity Games: Combining Progress Measures and Tangle Learning. (supervised by Tom van Dijk)
- Thomas Stouten: Modeling the effectiveness of treatment for Rheumatoid Arthritis with UPPAAL. (supervised by Rom Langerak)
- Naum Rosenov Tomov: Extensibility Of Domain-Specific Languages: A Case Study of an Industrial DSL. (supervised by Vadim Zaytsev)
- Suzanne van der Veen: A Formal Proof for the Correctness of Tangle Learning. (supervised by Tom van Dijk and Peter Lammich)
- Mark van Wijk: The State of Multi-Objective Model Checking. (supervised by Arnd Hartmanns)
- Ellen Wittingen: Deductive verification for SYCL. (supervised by Marieke Huisman, Ömer Şakar)
2023
- Marnick van der Arend: The LAMP Framework — A Language-Agnostic Code Quality Assurance Framework for Multi-Paradigm Languages (supervised by Vadim Zaytsev)
- Mart van Assen: Integrating the Five Steps of Plotting: A Plotting Tool Design. (supervised by Faizan Ahmed)
- Stijn Berendse: Towards explainable machine learning for prediction of disease progression. (supervised by Faizan Ahmed)
- Jan Boerman: Verifying a Parallel Graph Algorithm (supervised by Marieke Huisman and Bob Rubbens)
- Stijn Broekhuis: Incorporating User Inputs for Improved JSON Schema Inference. (supervised by Vadim Zaytsev)
- Bram Dekker: Semi-supervised point cloud segmentation on railway data (supervised by Faizan Ahmed)
- Nathan Doornenbal: Providing Information for the implementation of hybrid learning in Dutch Pre-vocational secondary education (with Marcus Gerhold as committee member)
- Tom Grooters: Analysis of automated Virtual Machine generation and automation around system testing at TKH Airport Solutions (supervised by Petra van den Bos)
- Max Hendriks: Consider it Parsed! (supervised by Vadim Zaytsev)
- Joshua Jeeva: Risk Assessment of Humanoid Robot EVE-r3. (supervised by Marielle Stoelinga)
- Puck Kemper: Designing Dynamic Digital Environmental Enrichment for Capuchin Monkeys (with Marcus Gerhold as committee member)
- Maaike Keurhorst: A Closed Domain Question Answering System for a Genetic Counselor within the ECG Family Clinic (with Marcus Gerhold as committee member)
- Dylan Koldenhof: Neural Network Backdoor Removal by Reconstructing Triggers and Pruning Channels. (supervised by Moritz Hahn)
- Joël Ledelay: Verification of distributed locks : a case study. (supervised by Marieke Huisman and Bob Rubbens)
- Yujie Liu: Testing and Mutation Testing for GPU Kernels. (supervised by Marieke Huisman and Marcus Gerhold)
- Frank van Mourik: IterSHAP: an XAI feature selection method for small high-dimensional datasets. (supervised by Faizan Ahmed)
- Jorik van Nielen: Dynamic Detection and Classification of Persistence Techniques in Windows Malware. (supervised by Marieke Huisman, Andrea Continella and Jerre Starink)
- Dré van Oorschot: VCLLVM: A Transformation Tool for LLVM IR programs to aid Deductive Verification. (supervised by Marieke Huisman and Ömer Şakar)
- Andrej Pištek: Dynamic variable reordering for Binary Decision Diagrams (supervised by Tom van Dijk)
- Andrei Popa: Gotta adjust them all! -- Dynamic Difficulty Adjustment of Role-Playing Games Through Procedural Content Generation of Non-Player Characters (supervised by Marcus Gerhold & Vadim Zaytsev)
- Arthur Rump: Apollo++: Automated Assessment of Learning Outcomes in Programming Projects. (supervised by Vadim Zaytsev)
- Joost Sessink: Parallelising a Probabilistic Model Checker (supervised by Arnd Hartmanns)
- Stijn Slebos: Experimental study of a novel RF sensing application for measuring soluble sugar and electrical conductivity in the tomato plant stem (with Marcus Gerhold as committee member)
- Reinier Stribos: A comparison of Anomaly Detection Algorithms with applications on Re-Coater Streaking in an Additive Manufacturing Process (supervised by Marielle Stoelinga)
- Konrad Socha: Fuzzy Markov chains (supervised by Moritz Hahn & Matthias Volk)
2022
- Dennis Aanstoot: Graph Rewriters as Components (supervised by Arend Rensink)
- Jander Gilbers: Automatic Fault Tree Inference using Reinforcement Learning (supervised by Marielle Stoelinga)
- Ivan Hop: On the Performance of Algorithms for Quantitative Verification (supervised by Arnd Hartmanns)
- Ramon Houtsma: An explainable Machine Learning Approach to Risk-Adaptive Access Control (supervised by Marielle Stoelinga, in cooperation with DACS)
- Wytse Rekker Verification of a SysML railway specification with a translation to UPPAAL (supervised by Rom Langerak)
- Jan Smits: Callisto - Selecting Effective Mutation Operators for Mutation Testing (supervised by M.H. Everts and Ansgar Fehnker)
- Nander Voortman Modelling OSA Diagnosis and Treatment using UPPAAL (supervised by Rom Langerak)
2021
- Remco Abraham: Symbolic LTL Reactive Synthesis (supervised by Tom van Dijk and Salomon Sickert (TUM))
- Pieter Bos: Program Verification for Quantum Algorithms (supervised by Marieke Huisman)
- Gerlof Bouma: Web Server Loads under Visitor Surges: A Model-Based Prediction (supervised by A. Hartmanns)
- Nhat Bui: Negomancer : Improvise. Adapt. Overcome. Transform. (supervised by Vadim Zaytsev)
- Stephanie Drerup: Deductive Verification of Integrated Hardware/Software Systems with the VerCors Verification Tool (supervised by Paula Herber, Marieke Huisman, Raúl Monti, at WWU Münster)
- Han Hollander: Verification of a model checking algorithm in VerCors (supervised by M. Huisman and Ö.F.O. Şakar)
- Ramesh Krishnamurthi: ADA Software Model Checking (supervised by Marieke Huisman, Raúl Monti, Jacques Verriet (TNO) and Yonghui Li (TNO))
- Hans van der Laan: Incremental Verification of Physical Access Control Systems (supervised by Raúl Monti and Wouter Kuijper (NEDAP))
- Alberto Martinez de Murga Ramirez: Dead Code Detection on Strict ECMAScript 6 Projects (supervised by Vadim Zaytsev at the UvA Software Engineering programme)
- Lars Meijer: Test case shrinking for Model Based Testing on Symbolic Transition Systems (supervised by Marielle Stoelinga)
- Samarjeet Patil: Automated Vulnerability Detection in JAVA Source Code using J-CPG and Graph Neural Networks (supervised by Erik Tews (UT SCS), Marieke Huisman, Decebal Mocanu (UT DMB))
- Mike Pingel: Leveraging machine learning and process mining to predict anaemia with the help of biomarker data. (supervised by Faiza A. Bukhsh (UT DMB), Faizan Ahmed)
- Arnaut Scholten: Efficient matching of heterogeneous roadmap data at Rijkswaterstaat (supervised by Marielle Stoelinga and Rolf de By)
- Jerre Starink: Analysis and Automated Detection of Code Injection Techniques in Malware (supervised by Andrea Continella (UT SCS) and Marieke Huisman)
- Antoine Veenstra: Accelerating Mixed-level Coverage Array generation (supervised by Marieke Huisman and Takashi Kitamura (AIST))
- Rick de Vries: Clash of Clangs : differential testing of srcML and Clang (supervised by Vadim Zaytsev)
- Eric van der Woude: Retargeting a Compiler for a Different Platform (supervised by Vadim Zaytsev at the UvA and Johan Fabry at Raincode Labs)
Older Projects
This is a selection of completed projects from the years prior to 2021, in reverse chronological order.
2020
- Tim Kemp: An algorithmic approach to a conjecture of Chvátal on toughness and hamiltonicity of graphs (supervised by H.J. Broersma, T. van Dijk, and M.J. Uetz). Won the ENIAC Master's Thesis Award.
- Lukas Miedema: QuickInterp - Improving interpreter performance with superinstructions (supervised by Marieke Huisman and Tom van Dijk). Won a 2nd prize for the KNVI Scriptieprijzen voor Informatica en Informatiekunde and a 1st prize for the VERSEN best Master thesis award.
2019
- Rob van Emous: Towards Systematic Black-Box Testing for Exploitable Race Conditions in Web Apps (supervised by Marieke Huisman and Erik Tews (UT SCS)). Won the ENIAC Master's Thesis Award.
2018
- Sophie Lathouwers: Reasoning About the Correctness of Sanitizers (supervised by Marieke Huisman and Maarten Everts (UT SCS)).
Won 2nd prize for the KNVI Scriptieprijzen voor Informatica en Informatiekunde and KHMW Internetscriptieprijs voor de categorie Internet & Technische wetenschappen.
An archive of older completed projects can be found on our old website (external link).