ThanhVu (Vũ) H. Nguyen


Assistant Professor
Department of Computer Science & Engineering 
256 Avery Hall 
University of Nebraska-Lincoln 
Lincoln, NE 68588-0115 

Office: 359 Avery Hall, Tel: 402-472-5086, Email: tnguyen at

I am an assistant professor in the CS department at UNL and a member of the E^2 software enigneering lab. I am interested in Software Engineering and Programming Languages to improve software quality. In particular, my research uses dynamic and static techniques to analyze program invariants and synthesize program repairs. I am also interested in solving problems using nature inspired techniques such as evolutionary computing and ant-based algorithms.

Opportunities: I am looking for motivated students at both graduate and undergraduate levels to work on projects in SE and PL! Successfull candidates should have strong programming skills and solid knowledge in core computer science (e.g., data structures and algorithms). If interested, contact me.



Work Experience


  • Fall 2016 : CSCE 990 Software Verification


wordle.png My research interests lie in the intersection of software engineering and programming languages, with a particular focus on using static and dynamic analyses to verify and repair programs.

  • Invariant generation using static and dynamic analyses
  • Program verification using theorem proving
  • Program synthesis using constraint solving


Links to my research projects, see publications for technical details.

  • iGen: dynamic interaction generator that finds boolean expressions over configurable options.
  • DIG: a dynamic invariant generator that supports (nonlinear) polynomial, disjunctive relations, and array invariants. This project also includes KTP, a theorem prover using k-induction and SMT solver.
  • CETI: (correcting errors using test-input), automatic program repair using test input generation.
  • GenProg: an evolutionary approach to automatic program repair.
  • Coloring: an ant-based algorithm for the graph coloring problem and its generalizations bandwidth coloring, multi coloring, and bandwidth multi coloring.
  • MaxClique: an ant-based algorithm to find a maximum clique from a given graph. It can be used with a compiler that supports OpenMP (e.g., GCC or Intel) for parallelism.
  • Dimacs's Clique and Graph Color instances: these benchmark graphs were collected and archived during my Master thesis.