After following this course the student:
- is able to translate mathematical concepts into algorithms and implement them into a (Python) program;
- is able to choose the right data structure(s) for the practical implementation of algorithms;
- can work in a group on an implementation project that has multiple modular parts;
- can document the computation results obtained with (different versions of) the implementation of an algorithm.
In this project, students implement an algorithm for solving the notorious graph isomorphism (and graph automorphism counting) problem.|
This can be accomplished on various levels of mathematical complexity, and nicely connects to all of the topics that are treated in the module.
The implementation project ends with a sort of “competition" in which students test the capability of their own implementation on a set of benchmark instances of increasing difficulty.