An algebraic semi-classical approach to Bloch electrons in a magnetic field