Foundation of algorithms