61

I am an undergraduate student. Preparing the solution to an exercise regarding computer assembly language programming I discovered an error in the program skeleton that was given to us to base our solution on (one of the instructions was illegal, because its immediate operand was outside the permitted range).

I sent an email to the professor's address for "questions and clarifications" regarding the exercise, explaining in detail (about 5 paragraphs) and citing a textbook, why the skeleton program would not compile (assemble) and finally commenting that it seems surprising that this error would make it to the question text, since simply running the assembler on the skeleton program would reveal it.

I got the reply that indeed there was an error in the program skeleton but it was put there on purpose and one of the objectives of the exercise was to see if we (students) would spot it and correct it.

There was no mention of this in the question text. The exact wording of the question text was "complete the program below so that it performs the desired function".

Now the professor wants me to apologize because my comment implied that there was carelessness on their part. I am not convinced about their answer, and worse, even if I were convinced, I believe deliberately misleading the student to be worse than simply being careless. I cannot give an honest apology. What should I reply, if anything?

closed as primarily opinion-based by David Richerby, Ben Crowell, BrianH, Cape Code, Scott Seidman Feb 2 '17 at 0:08

Many good questions generate some degree of opinion based on expert experience, but answers to this question will tend to be almost entirely based on opinions, rather than facts, references, or specific expertise. If this question can be reworded to fit the rules in the help center, please edit the question.

  • Comments are not for extended discussion; this conversation has been moved to chat. – eykanal Feb 1 '17 at 13:54
  • Nothing to worry about. I doubt this will impact your final grade too much. – Armada Feb 3 '17 at 17:52

18 Answers 18

232

To me, this is such a non-issue that it doesn't warrant much of a response. So let me add a response :)

I didn't mean to imply carelessness, and I am sorry if that's how my email came across. I was a bit overzealous in my email. I will address the errors in the skeleton program in my solution, as you have indicated. Thank you for your detailed response!

I think you should take this (very minor) “incident” as a learning experience about how people might perceive your communications. Professors are people; they sometimes make mistakes, they sometimes make pedagogical choices that students don't agree with, and they all take criticism differently.

  • 18
    Much better answer than the most upvoted one. Communicates no ill-will without backing down. +1 – jpmc26 Jan 29 '17 at 19:58
  • 1
    I was recently in a bit similar situation as OP, except I have pointed out what I considered to be a mistake when grading, but the person who was grading also perceived my email as patronizing. The road I took was to write a reply similar to this one, and this took me back onto good grounds with them. – Wojowu Jan 29 '17 at 20:13
  • 4
    "and they all take criticism differently." Yes, and this answer does a good job of addressing a part of this question that I haven't seen discussed yet - how is this apology being requested? From a professional point of view, it seems petty to demand an apology unless the email was explicitly condescending. This was a misunderstanding, and the issue should be considered resolved on both ends after the initial reply...but people do take criticism differently, and if the professor continues to push for an apology after a response like this one, I'd be worried about more than programming errors. – Tyler W Jan 29 '17 at 21:01
  • 7
    The prof demanding an apology is unwise. If indeed OP was rude, either they realise it themselves, and apology would be forthcoming, or they insist on being right in taking the tone they did, and are beyond redemption. If OP didn't intend to be rude, it would be good for them to indicate that this was the case and a misunderstanding - but it seems OP doesn't want to do that either. The interaction between the two protagonists in this matter is all but impressive, but it would be nice if it were at least a matter of the OP giving respect to the role of the prof if not to the person. – Captain Emacs Jan 30 '17 at 1:44
  • 8
    I'd also add that this is a lesson in real world power politics. Professor > student. It doesn't matter who's right if you don't have the power to push your narrative. – SBoss Jan 30 '17 at 10:49
116

A 5-paragraph email with citations for a possible mistake in an undergraduate exercise sounds, if anything, patronizing.

Apologize and move on.

  • Comments are not for extended discussion; this conversation has been moved to chat. – eykanal Feb 1 '17 at 13:55
  • 2
    I wonder a bit whether the OP should say "I apologize for assuming you might ever err as mere humans do" or "I apologize for doing extensive research to confirm that what looks like an error on first sight is actually an error before daring to ask for clarification" ... – Hagen von Eitzen Feb 1 '17 at 19:45
  • @HagenvonEitzen this is likely to greatly offend the professor, and possibly damage the OP's future prospects in this class – TheEnvironmentalist Feb 1 '17 at 19:57
  • 1
    @HagenvonEitzen Please note that all this has been extensively discussed in the comments now moved to chat, as notified by the moderator. Comments cannot be moved to chat a second time, and further comments that repeat the same arguments will be likely deleted. – Massimo Ortolano Feb 1 '17 at 20:45
64

Now the professor wants me to apologize [...] I cannot give an honest apology. What should I reply, if anything?

If you cannot give an honest apology, I suggest giving a dishonest one. This will satisfy the professor's requirement (you do not mention him insisting that your apology be sincere :-)), and, while I am one of the biggest fans of honesty that you will find, it seems to me that both you and the professor have backed yourselves into corners by each thinking that you are behaving reasonably and the other is not, and expecting the world to conform to that belief. Regardless of who is right -- I have no opinion about that, and don't find the discussion on this question to be very interesting, frankly -- your insistence is leading both of you to be stuck in a rather unpleasant infinite loop. It is in your best interests to break the loop, and the only way to do that is by apologizing. Is it just? Maybe not, but there are much worse injustices that actually affect people's lives happening all the time, so I suggest saving your time, energy and outrage for those. Good luck!

  • -1 Indeed, you have to choose your battles wisely and not fuss over every little thing. – DepressedDaniel Jan 30 '17 at 1:14
  • 7
    The apology might be appropriate for the tone, rather than the content. One reason why I never ask for apologies is that the ones who would give it, give it anyway freely without being prompted, and the others, in my experience, do not even consider the possibility of themselves being wrong and so any apology, if at all, would be worthless. Vice versa, I believe that an apology should be full, complete and without hidden reservations. A reservation separating form from content is fine. But I am not a fan of dishonesty in that matter. – Captain Emacs Jan 30 '17 at 1:54
  • 8
    @CaptainEmacs it's very noble of you to not ask for apologies, but OP's professor has not been as noble, and is essentially coercing OP to apologize. So I think an insincere apology is the most reasonable option here (assuming OP can't muster a sincere one). Again, although I'm a huge fan of honesty myself, the apology would be nothing more than a small white lie over a completely trivial matter. The alternative of insisting on not apologizing may be more honorable in some idealistic sense but ultimately a huge risk and waste of time and energy. It's simply not worth it. – Dan Romik Jan 30 '17 at 7:19
  • @DanRomik I am afraid that, from a practical point, you are probably right here; although I sense that OP may not want to concede this point (and I sympathise with that - with the apology having to be honest, not with OP's statement with which I probably - extrapolating the details - would be at odds), and the prof might see through it, anyway. – Captain Emacs Jan 30 '17 at 8:34
29

I am surprised some deem this student's actions as "patronizing". I think a detailed e-mail with evidence that the student tried to consult other resources before contacting the professor could just as easily be interpreted as "studious" and "respectful" of the professor's time. I would have appreciated the student not contacting me - in the way many undergraduate students do - with vague and lazy questions about the homework that make me wonder if they even tried! By including citations, the student is showing a mature approach to solving the problem by means of consulting course-related material.

We must remember that tone makes a difference - and that tone is often lost in e-mails. I would recommend for the student to meet with the professor and exchange information in a respectful tone. This might allow the student determine whether they missed certain information about course assignments, and might allow the professor to better understand the perspective of the student in their motivation to clarify the problem statement. Of course, this recommendation is much easier said than done, especially because the professor went so far as to request an apology in such a preemptive and biased manner without even bothering to meet with the student in person first to ensure they fully assessed the situation.

  • 6
    Welcome to the site. Please bear in mind that we're a question and answer site, not a discussion forum. I don't see anything in your post that attempts to answer the question at the top of the page; rather, it just seems to be a general discussion of the situation and the other responders' answers. – David Richerby Jan 29 '17 at 15:48
  • 7
    Also, note that nobody said that this was patronising but just that it sounds or could be perceived as patronising. – Wrzlprmft Jan 29 '17 at 16:09
  • 5
    How is it the newcomer gives a better answer than several long-timers who answered before? – Joshua Jan 29 '17 at 16:31
  • 7
    Having seen sample code in books by "respected authorities" that I could see would not compile, if I were teaching such a class, I would intentionally include such errors. If a student sent me an short "is the value of ___ in line ___ intentional?" I would respond "yes, finding and fixing it was part of the lesson. Don't deprive your classmates of that opportunity." But if I received five paragraphs lecturing me on the allowed range and on how to teach, I would try to figure out the nicest way to teach a little humility. – WGroleau Jan 29 '17 at 20:26
  • 6
    Cannot upvote. If I first had to deal with a 5-paragraph student email, which was then followed by needing to schedule time in person to talk about it, I would be even more irritated. – Daniel R. Collins Jan 30 '17 at 17:23
22

To crystallize

finally commenting that it seems surprising that this error would make it to the question text

Never do this. You are either rubbing salt to the wounds (in case you are right) or being an idiot (in case you are wrong). Disregarding whether you are right or wrong, this benefits no one.

EDIT: The point is that there is no way: "I am shocked, how could you do a mistake this bad", is not going to offend.

  • 6
    "Never do this" - unless you want to pick a fight with them... – einpoklum Jan 31 '17 at 10:47
  • 1
    @einpoklum exactly my point. The person feeling insulted is in this case a tautology. Driving a person to corner is the best way to start a fight. – user3644640 Jan 31 '17 at 12:13
  • 1
    @DRF "Though insisting on an apology seems petty even if the professor is 100% in the right." How is the professor in the right in this case? There was an error in the assignment. A confused student wrote to their teacher asking about the error, and the student had the decency to do their research and double check their work first. How does that justify the teacher's response? – industry7 Feb 1 '17 at 14:56
  • 2
    @industry7 I did say if. The student (and we only have his account of the facts) says he spent 5 paragraphs "explaining in detail why the program would not run and citing a textbook" and he finished the email up by "commenting that it seems surprising that this error would make it to the question text". 5 paragraphs for an error that results in a "does not compile" is (likely) to be at least perceived as patronizing. If you then finish up by what amounts to "looks like you're doing a shitty job" and your reaction to "This was intentional apologize" is "No way I'm right!" then... yeah. – DRF Feb 1 '17 at 15:04
  • 1
    Great answer and to the point. The student is fine in insisting that a question/solution is wrong (if it is; for a simple mistake, without an counterargument by the prof, a 5 paragraph mail is total overkill). They can only speculate about the prof's intention of introducing (or not) an error and cannot know it for sure. And insinuating that the prof is lying adds another layer to the offence. – Captain Emacs Feb 2 '17 at 21:32
19

Apologize sincerely to the professor.

As you have pointed out at apparently tedious length, students attempting to assemble the skeleton would have found an assembly error. Even if the student first modified the skeleton, the error should have been revealed by the assembler. At that point, it is incumbent upon each student to correct that error. The student did not even have to know how to detect the error, only how to correct it once it was identified.

  • 1
    @BobBrown Do you know assembly language and how an programming error there is (according to you) "revealed by the assembler" ? – Thorsten S. Jan 29 '17 at 15:46
  • 12
    @denormal "It is usual to use existing code to lookup the syntax for new code" The computing world is full of self-styled "programmers" whose knowledge barely extends beyond how to use Ctrl-C and Ctrl-V. (And the comment about MAX_INT is quite revealing about how much you really know, as compared with what you think you know.) – alephzero Jan 29 '17 at 17:11
  • 8
    @ThorstenS. Yes, I do know assembly language and wrote the (very short) book we used to teach assembly language for many years. OP's description of the error was an immediate constant greater than allowed, i.e. for which there aren't enough bits in the instruction word. Any reasonable assembler would produce a message like "Max size of immediate constant is XXX." The only way the student could present such a message is to have changed the constant to something less than the maximum before the first attempt at assembly. – Bob Brown Jan 29 '17 at 19:05
  • 9
    @denormal Allow me to make an assumption and assume that maxima and minima for various values were covered in class or assigned reading prior to this assignment. INT_MAX is defined in limits.h and can vary depending on compiler and architecture. A guess without knowing the environment is 2^31-1, or a little more than two billion. A competant assembly language programmer should understand twos complement and recognize a number greater than two billion as being "near enough" to the limit to check. It should not be necessary to memorize 2,147,483,647. – Bob Brown Jan 29 '17 at 19:21
  • 2
    @denormal: Most of them are also professionals, and among the world's best, at that. – Lightness Races in Orbit Jan 31 '17 at 21:28
19

Summary

  1. "YES" to:
    • Apologize. Life is rarely about absolutes; it's about grey area which requires compromise. There are many facets to examine here, but the main issue is not a technical one; it is interpersonal. If someone says that they are insulted, then they are insulted. Deal with that separately from the technical issue that precipitated the rest of it.
    • Take a step back and reflect on the situation as a whole, to learn as much as you can as this is a golden opportunity to learn about a lot more than just coding. What was your ultimate goal when you wrote your email? Merely to point out the mistake? To get to the bottom of why the mistake was there? How important is it to know the ultimate truth of why the mistake was there? Was your communication (e.g. wording, tone, content, etc) relevant to that goal? How would you feel if someone pointed out a mistake you made in coding by saying, "You've been coding for years. How could you make such a simple mistake?". What's more important: having a good working relationship with the professor, or being "right"? Would you have sent that exact same email to a manager, or would you feel that tone might reflect negatively on your next review?
  2. "NO" to:
    • Continuing this conversation with the professor over email. Terse, written communication provided an environment that lends itself to easy misinterpretation, so while it is possible to fix things over email, you will stand a much better chance of fixing the issue by actually speaking to the person. Besides, speaking with someone is more personal and hence reflects a more genuine attempt at resolution.
    • Viewing the assignment as either a mistake or deception. There are always angles that we do not consider, which is why communication is vital to success (for pretty much any interaction with other people, whether it be professional, friendly, romantic, etc). Hence, asking, "Was this error in the given code part of the assignment?" allows the professor to say either, "No, actually it was a mistake that I didn't catch because I made a change late at night and didn't have time to test. Thanks for mentioning it and I will get a corrected version out to everyone ASAP", or, "Yes, the goal is for each student to identify it and fix it, and it is even more promising when a student inquires about it rather than just assuming the intention as there could be something else going on. Good job!". You still have the opportunity to assess that response and trust it or think they are lying, but they will be less likely to view you as yet one more person making their job harder when it was just as easy to be helpful.

{ sorry if this is a bit long, but there are several nuances to go over here }

Sometimes a test or exercise in one area leads to learning lessons in one or more other areas. This seems to be one of those moments.

  1. I sent an email to the professor's address for "questions and clarifications" regarding the exercise

    Communication is difficult enough when speaking with the other person, and written communication is even harder. Without tone-of-voice, facial expressions, body language, etc it is very easy for a simple message to be taken as rude. No matter how much effort you put into the crafting of the words in a written communication, you can't control how the reader hears it in their head.

    It is possible that the exact same words you put into the email, had they been spoken by you either in person or over the phone, would have been received differently. Either way, even if you can't understand how someone would take those words offensively, often enough it just happens. And it will happen again.

  2. explaining in detail (about 5 paragraphs) and citing a textbook, why the skeleton program would not compile (assemble)

    If the skeleton program (as given) would not compile, and if it was stated (or implied) that it should, then does it really take 5 paragraphs to explain it? A few sentences to state that it does not and a general sense of why is all that it would take, right? Assuming it is a simple mistake, the professor would understand without needing to explain the theory behind it. And if it wasn't a mistake, if it was part of the intent of the exercise, then you would have shown a firm enough understanding of the issue so as to not be sending a lazy "why doesn't it work?" email. If the professor asks for more detail or how you figured it out, then by all means do the 5 paragraphs with citations.

  3. and finally commenting that it seems surprising that this error would make it to the question text, since simply running the assembler on the skeleton program would reveal it.

    Stop for a moment and think about what you just stated: it was surprising that such an error made it into the question, because it was simply a matter of trying to assemble it. Now, everyone makes mistakes. And perhaps this assignment was thrown together hastily because one or more things took up the time that the professor had to create it (yes, they do have lives outside of where they teach) and there was no time to test. Or, perhaps the professor has been teaching for years and has used this exercise before. With it being so simple to discover, I would give the professor the benefit of the doubt that this was intentional.

  4. I got the reply that indeed there was an error in the program skeleton but it was put there on purpose and one of the objectives of the exercise was to see if we (students) would spot it and correct it. ... There was no mention of this in the question text.

    If part of the purpose of the exercise was to see if students can spot the problem, then why does it need to be mentioned in the directions? I understand that it sometimes is mentioned in textbooks, but the fact that it has been mentioned up front before doesn't imply that it will always be that way. And in fact, outside of textbook exercises, you will rarely, if ever, be told up front that a problem exists. It makes sense enough for a textbook to mention it because you cannot ask the book any questions (well, you can, but you will likely be ignored ;-) so it would almost certainly appear as a printing error. But professors are a bit more interactive, and so should not be expected to be constrained in the same manner as a textbook.

    Side note: please get used to a) not being told upfront of there being any problems, even if it is reasonable to expect that there aren't any, and b) things in the current situation working differently than they ever have previously, before attempting children (especially more than 1) ;-).

  5. I believe deliberately misleading the student to be worse than simply being careless.

    Seriously? Why? Do you think that life somehow works any differently? You mention in a comment on the question that you have been in the workforce for 4 years now and have never been given non-working code. Well, congrats! But, all that really shows is that you haven't worked long enough, or at enough places, to have inherited truly bad code. Stick around long enough and you will. And usually, it is not as simple as "not compiling". Usually, the non-working code you will inherit will work, but not exactly correctly. It might make bad assumptions and miscalculate something, or work correctly sometimes but under certain conditions do something that you will swear could never be attempted by anyone who even just passed 2 programming classes but never graduated. Bad code is everywhere. Personally, I have more respect for the professor assuming that this was intentional, because it is more reflective of reality.

    Besides, there are three non-technical lessons here:

    1. The mistakes being made aren't always in the code being given. I have found that mistakes often enter in the initial meetings and requirements gathering. Sometimes a Product Owner / Product Manager / etc making a request for functionality doesn't understand all of the intricacies of the system, or sometimes doesn't know how certain technology works and attempts to misapply it, or any other of a myriad of ways that bad assumptions get introduced. And the sooner problems are detected the easier they are to fix (or work around, if need be). And being able to identify when you are being told in a meeting to do something that won't work (assuming that you can also propose a solution), makes for a more valuable employee than someone who is just great at coding.

    2. Many people spot mistakes but are too afraid to say anything for fear of being wrong (that they misunderstood the code) or due to not wanting to come across as "negative". And sadly, sometimes people do get dinged on reviews for pointing out when things won't work since managers are also humans who make mistakes. But being an effective member of a team requires confidence and knowing how to identify when something is wrong (hint: make sure to have a proposed solution).

    3. Not everyone reads directions. Given how simple it was to find that the code wouldn't compile (i.e. just attempt to compile it), you would think that everyone would find the problem, right? I am willing to bet that there are some students who turn in code that includes the original error (because they never tried to compile it), or who turn in a "correct" version but don't know that it didn't originally compile because they simply copied from someone else who failed to mention that part. The professor can learn a lot about his/her students via such an exercise, while also teaching more than mere coding.

Now the professor wants me to apologize because my comment implied that there was carelessness on their part.

Yes, your comment certainly did imply that, quite heavily. And, while it does seem as though the professor shouldn't be demanding an apology -- do they really care what you think?, and are you the first student to say something "inappropriate" to them? -- the simple fact is that they are asking for one. Two lessons here:

  1. You can't control the reactions of others to you, nor will you always understand their reactions (and it goes both ways!). You don't know what else is going on this person's life, maybe a lot of stress, maybe you phrased something in just the right way to trigger an emotion in them, maybe they are just "thin skinned", or who knows. What you do know is that you have upset someone that you have a working relationship with, and you need to make it right, even if they mistook the tone or intent of your message.

  2. Pick your battles. You don't always need to be "right" in every situation. It is far better to give a "dishonest" apology than to continue a petty feud. And if your tone did insult them, then you can't say that you are correct because you did not intend for the email to be taken that way. You don't have to apologize for pointing out the mistake. You mainly need to apologize for making this person feel bad. And even if you (or anyone else) roll your eyes at saying sorry for insulting them, just consider how you want people to treat you: if you were insulted by someone and no matter how much you explain why they just don't understand, do you want them walking off saying, "well, I didn't say anything wrong so you shouldn't be feeling hurt" or would you prefer they just accept that you were insulted and they just acknowledge that they did it (even if they don't understand how) and that they didn't intend it.

What this all comes down to is:

  1. Yes, you should apologize for insulting them, and explain that you really did not mean to.

  2. This can only be done either over the phone or in person. Do not send another email, unless it is to simply say, "I'm sorry for insulting you. Can we please discuss this over the phone, after class, or during your office hours?". Office hour would be preferred since it is in person and can be a little more private than after class.

  3. Take this opportunity to reflect on how you would handle being tasked by a Product Manager or Manager to do something that won't work (or at least shouldn't be done in the manner requested). They won't be giving you a "test" to see if you will correct them. They might seriously be asking you to do something that will adversely affect the system (i.e. customers) or at least profits (e.g. a horribly inefficient process and/or one requiring additional hardware, etc). It is your job (well, everyone's job really) to identify the issue, raise the concern, and engage the requester and the rest of the team on how to solve it. Are you going to say, in a meeting with everyone, that the P.M. or manager should have realized what they were asking for because they had been there for years? Everyone notices how everyone else presents their ideas, especially if they are condescending about it. You generally don't ever need to ask someone how they can make such a silly mistake, because you are really just telling them that they are stupid and you are smart.

  • 1
    "Take this opportunity to reflect on how you would handle being tasked by a Product Manager or Manager to do something that won't work" - Yes I would expect something like the OP's email in this case. If your manager wants the impossible, you can't just say "Well I'm not sure if we can do this, or you sure this is what you want?" You have to give an actual well reasoned explanation for why your managers idea won't work. Doing so leads to the possibility of finding a solution that can work. – industry7 Jan 30 '17 at 14:58
  • 2
    One thing I disagree about this answer (and others) is the believability of the "intentional error" claim. Re: "If part of the purpose of the exercise was to see if students can spot the problem, then why on earth would that be mentioned in the directions? That is an unfair (and unrealistic) expectation on your part." This is in fact a common direction in many textbooks; e,g., Gaddis, Starting Out With C++ (7E), at the end of every chapter: "Find the Errors. Each of the following programs has some errors. Locate as many as you can..." – Daniel R. Collins Jan 30 '17 at 17:28
  • 2
    It's clear you put a lot of thought into this answer, but I downvoted it for simply being too long. Sometimes less is more. – Dan Romik Jan 30 '17 at 20:16
  • 3
    @srutzky sorry, your TLDR section is also (ironically) too long. Just my humble opinion, of course... Anyway, looking forward to reading your future answers. – Dan Romik Jan 30 '17 at 20:49
  • 2
    The Get It Done Guy has some great tips about writing email. Before you send it, read it in the most sarcastic snarky tone of voice possible. If you can read it that way without it sounding like you're giving offense, congrats! You may now send the email. Otherwise, don't send the email. – Wayne Werner Jan 31 '17 at 18:27
13

For the problem itself: Are you 100% sure that the program cannot be run? I am a bit rusty for x86 assembly, but often very old programs are still used in exercise und if you are not careful and run them in compatibility mode (simulating old processors in 16/32-bit protected mode), the increased pointer and operand size moves instructions out of range or leads to access violations.

Now to the reply. It is really hard to advise on that because we don't know the exact mail exchange, the tone you have used and how the professor ticks.

So I recommend that you read out the e-mail exchange to one of your friends / acquaintances whom you can trust and who is socially adept. Ask him how your mail sounds if he/she were the recipient. If the face grows longer and longer, I would strongly advise to apologize. If on the other hand your acquaintance does not find anything offensive apart from exposing an error, it is most likely an embarassed professor who feels exposed.

In both cases ask what parts could be considered inquisitive and refer to them in your answer apologetically. There are some formats which look like apologies which allow both parties to save face.

  • I am sorry if I have offended you/this mail comes off offensive...(This does not imply that your mail was incorrect or even intersubjectively offensive. But it allows the conclusion that the professor was offended and the reason for that may be out of your reach).

  • If it was your intention that we find this error, I am sorry....(Yes, if. Couple the apology on a fact which you believe is false and the professor believes/pretends to be true).

Read the answer e-mail to your acquaintance, correct it to his/her suggestions and send it back.

  • 3
    Ugh. In my assembly class, the number of times the instructor picked invalid indexing registers on the board was pretty bad. x86 16 bit has a lot of gotcha rules if you aren't really careful. – Joshua Jan 29 '17 at 16:29
  • 1
    The OP never said it was x86. Since x86 can take immediate values the size of the register, I’m thinking it’s not. – JDługosz Jan 29 '17 at 21:26
  • @JDługosz Correct, but what else is available now? Sun and Motorola are essentially dead, PowerPC was even given up by Mac. I also interpreted "immediate" not only as argument, but also as possible displacement of a pointer. – Thorsten S. Jan 29 '17 at 21:32
  • Well, I studied IBM 360/370 assembler even though it was already a museum piece. There’s numerous microcontrollers (where writing asm is really relevent!), various virtual machines like Java, and an “open” microarchitecture (I can’t recall the name) that is indeed subject to this issue, as the number of bits in the instruction for immediate values is less than the word size. – JDługosz Jan 29 '17 at 21:45
  • 2
    @ThorstenS. There are virtual CPUs not just for things like Java, and microcontroller development, but expressly for teaching both machine language and systems programming like writing a linker. I had to go to a lab to assemble my 360 code; a couple years later my friend was able to run an emulator on his ’386 desktop PC. You don’t want a student’s PC with differences from the exemplar but a perfect (simplified) system that continues to match the textbook even as PCs evolve. So don’t presume it’s native to his own PC or even using his own. – JDługosz Jan 30 '17 at 0:00
8

Even if I thought I had done nothing wrong, I would be okay with writing something like "I'm sorry I've offended you", since it just means "I'm sorry about offending", which doesn't seem to have been your intent.

This will usually be the smart move, and actually cost you nothing, so you have little to lose from it.

Usually, it is a sensible strategy to apologise when you have given offense without meaning to, even if you don't think you're in the wrong. It doesn't mean you did something wrong, it just means you're sorry about the fact that there has been any offense. If I step on someone's toes, I'll apologise, even if the other guy's toes shouldn't have been there in the first place.

  • Comments are not for extended discussion; this conversation has been moved to chat. – eykanal Feb 1 '17 at 13:56
6

The professor goofed by providing broken code while implying that it was to be used without modification1, and then you made matters worse by trying to educate the professor on something he already knows, when the most likely cause isn't that the professor doesn't know what he's doing, it's that the bulk of his energy goes into his area of interest which does not include your undergraduate class.

So step back from all the things that went wrong, and focus on what you need. Here's the reply I recommend writing.

Thank you for clarifying that I should have modified the provided code as necessary.

In other classes, the skeleton code provided for an assignment has defined an interface to which the solution must adhere; changing the code is not permitted because the interface is no longer compatible.

In this class, how may I know when a partial program code provided in the assignment forms a mandatory interface and must be used verbatim in the solution, and when I am allowed to improve it? Is adaptation of skeleton allowed for all assignments in this class?

A reasonable professor will make an announcement to the class that there is no requirement to use the partial code as-is. If the professor persists in demanding an apology after the miscommunication is explained, then you know he's only interested in feeding his ego.

It has a side effect of closing any loophole allowing the professor to retroactively pretend that mistakes were intentional, if you suspected that was what happened here.


1 Having students find and fix unannounced errors is a useful and acceptable teaching tool, but the instructions need to clearly indicate that modification of the provided code is permitted, because the norm in computer science classes is that it is not.

  • 1
    Unfortunately for OP, s/he does not seem to be dealing with a reasonable professor. – einpoklum Jan 31 '17 at 10:46
  • @einpoklum The politic thing to do is almost always to behave as if the professor is reasonable, even in the face of compelling evidence that they aren't. – zwol Feb 1 '17 at 15:33
3

Tact, is the art of making a point without making an enemy - Sir Isaac Newton

Let us examine your choices:

1) Your professor made a mistake and can not admit it, he is a jerk.

Unlikely, but not impossible.

Best response: Apologize, you never, ever, want to antagonize a jerk who has power over you. You can not win this fight. Apologize and mean it.

2) Your professor is being honest with you and you have hurt his feelings with your accusations.

More likely.

Best response: Apologize and mean it.

Same decision for both possibilities, do it.

A bit of clarification on "and mean it." Emotions are the key to life. You must always ask, what is the other person feeling. Feelings, that is what motivates human beings. Calm down and really feel with your heart that you have made a mistake. Now, the correct words for your response will flow naturally. No one can find insincerity where it does not exist. Good luck.

2

While this situation is unpleasant, it's much better to learn how to deal with this now, rather than end up accidentally having it out with the person who writes your performance reviews.

Professors teach, so if you approach resolving this from that angle you'll have a better chance for success.

Go talk to your professor, in person, not to defend your position or to apologize, but to learn.

Something along these lines:

Hi Professor X, can you help me understand how I went wrong in my email to you about the bug I found?

The last thing I wanted was to offend you, and it appears I've failed badly in this respect.

Can you help me understand where I went wrong and any tips or resources that can help me avoid doing this in the future?

It's important to go in with the understanding that, unless you intended to offend your professor, you have messed up.

  • The Professor may not be approachable enough for even this, and might react angrily again. – einpoklum Jan 31 '17 at 10:48
  • 1
    @einpoklum if it's that bad, escalation to having the department head mediate is the next step, and also good practice for real life. I've found that admitting you messed up and asking for help takes the wind out of their anger and helps move past wounded pride. – Morgen Jan 31 '17 at 12:14
  • Fair enough. See my answer as well though. – einpoklum Jan 31 '17 at 12:20
  • 1
    If I wrote "Hi professor" in my country, that would be considered way worse than 5 paragraphs of supposed (but unproved) "patronizing". I think it should be pointed out that the tone of your sample message would work in some countries but totally screw up things in other countries. – Andrea Lazzarotto Feb 3 '17 at 11:42
2

If you believe the Professor has misled students by providing the incorrect program, and that several, or many, of them got lower grades because this prevented them from properly solving the exercise, you should perhaps turn to your student association, or more specifically to your faculty representatives within the student union, to bring this up. More useful to do this with at one or two people who actually suffered because of it.

If that's what you're planning, you need to be extremely careful in what you say or write the Professor. It would probably be a good idea to give the semi-honest apology about your tone and your not meaning to offend, which other answers here suggest - but don't walk back your actual claims or legitimize what had happened.

By the way, do you know if that professor has a reputation for mistreating students? Try asking around with people who took his/her courses earlier. It's often a repeating pattern.

At any rate, if you move this from an individual altercation to some form of organized action, that would prevent your being exposed to hostile retaliation on the professor's part and will increase the chance of him/her having to answer for his apparent sloppy work and refusal to apologize/clarify.

All this assumes, of course, that you were actually right about the facts and the context - something which is hard to judge by the description from your side only.

  • 1
    This is a great advice for how to have an extremely difficult academic career followed by an even more difficult professional career. – Carey Gregory Jan 31 '17 at 20:23
  • @CareyGregory: (1) It's the right thing to do; it serves the public good; it's rewarding; and letting wrongs stand is something worse to regret than having not taken it easy. (2) If the academic career is limited to undergraduate studies, it is not likely to be difficult; grudges get repaid easily when you're in grad school and depend on the university more (speaking from experience of course). (cont...) – einpoklum Jan 31 '17 at 20:29
  • (3) If OP does not try to "spearhead" this struggle him/herself, then for sure it'll not be hard for him/her. Although in that case it's quite possible that the student union will not press the issue enoguh. After all, it's probably not the first time this professor has acted this way, and nobody's warned people about him/her. – einpoklum Jan 31 '17 at 20:30
  • 1
    You've convicted the professor with no evidence and no trial. As I said, this is a great recipe for a difficult career. Maybe you should re-read your own last paragraph again. – Carey Gregory Jan 31 '17 at 20:33
  • 1
    Starting with the assumption the professor is honest and well meaning would be my advice, yes. Only when there is convincing evidence he's not would your answer apply. – Carey Gregory Jan 31 '17 at 20:47
2

Despite how large egos are in academe, they are very fragile. Pointing out a professor's mistake can be taken in a variety of ways. The tone, and even completeness of your explanation, could be considered offensive.

I will say that the professor's explanation was pretty poor -stating the question was designed that way is a bit odd when the questions does not suggest troubleshooting in the answer. To me, this suggests you hurt the professors feelings while they simultaneously try to convince you there was no mistake. Denial is a common human response. Likewise, a demand for an apology suggests your inquiry damaged their ego more than it should have.

I would evaluate the tone of your inquiry, and base your apology off of the presence of some imprudent remark. That said, if you were polite in your inquiry, I would not apologize. Just remember that professors are masters of your grade in their course. Based on what you said, retaliation from someone of such fragile disposition could occur.

1

Don't apologize. Don't be surprised though when he nitpicks your projects, and don't be surprised when your A-quality term project gets graded a B-. Your dilemma is so common in the industry. You can be right. Or you can get promoted. Choice is yours.

  • 12
    And they should not be surprised when their superior programming skills turns out to be at a mediocre level because rather than using knowledge that other impart (or attempt to impart) at the best possible level, they insist on being not only right in the matter but also in the other person's intention. I found that the most self-confident students are in most danger of being mediocre ones, and some of the most self-conscious are driving themselves to the highest levels. – Captain Emacs Jan 30 '17 at 2:02
  • @CaptainEmacs is your comment a trial to the OP? It seems that the student tried to use knowledge provided by the textbook authors (which probably know stuff) to figure out what he could and couldn't do with the opcodes. If this is being mediocre the world might be better than expected. – Andrea Lazzarotto Feb 3 '17 at 11:46
  • @AndreaLazzarotto No, it's a general statement. I had incredibly self-critical students, who despite being told they are doing well, kept feeling that they did inferior work and pushed themselves very high. And I had these students with high opinion of themselves and dismissing other people's work - some rare of them were right (in that their work was superior), but, by far the most had an inflated opinion of themselves. In picking out flaws of other's work, better have a good self-judgement. I don't know the OP's level and make no statement how great an achievement his insight would be. – Captain Emacs Feb 3 '17 at 14:22
  • @CaptainEmacs I would be interested in seeing where OP said they have "superior skills" or performed a "great achievement". Otherwise your remark seems to me a little bit OT in this context. – Andrea Lazzarotto Feb 3 '17 at 15:35
1

There are a variety of answers here. I'm adding my own position to provide some straightforward advice. With the nature of the question, any advice given may be subject to the different dynamics of different people; specific approaches may or may not work out well in different individual circumstances (that involve different people). That being said, here are the instructions I provide for you to consider acting on.

You must absolutely back down, for your own good. The professor is in a position of authority over you, and may have some leeway in deciding whether to grade something favorably (whether in this class now, or another class). You don't benefit from being on the professor's bad side.

Either:

  • Apologize for taking a stance of being offensive. By being offensive, I don't necessarily mean that you were personally slandering. Your "offensive" nature might not have been any more inappropriate than playing an "offensive" role in basketball. Still, sometimes instructors try to prepare students for industry by making sure that students are used to humbly taking instructions.
  • or apologize for not doing a better job of communicating in a way that didn't end up being annoying (or worse).

    All of us humans can communicate in a way that doesn't end up pleasing everyone. This is a flaw that seems universal to our species. If we're very honest about life, then we can feel some degree of sorrow (a.k.a., being "sorry") for unpleasantness we cause, even if the amount of sorrow is slight because we don't feel like we could have done better. Just be disappointed in the lack of ability to completely pacify everyone, and then you have the basis of an honest apology.

Don't feel like you need to convince the professor that you're suitably reformed and are now a stellar model of what the professor would identify as perfection. It seems that you burned a bridge, inadvertent as that may have been. How easy it is to repair the damage, or whether that is even possible, is highly dependent on the professor, and you might not be able to recover fully. Writing a lengthy apology may do more harm than good. Keep it short and sweet; three sentences or even one may be sufficient. Just communicate a posture that that shows you're going through the step of apologizing, and that may be the best that you can do. (Well, that, and you might want to walk on egg shells for the duration of time that you interact with that professor. Whether that is needed may depend on just how thoroughly those bridges do end up getting repairs. Even if you do again appear to be on the person's good side, make sure to never repeat the same action, so that you don't re-offend in the same way. If you do, any acceptance of your apology will likely be revoked.)

This is coming from a person who got on the wrong side of a department chair within the first 80 minutes of a program. This was because I tried to dutifully defend a score, and I guess she just deemed me to be adversarial. She even took me out of the class for a one-on-one chat, which was a first for me. I was terrified, and remained very cautious throughout the entire program. It was not pleasant. Towards the end (maybe my second-to-last-day there), the topic of that early encounter got brought up. (I think I may have delicately brought it up, asking if she still thought of me as a "troublemaker". It was a slightly risky thing to do, but I served her well and even did some good for her program, and was genuinely interested in feedback, so I took that risk.) I even got an acknowledgement of the "misunderstanding" that the department chair had.

I remained pretty stressed throughout the program, but I did end up getting a straight A in every course (thoroughly demonstrating a reversal of prior academic years where I had some different results). As I could (unpleasantly) handle the stress I endured, the end result was quite worthwhile for me.

0

Schools, like business, army, most political parties, ... are non-democratic organizations. Thus, your answer (if you write it: an option is let time to pass) must be pragmatic, write what gives the best result to you. Do not start an ethic war, you're going to loss it.

You can "apologize the misunderstood" (that is not the same that apologize your mail). Or, as another answer says "I'm sorry if I've offended you".

If, as theoretical exercise, we analyze the facts exposed in your question:

Could be the teacher has made an error (by example, copy&paste the exercise without any check) and doesn't wants recognize it; could be it is true that the code mistake is voluntary introduced, but start the exercise with "complete the program below ..." instead of "based on the program below ..." is an error: he points students to the wrong path.

Worst, after your mail, teacher is using their status and position to punish the answer and your complain about quality: he is trying to teach obedience instead of criticism. He could simply explain you the facts and why your mail has been incorrect in background and/or form but instead, according what you explained, he is trying to force you to do what you consider near to false and humiliate.

However, again, remember: you are not in a democratic organism. Be pragmatic.

  • 6
    +1 Agreed. We live in the real world, not the ideal world. OP needs to gain some maturity pretty quickly. – Joe Jan 29 '17 at 20:48
  • @Joe in this case it's called submissiveness, not maturity. But you are right that he needs to gain it quickly. – Andrea Lazzarotto Feb 3 '17 at 11:50
-4

Personally, I would not respond to a demand like that. My parents never taught me to kowtow.

My sense is that you got yourself into trouble by getting too anal about the assignment. Most textbooks are littered with mistakes. You could spend your life trying to correct all the mistakes in a textbook.

Just get on with it and do your work.

  • I'm sorry to see this so down-voted. The answer does start with the word "Personally," indicating that this may be a single person's stance. Although I may disagree with it, the answer is "useful" in the sense that it provides an opinion, and particularly a different perspective. We should be voting based on whether an answer is useful, not whether we agree with it. (Even if it is wrong, the answer may be useful for contemplation/discussion.) – TOOGAM Jan 31 '17 at 14:23
  • @TOOGAM I am like Prisoner Number 6, a free man trapped in world surrounded by kowtowers... and they downvoted me. The subservient do not like those who are not subservient, sad fact of life. – Tyler Durden Jan 31 '17 at 15:39
  • 4
    @TylerDurden I didn't downvote, but if you want some honest feedback, here are a couple of things that make it not a good answer: first, you say you would not apologize, but the only explanation you offer is "my parents never taught me to kowtow", which is an argument from authority and logically invalid. Second, you don't offer any specific, actionable advice for OP about what to do instead of apologizing, except the highly ambiguous "just get on with it". So, subservient or not, I'm afraid your answer is simply not helpful. – Dan Romik Jan 31 '17 at 17:51
  • @DanRomik My advice was to ignore the professors demand for an apology. I thought that was pretty clear and unambiguous from my answer. – Tyler Durden Jan 31 '17 at 17:56
  • "Never to kowtow" - that smacks like a "just because" going against authority, independently of the merit of the case, with no regard for what may or may not be the facts. Didn't downvote, but I do not like the advice justification, Dan Romik's comment is very apt here. Whatever action one decides to take, should not be just appropriate, but it is a good idea to make sure it is done for the right reasons. So, even if the advice of action may be a perfectly acceptable option, the justification is not really strong. – Captain Emacs Feb 3 '17 at 15:49

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