En programación de taller y trazado de grafos, el algoritmo Coffman-Graham es un proceso de cálculo, llamado así por Edward G. Coffman, Jr. y Ronald Graham, cuyo fin es organizar los elementos de un conjunto parcialmente ordenado en una secuencia de niveles. El algoritmo elige una disposición tal que un elemento que viene después de otro en el orden se asigna a un nivel inferior, y tal que cada nivel W contiene elementos que no superan una amplitud dada. Cuando W = 2 se utiliza la cantidad mínima posible de niveles distintos,[1]​ y, en general, se utilizan como máximo 2 − 2/W veces tantos niveles como sea necesario.[2]​[3]​