Stellenbosch University 1918–2018
Teaching
I teach the following courses in 2018:
 RW114 Introduction to Computer Science
 RW712 Advanced Algorithms
Previous courses I have taught
Research
My research focuses on Software Engineering, specifically formal methods
(model checking and process algebra), static analysis, testing, and open
source software. As a sideeffect, I am also interested in automata and
language theory, and data structures and algorithms.
Recent Publications

M Dunaiski, W Visser, J Geldenhuys:
Evaluating paper and author ranking algorithms using impact and contribution awards,
JI, 2016

S Schreiber, J Geldenhuys, H de Villiers:
Texture Synthesis Using Convolutional Neural Networks With LongRange Consistency and Spectral Constraints,
PRASA, 2016

N Rosner, J Geldenhuys, N M Aguirre, W Visser, and M F Frias:
BLISS: Improved Symbolic Execution by Bounded Lazy Initialization with SAT Support,
TSE, 2015

B van der Merwe, L van Zijl, J Geldenhuys:
Ambiguity and structural ambiguity of symmetric difference NFAs,
TCS, 2014

A Filieri, CS Pasareanu, W Visser, J Geldenhuys:
Statistical Symbolic Execution with Informed Sampling,
FSE, 2014

C Pasareanu, W Visser, D Bushnell, J Geldenhuys, P Mehlitz, N Rungta:
Symbolic PathFinder: Integrating Symbolic Execution with Model Checking for Java Bytecode Analysis,
ASE, 2013

P Jordaan, W Visser, J Geldenhuys:
Integrating JPF into Impendulo,
JPFW, 2013

B van der Merwe, M Faraga, J Geldenhuys:
Counting Minimal Symmetric Difference NFAs,
LATA, 2013

J Geldenhuys, N Aguirre, M Frias, W Visser:
Bounded Lazy Initialization,
NFM, 2013

J Geldenhuys, MB Dwyer, W Visser:
Probabilistic Symbolic Execution,
ISSTA, 2012

W Visser, J Geldenhuys, MB Dwyer:
Green: Reducing, Reusing and Recycling Constraints in Program Analysis,
FSE, 2012

W Visser, J Geldenhuys:
Analyzing The Software Bug Lifecycle,
SATNAC, 2012

J Fourie, J Geldenhuys, CP Inggs:
Improving Communication for Distributed Model Checking,
SAICSIT, 2012

G Redelinghuys, W Visser, J Geldenhuys:
Symbolic execution of programs with strings,
SAICSIT, 2012
All my publications and other research information
Research projects

Green
Coming soon


Impendulo
Coming soon

Student supervision
Current students:

Ulvi Guliyev, PhD;
from 2011; working on program comprehension and rewriting;
cosupervisor is Willem Visser.

Pierre le Riche, PhD;
from 2012; working on optimal memory management.

Marcel Dunaiski, PhD;
from 2014; working on bibliometrics;
cosupervisor is Willem Visser.

Shaun Schreiber, MSc;
from 2016; working on texture generation;
cosupervisor is Hennie de Villiers.

José Lambo, Honours project, 2016;
Customized CRM.

Delena Malan, Honours project, 2016;
Browser history visualization.

Iain Swarts, Honours project, 2016;
Genetic algorithms for test reduction.
Recently graduated:
Complete list of past students
Read this if you are
interested in pursuing a masters/doctoral degree.
Software
Bit of a mess at the moment. Let's just say "under construction".
 Change — small AWK program to apply a CWEB change file to a CWEB program
 Directed evolution — small state space search problem from Dr. Dobb's
 EvolvePhoto — a Unix version of Robert Alsing's photo evolution idea
 FourDigits — AWK script to solve a number puzzle
 Large number arithmetic — quick and dirty program to check if an idea for large number arithmetic will work
 Mersenne Twister — a quick implementation of the Mersenne Twister in CWEB
 Reverse an SDNFA — small prototypes to investigate an LvZ conjecture
 Suffix trees — finds all the shared substrings in a set of strings using suffix trees
 Travelling Salesperson Programs — CWEB programs that I used to experiment with the travelling salesman problem
 Turing — Turing machine written long ago (September 1999?). Nothing special.
 Word clouds — automatic layout of word clouds a la http://www.wordle.net