He does a decent job explaining concepts and the homework, but he will talk about things for a long time that don't matter. The actual homework becomes extensive, and my virtual machine often fails random steps, but that might just be my own issue. His communication and office hours are good, but his grading and assitance are spotty.