Automatic Algorithm Construction