Coding, Ethics, and Coincidence

I think you might have misread – Apos said the teacher did not want them to discuss the logic of the program, not of programming in general.

Absolutely. I would hope that my students discuss the course material and try to help each other with understanding of general course concepts.

However, the issue here is whether students are actually discussing solutions (which involves the logic therein) of a specific program to be turned in for a grade.

I would advise telling her this, while at the same time making it clear that you did not discuss actual logic of the program (assuming this is the case).

I would also venture to guess that the primary factor here, assuming that you did not collaborate on solutions, was the bit about one person’s name appearing at the top of the other’s paper, due to the printing from .NET. (Also, are you required to do programming specifically with .NET – i.e. is this part of what the class is about? Or was that a personal choice of development environment? Just curious).

Now you have me extremely curious about the entire assignment, and about your specific case. From your description of “unneccessary functions”, it sounds like the assignment specification may have been flawed. Or, if indeed there were specific functions that were required (and you left them out), there may have been a reason for them that you do not see yet.

Apos and rayray – since you’re both here on the boards… would you be willing to let an independent party (i.e. me) take a look at your code submissions, along with the teacher’s assignment specifications? I’m faculty in CS at Florida State, and I teach mostly programming courses. I’d be glad to give you my opinion of the situation, based on your actual code and your story – and perhaps any further suggestions that arise from it. If interested, drop me an e-mail at:
rmyers@garnet.acns.fsu.edu

(and put SDMB in the title, since that address gets mostly spam).

I’ve seen countless cases involving issues of cheating – anywhere from students copying each other’s code, to stolen tests, to cases where one student obtained a copy of another’s code without knowledge or permission (there have been cases of students lurking by the front desk in public computer labs and grabbing other people’s printouts), to a student posting a link to my assignment specs on a site called rentacoder.com and trying to buy a solution. I’ve probably seen it all.

Ados post definitely points out why the prof has a very good reason for being concerned

Note that it appears that we are not talking about a 1st course/1st program “Hello World my name is” assignment. So excuses about similar programs due to the assignment just don’t hold any water.

Note especially that it is the errors that sent up the red flags. That is the case over 99% of the time. Hardly any student turns in a flawless program. Different humans make different mistakes.* Clearly, too me, a case of excessive collaboration. And this is based on just hearing the students’ side!

The prof in this case, however, has to decide whether this is enough of an excess to warrant serious action. That’s the prof.'s job, not mine.
*I am constantly amazed by students who claim they don’t understand that having the exact same comments, with the exact same 5 punctuation mistakes, couldn’t have been just a coincidence. How gullible do they think professors are?

So you let your friend print out your homework for you? Could he have done anything wrong? Do you have “Last edited on xx/xx/xx” properties?

I’ll say this - taking the lengthy post at face value, what concerns me is the third friend being told apparently that his case could be “reconsidered after a second meeting”. That does not seem to be the deal offered the first person, and if all parties are accused of the same crime and none of them has been “ratting out” the others, that seems like an inconsistent policy. Unless I misread or misunderstood that.

I didn’t care for her “disappointed in you” statement. That’s a very subjective thing to say in something this serious, even if it is a patronizing figure of speech.

Assuming that you guys are all innocent - I’m not sure what further evidence you can gain. Pseudocode and notes can be done up ex post facto. It seems very dangerous to hand in a printout with someone else’s identifier on the header, and that’s a sloppy mistake - sloppy enough that it might actually help your case, as few trying to pull something over would have been that dumb. Just stick to the facts, and don’t change your story to make it better or non-factual. Maintain calm, insistent, polite refusal to bend over and grab your ankles - if you are innocent. And if this is a situation that could get you expelled from the class or even the program, perhaps now is the time to call Mum and Dad and ask for money for an initial consultation with a lawyer. But only if that’s a real possibility - don’t jump ahead too far.

I wouldn’t think that this would hurt your academic career, if you are cleared, unless the prof is a Department Head or Chair. I would guess that any course you ever take with her again is going to see your work under the most tight scrutiny, and knowing human nature of the academic world, it’s certainly not impossible that any grade on any assignment or test which has any subjective content to it is likely to end up biased against you. In short, I think you’re going to have a lot of future pain from her even if you are 100% innocent and cleared.

From what Apos said about technical details, you’ve got a pretty convincing case that you did indeed do your own work, aside from the shared insight that some functions were unnecessary.

I think the key thing with that good a case is to be firm, but never try and get the professor in a face-losing situation. I.E. say ‘I certainly understand how you could be suspicious in this situation, and don’t blame you for investigating. And we apologize for accidentally sharing an insight into the functions, and we’d like to make sure we understand what is and isn’t acceptable in discussing the coursework. I’m sure that once you examine these details in the source code you’ll understand that we did indeed do our own work aside from that.’

Also, don’t let the missing functions turn into a debate about her skills in designing assignments. Programming is much easier than teaching it (likely to a class with varying ability), and she’s probably doing a better job than you would.

And do all this before it gets to a hearing, where either you lose or the professor gets embarassed (potentially causing you more trouble later).

I’m not sure where you are getting this from. Omitting a function in a program is not necessarily an error. Like many things in life, prgramming can be achieved in several different ways. Part of becomming a good programmer is learning how best to encapsulate functionality into a method or a function. If the professor has standard notation for variables and function names (like hungarian) then it would be very easy for two programs to look similar. The variables of the same function will have the same name, as will the methods.

I think it is quite reasonable for two students who know each other well to think in a similar way when it comes to approaching a programming task, and thus design programs with similar structure in regards to which functions do what. The programmers I work with often code things in an identical structure without ever discussing the projects they are working on. (for some strange reason though, none of them code like me. haha)

It seems to me like the only evidence against you is that you used the same printer. Now this could be an issue because it has some implications. In order for 1 student to print out another student’s assignment, he must have had access to the source code. It would be possible then for copying, cheating or something far less sinister such as merely noting the program’s structure to occur. However, if the actual coding style (eg. while loops vs foor loops, nested ifs vs case statements, etc) differs as much as Ados has said it does, then I’m a bit surprised that your professor decided to react so extremely.

I would advise trying to settle it with your professor directly before the student hearing. I would compare the source code line by line and make a detailed account of which portions are similar and which portions differ. Then discuss the detailed list with your professor in private. I’m not sure what good any other type of supporting evidence would do you. Previously saved versions of your code might be useful if they document your thought process, particularly in regards to when and why you broke out code segements into functions, as would any design documents you have. Sadly, most students aren’t taught how to make proper design documents until well into their 3rd year, or later.

So the big meeting was today. Ados, the other student involved, and I all met with our professor as well as an assistant professor in the department. Basically what happened is that she was willing to believe our story that we did not cheat but that we did overly discuss the program amongst ourselves.

What was discussed:

1.) The departments definition of plagiarism.

2.) Her definition of plagiarism as is printed in the syllabus.

3.) Also according to her. (Not in the syllabus and told to us today)

Students may not discuss anything about programming exercises.
Because the final decision was to give the three of us all 50% on the programs instead of 0% we didnt attempt to push any further. We believe, however, that what we did was not in any violation of her policies or the policies of the department. We did not discuss the program at length or in great detail but merely mentioned that a certain function was more work than it was worth. Also, we did do our own work. None of it was shared until after the program was turned in.

In the end we believe that we received a lower grade than we should have. We admit now that the program had bad design and were willing to take the 30% deduction for that. But to deduct 50% for discussing one little aspect of the program was unfair.