After an undergrad degree in mathematics, I am doing a PhD in theoretical computer science. To satisfy my PhD program’s requirements, I'm taking a very challenging coding class this semester. I know how to code, but this course is more like a systems programming class and not something I'm used to. However, I have been doing all the assignments of the class.

The professor is quite a tough grader, willing to give a 0 in the whole assignment for compilation errors. Although the average of the class is quite low, I have been performing way below the average (typically in the last 15%) in every single assignment and exam. The professor has said that every one of our assignments/exams are graded under a curve, so our absolute grade doesn't matter that much, but only our relative position in the class.

Since I'm performing way below the average (despite putting a lot of effort) I'm worried that I won't be able to get the minimum grade required by my program (B), or even worse maybe I won't even pass the class.

The final and all assignments are all over and I should expect my grade in the next week. How could I talk to the professor and tell him that I put a lot on effort in his class, but due to my lack of programming experience my performance was way below the average of the class?

Update: I just received my grade and it was a B. I wasn't that far from the average as I thought (the final exam also saved me). Grade cutoffs were pretty low. I didn't contact the Professor as suggested.

  • Comments are not for extended discussion; this conversation has been moved to chat.
    – Bryan Krause
    Commented May 9, 2022 at 18:22
  • 3
    Congratulations. You made it. That's the great news. :-) Hopefully, you will do even better in future courses. Commented May 11, 2022 at 22:07

4 Answers 4


How could I talk to the professor and tell him that I put a lot on effort in his class, but due to my lack of programming experience my performance was way below the average of the class?

The professor, and basically all professors, hear this “I put in a lot of effort” argument several times a semester from students who have failed or are close to failing. Over 10-20 years of teaching, you hear this claim dozens or hundreds of time. And yet, what we aim to measure is students’ knowledge, not how hard they worked. It’s safe to assume that your professor has not changed a student’s grade in the recent past based on this logically irrelevant argument, and that he will not change yours either.

I am sorry about your predicament, but grades are earned for demonstrating mastery of the material of the course. Skirting around this basic issue will not get you anywhere with your professor.

Edit: I see an interesting discussion in the comments on the more specific question of whether it’s reasonable to give a score of 0 for a programming exercise solution that doesn’t compile. I don’t teach programming so I may not be completely knowledgeable about the technical issues here. But for what it’s worth, I lean on the side of those saying it is reasonable. A solution that doesn’t compile may hypothetically demonstrate some knowledge and deserve some partial credit, but as a practical matter, expecting it to compile seems like a very minimal thing to require of a student attempting to master the art of coding, which is after all a practical rather than a theoretical skill. In the real-world, the primary purpose of a computer program is to get compiled and to actually run.

What seems even more reasonable to me is creating a grading environment that makes it impossible to submit a solution that doesn’t compile. This can be done in an automated fashion using various scripts etc. (in the same way that the arXiv won’t accept a LaTeX file that does not compile to a PDF file), and would provide immediate feedback to the student that their solution doesn’t meet even the minimal specifications for the assignment, giving them an opportunity to correct the work and submit again, before any human grading labor is required.

  • 1
    Regarding the last paragraph, I like the basic idea, except that if the student is unable to get the code to be accepted by the grading environment, the possibility of getting partial credit for demonstrating mastery of the rest of the task is excluded. Seems to me an even better idea is a grading environment that provides immediate feedback to the student that their code doesn't compile, and maybe gives them a choice to proceed or try again later; but doesn't completely prevent the assignment from being submitted.
    – LarsH
    Commented May 9, 2022 at 14:47
  • 5
    For example, failure to compile could be due to a configuration difference between Python environments or versions. That could be the student's fault, or the professor's, or the sys-admin's. Even if it's the student's fault, figuring out how to correct it can take significant time. If the assignment deadline is at hand, I would rather the student have an opportunity to show what they have accomplished, rather than say they get zero credit because they didn't solve the configuration problem, even though they correctly implemented an oct-tree or a hashing algorithm.
    – LarsH
    Commented May 9, 2022 at 14:49
  • 2
    @LarsH thanks. Sure, I’m assuming everyone’s running the same versions of the programming environment. Basically if the student has not checked that the program compiles on their own system then something is seriously wrong with their approach to coding and they should not be able to submit. In practice there might need to be an option to “provisionally submit” a non-compiling program in borderline situations related to a difference in environments, compilation flags etc. (This sort of suggestion is what is known in programming jargon as an “implementation detail” :-) )
    – Dan Romik
    Commented May 9, 2022 at 14:57
  • 3
    Yeah. My daughter has been taking online college courses, and far too often, the assignment submission system is poorly set up: It's difficult to find documentation on how to use it, the professor doesn't understand it, it doesn't do what it says it does, she submits questions to tech support and gets answers that don't match the available options, etc. For students' grades in any course to depend critically on some "smart" aspect of the submission system to always work properly is asking for trouble.
    – LarsH
    Commented May 9, 2022 at 19:51
  • 4
    @ShawnEary that’s an interesting topic and indeed gets discussed frequently on academia.se. To clarify, my answer does not discuss the moral justness of grading on a curve or the question of whether OP “deserves” to fail. I’m mainly pointing out that the particular argument OP raised about working hard will not be a winning argument. But as for your point, it seems pretty clear here that OP has not shown “near mastery” or anything close to it, by OP’s own admission. So I think the grading on a curve issue is of little consequence to the discussion, or to the likely outcome.
    – Dan Romik
    Commented May 9, 2022 at 21:35

The original version of the question asked:

What should I expect about my grade in this situation?

We do not know. I went to a top grad school where all the students were brilliant, and so even the lowest students earned Bs. Conversely, I taught some classes where the lowest 15% got Ds and Fs. Only your professor can tell you what grade you will get.

Your updated question asks:

How could I talk to the professor and tell him that I put a lot on effort in his class, but due to my lack of programming experience my performance was way below the average of the class?

You don't. As the other answer states, it is too late now; you really should have sought their advice much earlier. Moreover, they likely already know how much effort you put in. In my experience, one of these three things is true:

  • They feel really bad at you trying so hard but doing so poorly and would love to offer you advice, but decided to wait for you to approach them (which you didn't do), or
  • When deciding where to set the line between passing and failing, they look at the assignments of the students on the borderline and take those into account (for better or worse), or
  • They are even more hard-hearted than me, and assign grades purely numerically, without taking any emotional factors into consideration.

In all three cases, telling them "I put a lot of effort into your class but didn't have enough programming experience to do well" does not change the outcome. In the first case, they'll feel bad but be unable to do much now that the course has ended. In the second case, they'll already know everything you want to tell them. And in the third case, they won't care at all about these factors, and may be annoyed that you try are trying to get them to give you a grade based on something other than your performance.

  • Comments are not for extended discussion; this conversation has been moved to chat.
    – Bryan Krause
    Commented May 9, 2022 at 13:38

You are not failing because the professor is grading on a curve. You are failing because you do not understand the material.

It is likely you will get an F for this course. Can you withdraw from the course with an incomplete? UPDATE: final is already in, it’s unlikely you can take a W.

I would talk to the professor, but to figure out how to withdraw from the class without a grade, or change to a pass/fail.

It’s common to give 0s if something doesn’t compile. If you are in the bottom 15% you will fail the course, which could cause problems with your PhD. Assume every computer course will have this rule moving forward.

Your focus should be on mitigating the academic fallout from failing the course. I would also consider talking with your current advisor and seeing if they can help you.

When you talk to the professor, don't talk about how hard you tried. They've heard it before - probably 100+ times. Their go-to method to handle someone in the bottom 15% of the class begging for a better grade is to explain in detail how they earned an F.

I've never been in a situation where a grad student made an F. Here are the questions I would ask while talking with them.

  1. Why didn't you take an incomplete/W grade when you saw you were doing poorly?

  2. Making an F as a grad student is a big deal. You could easily end up on academic probation. Figure out the worst-case scenario and work to avoid it.

  3. Why did you wait until the final was in to try and fix it? If you had come to my office before now I feel I would have suggested withdrawing.

  4. Where are you in the PhD program? Especially if you are in your first year, the university will almost certain put you on probation, which may affect scholarships and funding.

Making an F in grad school is much different than in undergrad. Find out what will happen if you get a F and prepare as much as possible for it. You need to be proactive. Your future in this program could be in jeopardy.

  • 4
    If you are in the bottom 15% you will fail the course - Why? Grad (and upper level undergrad) courses, even if curved, are not typically graded on a "standard Bell curve".
    – Kimball
    Commented May 8, 2022 at 12:46
  • 6
    @Kimball - Grad students can fail. It sounds like OP has demonstrated he has NOT mastered the material, and knows it. As a computer science grad student you need to be able to turn in code that compiles, which the OP can’t. Commented May 8, 2022 at 15:06
  • 1
    What’s your basics for the claim that being in the bottom 15% means failing? How did you arrive at such a specific percentage?
    – Henry
    Commented May 8, 2022 at 15:45
  • 3
    @Henry - It’s probably more like 20%. From the rest of the post it’s clear the OP hasn’t understood the material. The number is going to change slightly, but there are always 1) lazy students 2) students who are in way over their heads who just can’t master the class. Those 2 groups usually add up to 15% to 20%. How I got that numbers TAing + teaching. Commented May 8, 2022 at 16:00
  • 1
    I agree with the commenters that say that this answer assumes a little too much about the specifics, but nonetheless I think this answer provides good actionable advice. It may not work, but it seems like the last reasonable option besides just hoping that OP makes the cut.
    – bob
    Commented May 9, 2022 at 15:52

This indicates that the top 20% of students get A's, the next 20% get B's, and then C's, then D's, then F's.

Since you're in the bottom 15%, you should expect an F. Sorry.

Edit: in response to your edit, see this related question. You could tell the professor, but what are you trying to achieve? Your professor can't just change your grade, and it's simply too late for things like remedial classes or tutorials. If you need help from the professor, you really need to let him know once you start struggling, not after you drown.

  • 12
    The grading system listed on Wikipedia is very much not universal, and as far as I know not even that common. IMO it's entirely unjustified to assume that Keio203's class uses that scale based on the information we have.
    – David Z
    Commented May 7, 2022 at 20:11
  • 7
    Even Wikipedia says this is "the most extreme form" of grading on a curve. Commented May 8, 2022 at 0:13
  • 7
    @Allure: I'm from the US, and (approximately) nobody does that. "Grading on a curve" could mean anything from "I give everybody a few bonus points if the test is really hard" to "I scale and translate the distribution of grades until the mean and standard deviation match [whatever numbers the department wants]," but it certainly does not imply this highly specific "20% gets an A etc." scheme.
    – Kevin
    Commented May 8, 2022 at 4:26
  • 9
    Do not trust that Wikipedia article, there is a lot asserted as commonplace that I (as a lifelong U.S. academic) have never heard of before (e.g., "grade rationing"). Commented May 8, 2022 at 4:45
  • 7
    It's definitely not commonplace for an instructor to design a course where ~40% of their students would be failed (with a D or F). That'd very likely have the bulk of full-time students failing at least 1 class per semester.
    – Nat
    Commented May 8, 2022 at 21:40

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .