Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free.

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™. But waiting the end of the class to tell him might do some serious damage to the understanding of other students.

I suspect we won't hear this kind of stuff again, and the rest of what he told us did make sense, so filing a complaint is certainly not an option (especially after just one class). He seems to be in position of teaching design patterns, but he really went off-road with his talk about compilers and that stuff.

share|improve this question

closed as off-topic by ratchet freak, Snowman, GlenH7, MichaelT, gnat Apr 13 at 22:37

This question appears to be off-topic. The users who voted to close gave this specific reason:

  • "Questions seeking career or education advice are off topic on Programmers. They are only meaningful to the asker and do not generate lasting value for the broader programming community. Furthermore, in most cases, any answer is going to be a subjective opinion that may not take into account all the nuances of a (your) particular circumstance." – ratchet freak, Snowman, GlenH7, MichaelT, gnat
If this question can be reworded to fit the rules in the help center, please edit the question.

What university is this? Terribly oversimplified is reasonable for a starter computer science course. Not quite exact is also reasonable for a starter computer science course. I find in every course I took that the prior class was not exactly truthful, just like math courses. Also, if he is a good professor he will welcome negations to his statements. It shows you know your stuff and are paying attention. –  Chris Sep 7 '10 at 23:18
Correcting the teacher right away isn't necessary bad in some context. At my college the classes are small, we know the teacher well and when a teacher tells something that is trully wrong such as "There is no var-args in Java" I can politely say "Well ... actually they do exist under this synthax ..." –  HoLyVieR Sep 7 '10 at 23:42
I heard some where like "one good student can learn a lot from a bad teacher than what a good teacher can teach a bad student" –  Antoops Sep 8 '10 at 13:20
That's nothing, my prof said that signed integers work by using the left 16 bits for negative numbers, and the right 16 bits for positive numbers. Then he said that means they can hold numbers from -10^9 to 10^9. At the end of the course he said we though we were just learning Java, but that we also learned JavaScript, since they're the same thing, only you don't have to declare variables in JavaScript. WTF? –  Carson Myers Jul 28 '11 at 23:49
Simple, you say "The way I understand it is .......". What am I misunderstanding? By doing this you make it seem like you are the one who isn't explaining/understanding it right, that leaves room for the professor to save face and still correct what they had previously said (assuming you are indeed correct). –  Dunk Apr 28 '14 at 17:52

3 Answers 3

up vote 26 down vote accepted

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.

share|improve this answer
+1 for the example that counters his point, and asking how the example is wrong. Very diplomatic –  Rachel Oct 14 '10 at 16:55
also, don't get too worked up about asides. If you're doing compiler design, and the prof makes some inaccurate statements about say public transport, or the best colour pen for taking notes, you can let them go by, right? If the material you disagree about is directly relevant, by all means clarify. Like "are you mentioning a difference for OO languages, or for interpreted languages? Where would C++ fit into this?". He may just say OO when he means Java. Getting clarification may help you both. (Keep in mind though he is unlikely to go home and edit the midterm questions.) –  Kate Gregory Oct 14 '10 at 18:06
+1, with the caveat that there is nothing more annoying than some pedant constantly asking questions in class trying to prove he's smarter than the professor. –  Robert Harvey Jul 26 '11 at 21:00

There is something to learn from everyone in this world. Although he may not be exactly correct in everything he says, or even sometimes just plain wrong, I would still listen but simply take what he says with a grain of salt.

Don't get it in your head that you are superior to him in your knowledge. There's no such thing as absolute superiority. The amount of knowledge that you don't know is large, but the amount of topics that you have never heard of is even larger. Or said another way, there are a lot of things you know you don't know, but there's an even larger amount of things you don't know you don't know. Throughout your school you will realize this.

Most profs will setup hours that you can go to them for help. I suggest that you do this. Perhaps for some things it was even a miscommunication that caused the invalid information. Discuss the things you think he missed the mark on. If you teach him something he will likely clarify in the next class about where he was wrong.

If things don't improve, then hopefully not all professors have a bad rep like this. Ask around.
If you find that your school isn't meeting your expectations you could always transfer. About a 6 hour car ride away is the University of Waterloo which has a great computer science department. You could finish your year and try to transfer there if worse comes to worse.

You can also learn from the books for the course and excel beyond what your teacher tells you.

share|improve this answer
I'm pretty sure the guy is competent with design patterns and MVC and stuff like that. He worked for big companies before landing in education, and I'm pretty sure he's an engineer. He was just really off-road when he was talking about that. –  zneak Sep 7 '10 at 23:15
@zneak: Email him or setup a time to go talk to him. Discuss your concerns about what troubles you but don't do it in an aggressive nor arrogant way. –  Brian R. Bondy Sep 7 '10 at 23:17

I was a professor, and there were a few times when I was ill-prepared and had to squirm through a class.

That said, your question hits a nerve. Quality-control in university teaching is not what it could be.

My big gripe is when teachers say and defend things that are conventional but wrong, such as much of what they say about performance, and students take it as gospel.

What do you do? Sadly the professor has the power, since he's being paid several hundred dollars, by your parents or government, to "enlighten" you and give you a grade. @Walter and @Brian gave good answers. I would only add that you should get your information from more than one source.

Also consider the old adage "Believe half of what you see, and none of what you hear".

share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.