Computational Discrete Mathematics by Helmut Alt