BSc Referaat

Most BSc projects carried out at FMT, are part of the student conference series Twente Student Conference on IT. Some of the BSc projects carried out at FMT fall outside this student conference series -- for instance those that were carried out by students of other programmes than Computer Science. In the list of completed BSc projects, below, the latter ones are grouped under "Non-TSConIT BSc projects".

LITERATURE

In this course, we use the following documents:

 

Ongoing BSc Projects

For the upcoming 28th Twente Student Conference, projects for the Track Formal Methods & Software Engineering are listed below.

No projects to show.

Available Project Proposals

For the next Twente Student Conference, projects for the Track Formal Methods & Software Engineering can be chosen from the list below. Please contact the contact person for the project if you are interested.

Algorithms and Data Structures

Correct and efficient algorithms and datastructures for concurrency and model checking.

Model checking random graphs (Prof.dr. M.I.A. Stoelinga, prof.dr.ir. H.J. Broersma)
Measures for Interaction Complexity (prof.dr.ir. A. Rensink)
Finite simulations for infinite horizons (Dr. C.E. Budde, Dr. A. Hartmanns)
Smarter sampling for optimaler decisions (Dr. C.E. Budde, Dr. A. Hartmanns)
Can Machine Learning automatically choose your best Model Checking strategy? (Doina Bucur, prof.dr. J.C. van de Pol)

Case studies and Applications

Application of formal methods to practical examples.

Math to make money: cost-optimizing maintenance (Dr. E.J.J. Ruijters, Prof.dr. M.I.A. Stoelinga)
Testing of Probabilistic Robotics (Prof.dr. M.I.A. Stoelinga, M. Gerhold)
Web/API testing through model learning and verification (D.J. Huistra, prof.dr. J.C. van de Pol)
Getting a Grip on Software Agility (prof.dr.ir. A. Rensink, D.J. Huistra)
Half human, half machine - machine assisted tutoring in programming education. (dr. A. Fehnker)
Can Machine Learning automatically choose your best Model Checking strategy? (Doina Bucur, prof.dr. J.C. van de Pol)

Dependability, security and performance

Analysis of dependability, security and quantitative aspects.

A Compositional Framework for Dynamic Reliability Block Diagrams (Prof.dr. M.I.A. Stoelinga)
Math to make money: cost-optimizing maintenance (Dr. E.J.J. Ruijters, Prof.dr. M.I.A. Stoelinga)
Reliability in an imperfect world: inspecting critical systems (Dr. C.E. Budde, Prof.dr. M.I.A. Stoelinga)
Stressed systems: reliability of physical systems under varying loads (Dr. E.J.J. Ruijters, Prof.dr. M.I.A. Stoelinga)
Fuzzy Fault trees (Prof.dr. M.I.A. Stoelinga, Dr. E.J.J. Ruijters)
Faster analysis of attack trees (R. Kumar, Prof.dr. M.I.A. Stoelinga)
Speeding up simulation of fault trees (Dr. E.J.J. Ruijters, Prof.dr. M.I.A. Stoelinga)
Does your model make sense? Automated validation of timed automata (Dr. E.J.J. Ruijters, Prof.dr. M.I.A. Stoelinga)
Finite simulations for infinite horizons (Dr. C.E. Budde, Dr. A. Hartmanns)
Smarter sampling for optimaler decisions (Dr. C.E. Budde, Dr. A. Hartmanns)
Bringing ATTop to the Top (Prof.dr. M.I.A. Stoelinga, dr. S. Schivo)
What do you ask an attack tree? (And how should it reply?) (Prof.dr. M.I.A. Stoelinga, dr. S. Schivo)

Graphs

Graph and graph transformation related research.

Who says your model is correct? Automatic algorithms needed (dr. S. Schivo, Prof.dr. M.I.A. Stoelinga)
Automatic, compositional construction of Java models (prof.dr.ir. A. Rensink)
Fair exploration in GROOVE (Dr.ir. S.J.C. Joosten, prof.dr.ir. A. Rensink)

Languages

Formal languages for specification, modelling and programming.

Automatic, compositional construction of Java models (prof.dr.ir. A. Rensink)

Logics and semantics

Program logics, Semantics, Temporal and Modal logics.

Who says your model is correct? Automatic algorithms needed (dr. S. Schivo, Prof.dr. M.I.A. Stoelinga)
Model checking random graphs (Prof.dr. M.I.A. Stoelinga, prof.dr.ir. H.J. Broersma)
Automatic, compositional construction of Java models (prof.dr.ir. A. Rensink)
Sequences for Specification (prof.dr. M. Huisman, Dr.ir. S.J.C. Joosten)
Fair exploration in GROOVE (Dr.ir. S.J.C. Joosten, prof.dr.ir. A. Rensink)
What do you ask an attack tree? (And how should it reply?) (Prof.dr. M.I.A. Stoelinga, dr. S. Schivo)

Software Technology

Test coverage, Software Desgin patterns, Software Modeling, Software Architecture.

Sequences for Specification (prof.dr. M. Huisman, Dr.ir. S.J.C. Joosten)
Measures for Interaction Complexity (prof.dr.ir. A. Rensink)
Getting a Grip on Software Agility (prof.dr.ir. A. Rensink, D.J. Huistra)
Half human, half machine - machine assisted tutoring in programming education. (dr. A. Fehnker)
Design of a verification tool for general public demos (prof.dr. M. Huisman, Dr.ir. S.J.C. Joosten)
Bringing ATTop to the Top (Prof.dr. M.I.A. Stoelinga, dr. S. Schivo)
What do you ask an attack tree? (And how should it reply?) (Prof.dr. M.I.A. Stoelinga, dr. S. Schivo)

Testing

Formal testing techniques.

Web/API testing through model learning and verification (D.J. Huistra, prof.dr. J.C. van de Pol)
Testing of Probabilistic Robotics (Prof.dr. M.I.A. Stoelinga, M. Gerhold)

Other

Projects that don't fit any other category

Software fault trees (Prof.dr. M.I.A. Stoelinga)
A framework for visualization of fault trees (Prof.dr. M.I.A. Stoelinga)
Passive learning with logging frameworks (J.J.G. Meijer, M. Gerhold, Prof.dr. M.I.A. Stoelinga)
Half human, half machine - machine assisted tutoring in programming education. (dr. A. Fehnker)
Breadth-First Search: Verifying GPGPU Programs (M. Safari, prof.dr. M. Huisman)

Students who like the area of Formal Methods & Tools, but did not find a suitable project in the list above, are encouraged to propose their own project on the topics of (software/hardware) verification, testing, concurrency (& algorithms), program analysis, compilers, virtual machines, etc..

More information about the track is available from prof.dr. J.C. van de Pol (first semester) or dr. S. Schivo (second semester).


Completed BSc Projects

29th TSConIT

Han Hollander - Using Software Metrics as Indicators for Agility of Object-Oriented Projects (July 2018)
Tom Leemreize - Tracking Code Elements Through Program Updates in Java Applications (July 2018)
Pieter Jan Roelofs - Determining Long Run Properties of Complex Models using Statistical Model Checking (July 2018)

28th TSConIT

Joshua de Bie - How safe is your system? (February 2018)
Dennis Eijkel - Analysing the Use of Selfish Mining Among Bitcoin Miners and Mining Pools (February 2018)
Frans van Dijk - Implementing ROBDD algorithms on FPGA using CλaSH (February 2018)
Victor Lap - Introducting RAS: A domain specific language for trading card games (February 2018)
Tycho Braams - Integrating physics-based models into fault maintenance trees (February 2018)
Pim van Leeuwen - Lambda Calculus Syntax’s Definition and Completeness As Graph Database Querying Language (February 2018)
Jasper van Rooijen - Sensitivity and Optimisation of Uncertain Parameters in UPPAAL (February 2018)
Rick Fontein - Comparison of static analysis tooling for smart contracts on the EVM (February 2018)
Jan Boerman - Verification of JML specifications: a comparison between KeY and OpenJML (February 2018)
Matthijs van Helden - Better than Batman (February 2018)

27th TSConIT

Antoine Veenstra - Edit Distance on GPU clusters using MPI (July 2017)
René Boschma - An algebra of repositories (July 2017)
Sven Konings - Manipulating Java states as graphs (July 2017)
Hans van der Laan - Automatic Learning of Java Models (July 2017)
Joran Honig - Autonomous Exploitation of System Binaries using Symbolic Analysis (July 2017)
Lukas Miedema - Optimistic Concurrency Control in Geographically Distributed Databases for Concurrent OLTP Transactions (July 2017)

25th TSConIT

Wijtse Rekker - Designing a property language for a model checker (July 2018)
Wim Florijn - How Well Can You Plan? (July 2016)
Ruben Haasjes - FASTER TESTING of FASTER CARS (July 2016)
Dennis de Weerdt - Can a tool learn its own optimal settings? (July 2016)
Jeroen Brinkman - Visualisation of Permission flow in Concurrent Programs (July 2016)
Sophie Lathouwers - Automatic Maintenance and Storage Optimization for Lazy Functional Databases (July 2016)
Pieter Bos - Logic for Hardware Description Languages (July 2016)
Erik Steenman - Code generation from Formal Specifications (July 2016)
Willem Siers - Correct and Efficient Concurrent Hash Tables in Java (July 2016)
Tim Blok - Automated Program Analysis for Novice Programmers (July 2016)
Bram Kamies - Solving Sokoban with Code Generation and Model Checking (July 2016)
Raymon Onis - Hacking Continuous Probability Distributions into Pieces (July 2016)
Michiel Bakker - Make biologists work faster with ANIMO (July 2016)
Jacco Brandt - Understanding Attacks: Modelling the Outcome of Attack Tree Analysis (July 2016)

24th TSConIT

Richard Gankema - High-level definitions of control-flow semantics (January 2016)
Luuk Verkleij - Performance improvement of state compression on GPU (January 2016)
Robert Maaskant - Visualization of Fault Trees (January 2016)
Dennis Aanstoot - Better Fault Tree Analysis using Sylvan (January 2016)
Lars Stegeman - Testing of concurrent programs (January 2016)
Wybren Kortstra - Java(Script) Application Performance on Android (January 2016)
Wander Nauta - Visually Representing and Manipulating Hardware Descriptions in Viskell (January 2016)
Frank Wibbelink - Visual programming with Haskell: pattern matching and conditionals (January 2016)
David Stritzl - Statistical Analysis of Continuous Degradation Processes in Fault Trees (January 2016)
Bart van den Pol - Smarter semantics for maintainable fault trees (January 2016)

23th TSConIT

Henk Mulder - Implementation of dynamic data structures on GPU (June 2015)
Thijs Wiefferink - Parallel Prefix Sum: A Case Study for GPGPU Program Verification (June 2015)
Twan Coenraad - Verifying Functional Behaviour of Concurrent Programs (June 2015)
Jip Spel - Smart Semantics of Fault Trees (June 2015)
Thijs van Ede - Crunching algorithms: Verifying lockless deques (June 2015)
Marlène Hol - Modeling quiescence via timed automata (June 2015)
Erik Kemp - Bandwith reduction to find an optimal variable ordering (June 2015)

22th TSConIT

Martijn Bastiaan - Preventing the 51%-attack: a Stochastic Analysis of Two Phase Proof of Work in Bitcoin (January 2015)
Djurre van der Wal - Improving Symbolic Confluence Detection (January 2015)
Dennis van der Zwet - Specifying a Concurrent Program in Java using Separation Logic (January 2015)
Thomas Brus - Predicting the Outcome of Scrabble Games (January 2015)

21th TSConIT

Alexander Bakker - Energy Profiling Android Applications (June 2014)
Simon de Vries - Growing Bonsai Trees (June 2014)
Rick Hindriks - Graph Games (June 2014)
Peter van Dijk - Parsing and Code Generation using Graph-Based Rules (June 2014)
Wietze Beukema - How does the bitcoin protocol work? (June 2014)
Bas van den Brink - Implementation of an efficient state exploration algorithm in Java (June 2014)
Alexander Drechsel - Java Modeling Language Extensions for Android Applications (June 2014)
Michael Hannema - Using Continuations to express Control Logic (June 2014)

20th TSConIT

Martijn Roo - Specifying Concurrent Programs: a Case Study in JML and Separation Logic (January 2014)
Thomas Neele - Implementation of a compression algorithm in a GPU (January 2014)
Steven de Heus - A Case Study for GPGPU Program Verification (January 2014)
Niels ten Dijke - Comparison of Verification Methods for Weak Memory Models (January 2014)

19th TSConIT

Jochem Schutte - Designing a Library of (Parallel) Graph Algorithms (June 2013)
Martijn Heuvink - Understanding Algorithms through Visualisation and Simulation (June 2013)
Jelte Zeilstra - Full Graph-Based Java Semantics (June 2013)
Richard Heijblom - Potential of Integer Programming for Optimization Analysis of Extended Feature Models (June 2013)

17th TSConIT

Remco Swenker - Translating Hoare Logic To SMT, The Making Of A Proof Checker (June 2012)
Danny Bergsma - A Precise Way to Propagate JML Annotations for Security Automata (June 2012)
Ronald Meijer - PDDL Planning Problems and GROOVE Graph Transformations: Combining two Worlds with a Translator (June 2012)
Vincent Bloemen - Analyzing Old Games with Modern Techniques: Probabilistic Model Checking Using SCOOP and PRISM (June 2012)

15th TSConIT

Jeroen Meijer - Formal Specification of LinkedBlockingQueue Using Concurrent Separation Logic (June 2011)
Ruud Welling - Finding Common Subgraphs (June 2011)
Cecill Etheredge - A Parallel Mass-Spring Model for Soft Tissue Simulation with Haptic Rendering in CUDA (June 2011)
Steven van de Vegt - A Concurrent Bidirectional Linear Probing Algorithm (June 2011)
Oguz Meteer - Interaction between SPH Fluids and Dynamic Particle-Based Objects using CUDA (June 2011)
Rick van Galen - Towards Verification of MPJ-based Java Programs (June 2011)

14th TSConIT

Marije de Heus - Towards a Library of Parallel Graph Algorithms in Java (January 2011)
Mark Florisson - Multi-Level Debugging for Cython (January 2011)
Erik Snippe - Using Heuristic Search to Solve Planning Problems in GROOVE (January 2011)

13th TSConIT

Freark van der Berg - Solving Parity Games on the Playstation 3 (June 2010)
Arjan Snippe - ToLERo: ToRX-tested LEGO Robots (June 2010)
S.H. van Schouwenburg - Automatic Parallelization of Automata (June 2010)

12th TSConIT

Ronald Burgman - Specifying Multi-Threaded Java Programs (A Comparison between JML and Separation Logic) (January 2010)

11th TSConIT

Charl de Leur - Evaluation of Multi-Core Programming Models (June 2009)
Pascal Kuyten - Rewrite Rules supporting Conditional Statements for Automatic Parallelization (June 2009)
Bas van Gijzel - Comparing Parser Construction Techniques (June 2009)
P. Jorrit Tijben - Improving a CellFS Implementation for the x86 Architecture (June 2009)

10th TSConIT

Jorne Kandziora - Playing Parity Games on the Playstation 3 (January 2009)
Emiel Mols - A CellFS Implementation for the x86 Architecture (January 2009)
Tom van Dijk - Analysing and Improving Hash Table Performance (January 2009)

9th TSConIT

Maks Verver - Evaluation of a Cache-Oblivious Data Structure (June 2008)

Non-TSConIT BSc Projects

Jerre Starink - Recovery of Control Flow Graphs of Native Binaries using Register Value Inference (July 2018)
Tim Kerkhoven - Extending the Functionality of Sequences in VerCors (July 2018)
Erwin Everts - Verification of the shortest pathfinder algoritm (March 2017)
Sven Santema - Insight in Scheduling Choices: A Visualisation Tool for SDF Graphs (July 2016)
Mitch de Vries - Visualisation of fault trees (April 2016)
Jeroen Vonk - Puzzle solving using GPUs (June 2013)
Nils Klatter - Verifying Security Policies by using JML annotations (August 2011)