I Did Not Cheat

Thanksgiving morning I wake up to this in my email.

After careful inspection, we found that some students did not follow the project 2 spec correctly.

In particular when the self flag is specified, many students still used the stl libraries and vice versa. If this was the case, we have deducted 50% from your grade. This should not affect the students who followed the spec correctly.

Please doublecheck your score. If you believe you have been misjudged in this inspection, please email [redacted] with a subject “Appeal for project 2 grade”.

OK, no worries, I thought. I didn’t cheat. I spent many long hours writing unit tests and debugging algorithms that we were required to write that duplicated STL functionality. Surely they saw that. I headed online to confirm that points weren’t deducted. There my grade stared me in the face. 46/100.

Needless to say, this is not how I wanted to start my holiday. Maybe the worst part is not the accusation but the fact that they had the audacity of sending this email on Thanksgiving knowing that repeal emails won’t even be considered until after the holidays. My holiday is effectively ruined. They didn’t have urgency to let me know sooner (I submitted the code October 25, so it took them nearly a month) nor did they have the decency to wait until after the holidays.

I also can’t believe that they adhere to guilty until proven innocent philosophy. They should have notified me that I was under investigation, and then once again when they reached the hypothesis that I did cheat. All before deducting my grade. Therefore, by not giving a chance to defend myself until after the deduction I will be fighting an uphill battle against people who think they’re right.

They’re wrong. They have offended me. They’re saying that I don’t know how to program and that I purposely decided to deceive the graders. I promptly sent a reply.

To whom this may concern,

I would like to know how it was concluded that I didn’t use the algorithms that I wrote myself.

To disprove this allegation I present a few snippets of code. I assume that you have my code so that you can confirm yourself. This is code from my latest submission (, though all my other submissions should reflect the same thing.

From options.cpp starting at line 32

case 'a':
    if (strcmp(optarg, "STL") == 0)
        result.algorithm = STL;
    else if (strcmp(optarg, "SELF") == 0)
        result.algorithm = SELF;
    else if (strcmp(optarg, "FASTEST") == 0)
        result.algorithm = FASTEST;
        std::cerr << "Invalid algorithm" << std::endl;

This is then used at main.cpp:75

Algorithms algo;
if (opt.algorithm == SELF)
    algo.unique = unique;
    algo.intersection = intersection;
    algo.unions = unions;
    algo.difference = difference;
    algo.merge = merge;
    algo.sort = radixSort;
    typedef std::pair<std::string, double> pair;
    algo.pairSort = insertionSort<std::vector<pair>::iterator,
        bool (*)(const pair&, const pair&)>;
    algo.similaritySort = insertionSort<std::vector<SimilarityStruct>
        ::iterator, bool (*)(const SimilarityStruct&,
        const SimilarityStruct&)>;

All of these functions are fleshed out in algorithms.cpp. It is clear that these functions I wrote myself. I can see a potential misunderstanding as there are stl algorithms that have the same name; however it can be proven that they are not the stl algorithms, as they are not prefixed with the namespace std. There are no “using” statements in my code either.

It can then be seen throughout main.cpp that I query “algo” for the appropriate function to use when the user asks for it.

Hopefully this can be resolved quickly and be shown that I have not cheated.

Nick Babcock

Addendum (11-27-2012)

I received a response on Tuesday the 27th, which isn’t bad considering the earliest that I was expecting to hear back was Monday.

Your Project 2 Grade appeal has been taken into consideration and updated on Ctools. Please check the updated grade and verify (to me not EECS281help) if something is still incorrect.

That sounds positive, right? I checked my updated grade and I was surprised to see that my grade was raised by 5%. What does that even mean? That I partially cheated? Or was it the 5% that was awarded for style? But wait, that doesn’t make sense as that would have meant that I achieved a 101% on the project without the deduction. I fired back another email.

Thanks for the response. I am a bit confused about the updated grade. Previously, I had a 46% (with the deduction) and I just checked and it was a 51%. How was this calculated?

A few minutes later:

Sorry for the confusion,

Does that look a little better?

A 97.07% does look better! I ended the email conversation by apologizing if my initial email sounded like I was offended (but it was, after all, thanksgiving)

Though it was never confirmed that my function names were misleading, I still believe they were the cause of suspicion, so from now on I will be naming my functions much more clearly.


If you'd like to leave a comment, please email hi@nickb.dev

- Sheldon Cooper

Well that is rather unfortunate, but I am glad to see that you used the proper procedural methods and dogma to appeal the poor grade and rectify the entire snafu.