Fall 2016 - DeSalvo is a fantastic lecturer, he designs the class perfectly to accommodate people who have never programmed before. The homework assignments are a little challenging at times, but it is very easy to get a perfect homework score. His midterm and final are designed such that you will probably use all of the exam time to do them, but they are well balanced between difficult and rather simple questions. He is a very fast grader and you will know how you did on the exam by the end of the day (Or the next day). You also do not need the textbook at all, DeSalvo designs all of his test questions based on his slides and they also contain all the information you would need to do the homework. His lectures are very engaging as he is always full of energy and excitement, not just droning on reading off the slides. 10/10 would take again.
Fall 2016 - He sorta teaches the theory by teaching how to re-create the types of concepts in question. For example one assignment is something to do with creating your own custom linked list class. All the assignments are basically that, creating your own custom version of a built-in type. However we never get to really actually implement these classes, which is much more important from a practical standpoint than being able to re-code them and understand what's happening beneath the hood. If you can't drive a car it doesn't really matter whether or not you understand what's going on beneath the hood. Also, this professor is sort of a bitter man. He constantly complains about unfairness in the professional industry and occasionally in the academic. Which on it's own I wouldn't mind, but he sort of takes it out on the students. I had a few incidents where I was graded unfairly, and he even admitted to it, but refused to change my grade because ...some story about how he once got short-changed in an academic journal. As if him getting short-changed justifies him being unfair towards me. Furthermore, his tests are unfair and poorly written. If you interpret the question to be asking for a certain thing but he had in mind a different thing- even though the question is objectively ambiguous- say goodbye to a ton of freebee points. Finally, he is constantly talking about interview preparation and industry applications, but I think he fails severely in these goals. No interviewer asks you to create a custom map class, or to define a class that uses bitwise operators (we spent like a month on binary and bitwise operations). They ask you to do something where the map class might just be the optimal thing to implement. Like I said before, you don't get enough of the actual implementation in this course. In sum, I could see how people would like him, as he is quite enthusiastic and exposes us a lot of new things and concepts. It is difficult though, which would be worth it definitely, however I feel the subject matter is misguided and contradicts the goals he preaches. It is often non-applicable to interview and industry settings. Again, you might be able to tell the driving test person all about how a car works, but if you can't drive the car, you fail. I also feel that this professor has a large chip on his shoulder and replicates that unfair environment for his students, which is not right.. at all. Also, his lecture slides are terrible.