Campus updates: Protest action
Teaching
I teach the following courses in 2016:
 Computer Science Bridging Course
 RW114 Introduction to Computer Science
 RW144 Introduction to Computer Science (with Brink van der Merwe, Lynette van Zijl)
 RW712 Advanced Algorithms
 RW714 Concurrency I (with Bernd Fischer, Cornelia Inggs, Willem Visser)
I will teach the following courses in 2017 (preliminary):
 Computer Science Bridging Course
 RW113 Computer Science for Actuarial Studies
 RW114 Introduction to Computer Science
 RW712 Advanced Algorithms
 RW714 Concurrency I
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

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

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

L van Zijl, J Geldenhuys:
Symmetric Difference NFA: the state of the art,
book chapter, 2013

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

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