I think the best order would be, Discrete Log, Primitive Root and Discrete Root. The reason is simple, the explanation of Discrete Root is using concepts from Primitive Root and Discrete Log. And the explanation of Primitive Root uses the concepts of Discrete Log. I think it would be more intuitive to follow this order to not generate dependencies.