Many different programs are the implementation of the same algorithm. The collection of programs can be partitioned into different classes corresponding to the algorithms they implement. This makes the collection of algorithms a quotient of the collection of programs. Similarly, there are many different algorithms that implement the same computable function. The collection of algorithms can be partitioned into different classes corresponding to what computable function they implement. This makes the collection of computable functions into a quotient of the collection of algorithms. Algorithms are intermediate between programs and functions: Programs Algorithms Functions. Galois theory investigates the way that a subobject sits inside an object. We investigate how a quotient object sits inside an object. By looking at the Galois group of programs, we study the intermediate types of algorithms possible and the types of structures these algorithms can have.