Bio

Nico Naus is a computer scientist specializing in formal languages. He received his Ph.D. in Computer Science from Utrecht University in the Netherlands, where he worked on using domain-specific languages and symbolic execution techniques to improve workflow software.

Currently, Nico is an assistant professor at Open University of The Netherlands and an adjunct research assistant professor at Virginia Tech. His research focuses on the development of formal techniques and verification methods that can be used to improve the correctness and security of (binary) computer systems.

Since 2020, Nico has been teaching functional programming at the Open University of the Netherlands. He also supervises bachelor and master theses and is committed to mentoring and guiding students in their research.

Despite being a young researcher, Nico has already made significant contributions to his field. He has published several papers in the functional programming and formal languages communities. He was recently awarded a grant from the National Science Foundation (NSF) to work on automatic exploit generation for binaries. This research aims to enhance the security of computer systems and protect against malicious attacks.

Publications

Papers

CF-GKAT: Efficient Validation of Control-Flow Transformations
Cheng Zhang, Tobias Kappé, David Narvaez and Nico Naus. Accepted for publication at POPL'25.
Verifiably Correct Lifting of Position-Independent x86-64 Binaries to Symbolized Assembly
Freek Verbeek, Nico Naus and Binoy Ravindran. Accepted for publication at CCS'24.
Dynamic TopHat: Start and Stop Tasks at Runtime
Tim Steenvoorden and Nico Naus. Published at IFL'23.
Low-level Reachability Analysis based on Formal Logic
Nico Naus, Freek Verbeek, Marc Schoolderman and Binoy Ravindran. Published at TAP'23.
A Formal Semantics for P-Code
Nico Naus, Freek Verbeek and Binoy Ravindran. Published at VSTTE'22.
Creating Interactive Visualizations of TopHat Programs
Mark Gerarts, Marc de Hoog, Nico Naus and Tim Steenvoorden. 2022
Reachability Logic for Low-Level Programs
Nico Naus, Freek Verbeek, Marc Schoolderman and Binoy Ravindran. 2022
End-user feedback in multi-user workflow systems
Nico Naus and Johan Jeuring. Published at IFL'20.
Generating next step hints for task-oriented programs using symbolic execution
Nico Naus and Tim Steenvoorden. Published at TFP'20.
A symbolic execution semantics for TopHat
Nico Naus, Tim Steenvoorden and Markus Klinik. Published at IFL'19.
TopHat: A formal foundation for task-oriented programming
Tim Steenvoorden, Nico Naus and Markus Klinik. Published at PPDP'19.
Use expert knowledge instead of data - generating hints for Hour of Code exercises -
Milo Buwalda, Johan Jeuring and Nico Naus. Published at L@S2018.
Building a generic feedback system for rule-based problems
Nico Naus and Johan Jeuring. Published at TFP 2016.
Dynamic Flow Analysis for JavaScript
Nico Naus and Peter Thiemann. Published at TFP 2016.

Theses

PhD Thesis Assisting End Users in Workflow Systems
Promotor: Johan Jeuring
Masters Thesis Dynamic type inference for JavaScript
Supervisors: Peter Thiemann, Atze Dijkstra, Johan Jeuring

Repositories

low-level-reachability
Low-level reachability implementation and isabelle proofs
pcode-interpreter
High P-Code interpreter written in Haskell.
symbolic-tophat-haskell
Assistive and Symbolic TopHat implementation in Haskell.
tophat-haskell
TopHat implementation in Haskell.
Dynamic-Flow-Analysis-for-JavaScript
Proof of concept implementation of a dynamic flow analysis for JavaScript, based on the publication with the same title.
rule-tree-semantics
Proof of concept implementation of a multi-user generic feedback system for rule based problems, in Haskell.
iTasks-feedback
Proof of concept implementation of a generic feedback system for rule based problems, in Clean.

Talks

Creating Interactive Visualizations of TopHat Programs
TFP 2022.
End-user feedback in multi-user workflow systems
IFL 2020
Generating next step hints for task oriented programs using symbolic execution
Lambda Days - TFP 2020
A symbolic execution semantics for TopHat
IFL'19
Multi-user rule based problem solving
Oregon Programming Languages Summer School 2017
Building a generic end-user feedback system for iTasks
Institute for Programming research and Algorithmics Fall Days 2016
Using DSLs to help people solve rule-based problems
TFP 2016
Dynamic Flow Analysis for JavaScript
TFP 2016

Teaching

Functional Programming
Open University of The Netherlands. 2020 - 2025
Object Oriented analysis, design and programming
Open University of The Netherlands, 2023 - 2025
Informatica introductieproject
Utrecht University, 2016 - 2018
Modelleren en systeemontwikkeling
Utrecht University, 2015 - 2019
Webtechnologie
Utrecht University, 2015 - 2016

Other Activities

Educational committee member CS bachelor at Open University (June 2024 - present)

Past Activities

International Support Chair at VTPA (January 2022 - June 2023)
Member of the PhD Council of Institute for Programming research and Algorithmics
University Council Member for UPP (September 2017 - September 2019)
PhD Network Utrecht representative (June 2017 - November 2019)
Member of the PhD Council of the Graduate School of Natural Sciences (October 2015 - December 2019)

Hobbies

Music
I'm a fan of 90's electronic music. I have quite a substantial record collection, and also sell second hand records and CD's. Discogs profile
Cars
I'm not an expert on everything that has to do with cars, but have a specific interest in Japanese retro cars, and Kei Cars. I actually own two Kei Cars, a Daihatsu Trevis (aka Mira Gino) and a Daihatsu Copen. I enjoy driving them, as well as tinkering with them. Copen World profile
Acting
I'm an actor in the photocomics of my boyfriend, Ype Driessen. I play a big role in his latest photographic novel "Het nadeel van de twijfel".