Specifies the requirements for any algorithm that is to be executable by the
main class.

Any implementation needs not to take care of input nor output, parsing and so
on. Those tasks are performed by the framework. An algorithm simply needs to
ask for parameters that are algorithm specific.

Note: Any implementation is supposed to provide a constructor without
parameters (default constructor).