Daniel Epstein
Highly recommend. There are four programming assignments that account for about half your grade (they can be difficult if you don't have web dev experience). Exams are conceptual. Professor Epstein does care about his students and is really nice. This class teaches you modern programming concepts and is extremely useful in the real world.