Today was my first university day, and my software engineering class left me wit
ID: 639280 • Letter: T
Question
Today was my first university day, and my software engineering class left me with a bitter taste. The professor sure seems to know about design and design patterns and MVC and the like (it's going to be his topic), but when it comes to compiling and branch prediction he seems to be a little confused.
At some point he started to explain us why object-oriented programs are slower than imperative programs because object-oriented programs are interpreted while programs written in a non-OO language like, say, C, are compiled to machine code. He then proceeded to explain how modern compilers, like C compilers, try to guess which branch in a condition will be executed most of the time, and puts the first instructions of these branches before the if block, and that's some kind of way of implementing instruction-level parallelism. He then told us that these compilers had to do educated guesses, but a JIT compiler, like modern Java JIT compilers, could profile your code and put the instructions of the most frequently used branch before the if block, without having to guess.
This was inexact and confusing at best. It looked like a mashup of many things confused in ways so strange I can only be thankful it's not what the course is about. Students interrupted him a few times, asking rhetorically if he was talking about Java or OO in general (he agreed that he should have been more explicit about the distinction between the two, but still told several inaccuracies), but we remained silent while he went on with his explanations on branch prediction.
So. How do you tell your professor he's not on the right track? Obviously, doing it in front of everybody is not a Good Thing
Explanation / Answer
How do you tell your professor he's not on the right track?
You don't. He's paid to be there and provide the knowledge and you're not. He probably wouldn't take too kindly to any presentation that you can offer on how he's wrong.
So what do you do? Ask questions. If you think he's off base with a concept or idea then ask him to elaborate. Keep asking quesitons until he get's to enough detail to either explain his position more thoroughly or expose a point that you can then ask a follow up question. If he gets to a point you think is just wrong then bring him an example that counters his point and ask him to explain how the EXAMPLE is wrong. No one wants to be showed up, especially a professor who's going to provide you with a grade. Be respectful, ask intelligent questions and allow him the space to answer the questions after class if need be.
No one is perfect and he may be totally wrong about the topic in question, but you are in the role of the student and you'll probably get more out of the class if you embrace that role.