What exactly is an algorithm anyway?