What to reply to a computer science student who asked you to be his accomplice in cheating?

You probably are familiar with the phenomenon of students, who pay other people to write term papers, theses and projects for them to submit in order to meet academic requirements.

Few years ago, a computer science student named R. (a pseudonym) approached me and asked me to write for him and his partner a computer program, so that they will submit it to meet a requirement in order to pass a course, which they were studying.

Instead of taking money from him, I replied to him as follows.

I am approaching your question from the point of view of a mentor, teacher or a wise person needing to advise a young person, who is in a difficult situation and who is considering a bad solution to his problem. What the young person really needs is not to have someone else do his project for him, but long-term thinking: what are the long-term consequences of this solution, what alternative solutions exist, which obstacles exist in the alternatives, how to overcome those obstacles, the need to summon courage to change course.

For starters, as far as I am concerned, what you asked for is in the grey area between cheating and having an original solution to the problem. This is because certificates are not worth that much in the vocation of software development. Either the developer knows how to program or he doesn’t know, no matter what degrees or impressive certificates he has. If he does not know how to program, then within half a year his employer, if the employer has a clue, knows about it, and gives him a kick in the ass – reducing the long-term damage. Also, there are several people, who take on big projects and hire other people to do the actual work. However, the difference is that they have to provide the project with services such as marketing skills, project management, search and selection of development tools, money handling, etc. – instead of (or in addition to) software development skills.

Now to the point. Before proceeding further with what you and your partner are contemplating doing – I highly recommend that both of you read Ayn Rand’s “The Fountainhead” and follow Peter Keating’s career development in the book. He started out relying upon other people, like you are contemplating doing, made an impression on the right people and reached the top of his profession.

But… he didn’t last long and eventually he fell. And the sad truth is that he trained for the wrong vocation. There was a vocation that suited him perfectly, and he could really excel at it, but his mother pressed him to learn the vocation he actually learned (and in which he eventually failed). The saddest thing about his story is that when he realized which vocation is right for him and started engaging in it – it turned out that he started it too late and could not reach a high level of proficiency in that vocation.

If you and your partner decide to pay someone else to do your project, then:

  • Anyone, who knows that you have done this, will be unable to help you look for a job, because they will have to lie if they vouch for your software development skills.
  • During software development work, there are periods of extreme pressure. Schools plan their course syllabuses so that an average student can handle the resulting pressure (with some sighs and groans). At work, pressure can be unlimited. So if you are unable to cope with pressure in school, it is very unlikely that you can cope with it at work. So you should consider a vocation, in which there is no such pressure.
  • You give up the fight to be really good professionals, who know when to accept failure like men (even at work there are some projects which fail, due to all kind of reasons, such as over-optimistic effort estimates, and it’s better to admit failure and move on to another project), and instead of accepting failure and its consequences, you are heading toward pretense.
What to do now?

I suggest that you first carefully review the decisionmaking process that led you to decide on a vocation in the software world. If you have taken psychotechnic tests and consulted with a specialist in the area of vocational selection, one of the tests was probably as follows:

  1. Go over a very long list of topics and highlight those which interest you.
  2. Group the interesting topics into groups, such that the topics in each group have the same theme from your point of view.
  3. Go over the groups and identify potential vocations related to each group.

Why am I telling you all this? Because if you kept the papers from your evaluation (or you can get them), you might find there a clue for identifying a vocation, which really attracts you and in which you can excel.

The next step is to determine if you have relatives, who are unwilling to accept that your future is not in the lucrative and profitable software world, but in another direction. Then check if and how to neutralize their influence upon your choice of the vocation that fits you.

I assume that the computer world is appealing to you, so you may want to check out some other vocations in this world besides writing software (I remember that in Hadassah Institute for Professional Selection Counseling in Jerusalem, where I did my vocational counselling, there was a library with descriptions of thousands of vocations – such a library could help you choose the right vocation for you). Examples: training, installation and configuring, software testing, maybe even administrative project management. Then go on to specialize in the vocation that suits you and in which you can excel.

True, you already started studying and already invested two years in your studies, and now I am proposing to write off all this investment and start over? Yes, however as far as getting a certificate or a degree is concerned, some of the investment will probably be lost. But as I said above, certificates are not that valuable in the software world. Like a pilot’s license does not turn someone, not having the aptitude to pilot, into an ace fighter pilot; also a software developer’s certificate does not turn someone not fit to be software developer into a great software developer. In terms of content – I’m sure you’ve learned something that will help you in any direction you choose for the rest of your life. And as far as the requirements for finishing your studies are concerned, once you know which direction is right for you, you probably can switch to a major which fits your vocational goals. In this case, you’ll probably be able to use some of the credits of the courses that you already completed. So what you already studied is not a total loss.


A student, who is paying someone else to do his homework, term papers, projects or theses, is like a basketball player who is paying someone else to go to his team’s practice sessions.

Author: Omer Zak

I am deaf since birth. I played with big computers which eat punched cards and spew out printouts since age 12. Ever since they became available, I work and play with desktop size computers which eat keyboard keypresses and spew out display pixels. Among other things, I developed software which helped the deaf in Israel use the telephone network, by means of home computers equipped with modems. Several years later, I developed Hebrew localizations for some cellular phones, which helped the deaf in Israel utilize the cellular phone networks. I am interested in entrepreneurship, Science Fiction and making the world more accessible to people with disabilities.

2 thoughts on “What to reply to a computer science student who asked you to be his accomplice in cheating?”

  1. First of all, there is so little correlation, among having a CS degree and being able to develop software, that presenting a CS degree as a proof that you can develop software is sort of cheating.

    If the student is expected to submit a program written by him personally, then what he asked of me would be cheating. But if he is expected to get a project done by whatever means, say to meet the requirements of a software project management course, it would not be cheating.

    Then, how about a course, which expects its attendees to form groups to develop software together? In well-managed groups, there would be a division of labor such that some students might be responsible for architecture and testing. Then they would do little actual software development. However, they would pass the course if their group did good work as a group.

  2. “For starters, as far as I am concerned, what you asked for is in the grey area between cheating and having an original solution to the problem.”

    Out of your entire post, this is the line that particularly concerns me.
    To the point that is seems to remove any value from any subsequent arguments that you make.

    How is such a request anything but cheating?
    How can you consider it to be any kind of a solution, let alone an “original” one, if it does not solve the stated problem?

    It seems to me, that you are confusing real world software development and academic work.
    Yes, in the real world the problem statement is: “we need software X to be developed” and thus a possible solution is outsourcing the work, or using your non-developer skills to choose the most suitable candidate to do the work.

    But this is an academic course, and the program statement is “show us that you are capable of performing this specific task”.
    Thus, any attempt to get away from performing the task your self while creating the appearance that you did, is categorically cheating, and thus is quite black and white.

    Your post title even seems to reflect this, so why this attempt to appease the cheater?
    You then compound the problem by trying to reduce the value of a CS degree, but how is such a discussion even relevant?
    I my self don’t have a degree, and I have been working in software development for 15 years, so I won’t get in to an argument about correlation between good developers and university degrees.

    But a degree, and a CS degree in particular, is proof that you accomplished a certain amount of specific work under certain constraints and conditions. and thus a basic level of competence can be expected of you (beyond just development specifically).

    You mentioned a pilots license, and sure enough, not every licensed pilot is an ace, but let me ask you this:
    Would you get on a plane with a pilot that paid someone else to take the test for his license?
    Would you even get in a car with a driver that bribed the examiner to pass?

    Right now you are probably thinking that those cases are different because your life would be on the line, while in most cases of software development no one would be physically harmed by an incompetent developer.

    But the fact that this is a “safer bet” still does not change the fact that this is cheating.
    Because you make a false claim and thus create a false gamble.

    Did you ever notice the disclaimers in “Mifal Hapise” advertisements about chances of winning?
    Even when people gamble, they ethically right thing to do is to let them know what the odds of the bet are.

    And one last thing (since this comment is already turning in to a post of its own):
    Half a year of wasted development time is not a trivial thing for most companies.

    Perhaps giants like Google and Facebook can afford to “test run” a developer for 6 month because of their enormous size, but for a medium to small size company such a delay could be a disaster, spelling project failure and layoffs or even closure.

    And yet, it is those giants who do use academic degrees to filter job applicants, and who have the most rigorous applicant testing in the industry.

Leave a Reply to Lev M. Cancel reply

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: