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".