We present a detailed and simplified version of Hrushovski's algorithm that determines the Galois group of a linear differential equation. There are three major ingredients in this algorithm. The first is to look for a degree bound for proto-Galois groups, which enables one to compute one of them. The second is to determine the identity component of the Galois group that is the pullback of a torus to the proto-Galois group. The third is to recover the Galois group from its identity component and a finite Galois group.