Algorithms Part I