Mehdi Teymouri
This class is hard no matter what, he makes it harder but you'll learn better. He really doesn't give any room for not learning the material well. I started spending hours practising problems each week and my grades went to almost perfect. If you don't do that though you're screwed. He makes mistakes during lectures which is annoying.