This paper provides a comprehensive survey of the theory of deterministic sequencing and scheduling, focusing on optimization and approximation algorithms and their computational complexity. The authors classify scheduling problems into several categories, including single machine scheduling, scheduling on identical, uniform, and unrelated parallel machines, and open shop, flow shop, and job shop scheduling. They outline the complexity results and algorithms for each category, highlighting the most significant findings and open problems. The paper also discusses the reducibility among scheduling problems and presents a detailed problem classification system. It covers various optimization criteria such as minimizing maximum completion time, total completion time, and weighted completion time, and explores approximation algorithms for these problems. The authors provide insights into the performance guarantees of different scheduling algorithms and discuss the computational complexity of the problems. The paper concludes with a selective bibliography and suggestions for future research directions.This paper provides a comprehensive survey of the theory of deterministic sequencing and scheduling, focusing on optimization and approximation algorithms and their computational complexity. The authors classify scheduling problems into several categories, including single machine scheduling, scheduling on identical, uniform, and unrelated parallel machines, and open shop, flow shop, and job shop scheduling. They outline the complexity results and algorithms for each category, highlighting the most significant findings and open problems. The paper also discusses the reducibility among scheduling problems and presents a detailed problem classification system. It covers various optimization criteria such as minimizing maximum completion time, total completion time, and weighted completion time, and explores approximation algorithms for these problems. The authors provide insights into the performance guarantees of different scheduling algorithms and discuss the computational complexity of the problems. The paper concludes with a selective bibliography and suggestions for future research directions.