Is it colloboration--or cheating?

Regarding a thread on accusation of cheating in a programming class:

Well spoken. But this does not render my argument inconsistent. There is certainly a need to evaluate students on an individual basis, I didn’t say there wasn’t. I simply said that collaboration is a necessary skill, and you cannot expect to control what goes on outside of the classroom.

Today cheating has gone high-tech. The advantages of ecommerce and global information exchange also result in the broad commercial availability of pre-fab homework assignments. When I say cheating, I mean that someone has simply taken someone else’s work wholesale without adding value or even necessarily understanding it. However, a teacher’s time is not well-spent developing more and more sophisticated counter-espionage methods to uncover such cheating; education just turns into a big game of GOTCHA!

There is, however, a spectrum from isolated individual work to copying the work of others. It is simply not black and white. Surely you must expect your students to communicate once they leave your classroom. So why not build assignments around that fact, and allow students to openly collaborate, but be able to demonstrate individually that they have learned something from it? An in-class exam, or an in-person defense of a programming assignment would certainly achieve that. I think a paradigm shift is needed to evaluate individual performance.

My point is not so much to teach collaboration but to accept it and manage it.

I definitely agree that collaboration is important, especially in a domain such as software design, where individual work is an aberration.

On the other hand, you can’t collaborate effectively if you don’t have the skills to begin with. So I’ll reiterate my statement from the other thread: at the higher level (upper undergraduate and beyond), collaboration makes all kinds of sense. But in the introductory classes, the student should rise or fall on his/her own merit.

Everything I had to say was in my post to the other thread, but since you quote me in the OP I guess I better try to explain myself.

My point about consistency was simply that your description of your goal didn’t seem to match your implementation. You started with “I think the schools should be teaching students how to, nay, insist that they collaborate, instead of calling it cheating.” and finished by saying that professors should still give individual exams. What you describe is less of a paradigm shift in how CS is taught than a minor variation in grading strategies.

I think it would be great if professors could give team projects but then give individual examinations to assign grades. In school, I took part in a number of collaborative projects where several team members didn’t pull their weight but were rewarded based on the work of others, so I believe in having a mechanism for determining the individual contribution to any group project. However, to do this on routine homework is often cumbersome. Many professors simply don’t have enough time to give individual oral exams on assignments and many don’t want to take the time to give additional exams in class which take away from lecturing over new material. Grading individual homework assignments is time consuming itself, and a professor has to balance the learning benefits of homework assignments against the burden of grading and the possibility of cheating. That’s why many professors insist on individual homework but still weight homework assignments fairly lightly in the overall grade.

The course work and grading strategy for a specific class has to be left to the instructor who can balance time constraints and work loads to get benefits from individual assignments, team projects, lectures, etc. I’m sure there are many CS professors who use exactly the system you describe. There are others who value the benefits of individual work and use in-class assignments and exams to identify people who cheated on homework and didn’t learn the material. Regardless of whether you have a final exam to filter out the people who didn’t bother to do assignments, I don’t think you can summarily dismiss the value of individual work even if the potential for cheating is great.

In short, I’m not trying to say that collaboration is unimportant or that it should not be a part of CS education. I’m simply pointing out that there is value in individual work both for reinforcing skills and assessing merit, and I don’t think it should be eliminated simply because cheating has become relatively easy.

Well, I’m not sure if this’ll add any value to the debate or not, but I’ll relate an experience from my college CS days:

One professor used to make all of his tests open book and open notes. He also let you pick it up on one day and return it by the end of the next day. Now, you’d think that this kind of system would make it extremely easy to cheat. But it wasn’t like that at all. Because he allowed you to look at the textbooks and whatever notes you had, he made up the questions such that the answer wasn’t a quick look-up type of thing. In fact, you’d often have to pull concepts together from 3 or 4 sections of textbook and/or notes in order to get a handle on the problem. I often spent upwards of an hour on ONE QUESTION, on a 15-question test.

So you know what we did? We’d pick up the test, then 4 or 5 of us would get together in someone’s apartment or dorm lounge that evening, split a couple of pizzas and a 12-pack of beer, and go over the questions on the test over the course of a couple of hours. Basically, trying to figure out WTF the question was asking and a general idea of how to answer it. We’d come up with a few different approaches, and move on to the next question. After this, we’d all retire to our separate quarters and fill out whatever answers we’d come up with, but at this point, each person was entirely on their own. (I should point out that this was a senior-level CS class rather then Programming 101).

Now, some people may consider this cheating, and I can see how they could make that argument. But, in all seriousness, I can honestly say that I studied more, learned more, and remembered more from those test-taking sessions then I did on anything else in college. In fact, I can still remember some of the test questions (and my answers to them) to this day, 3 or 4 years later. And the professor, while unable to endorse this practice, had to know exactly what was going on (or at least wallow in willful ignorance). But he was also smart enough to know that we were doing our own work at the end of the day and to leave it alone.

In a way, it’s not too much different from the high school chemistry teacher who said “You can bring one 8.5x11 page of notes to look at during the test. I don’t care what you write on it, but no more then one page.” Kids (myself included) would think: “Hot damn, I don’t have to study, I just need to create a cheat sheet.” Well, guess what? Creating that ‘cheat sheet’ is studying. I’d spend 3 hours making the ‘cheat sheet’, only to not look at it once during the test itself.

OK, my turn to explain. You seem to be stuck on the “consistency” of my discussion. Allowing collaboration as an integrated part of a course hardly precludes grading individual performance. The two are not mutually exclusive. The two ideas are perfectly consistent. I just think the energy spent trying to root out cheating could be better spent elsewhere. I think jweb’s post is a perfect example of what I’m talking about (although granted, he was talking about a senior level course).

I am not saying that individual work should be eliminated! Just that I think trying to fight cheating is an uphill battle. Make collaboration overt and out in the open where you can deal with it, and I think both students and faculty gain.

As long as you retain individual work, students will find a way to collaborate when they should not. If the professor doesn’t want to spend any time worrying about unauthorized collaboration, the only solution is to eliminate all individual assessment. I never said the two (collaboration and individual work) were mutually exclusive. In fact, I said quite the opposite; that they both had value. I’m simply pointing out that your belief that you can eliminate cheating by allowing collaboration but still retain some element of individual assessment is naive. If you only intend to reduce (rather than eliminate) cheating, then I guess I don’t see why this is even a debate; that’s basically what is done every day by every professor as they balance the different kinds of assignments they use.

I think we’re basically in agreement about how things should work, that both collaboration and individual assignments have their place. I don’t think there’s much debate there. The only difference between us seems to be a practical issue on how to handle the balance.

I think that in situations where individual assignments are useful (and I believe a basic coding class is one of those places) the professor should make these assignments because the value of individual work in the learning process outweighs the risk of cheating. At the same time, the professor should punish cheating to the fullest extent possible and use assignments or exams where cheating is less likely to judge individual performance. The distinction I suppose is that I regard individual homework assignments as a teaching method more than an assessment method. Some grade must be assigned to motivate the students, but it can be a fairly small portion of the class grade so cheaters gain little and risk failing the exams by not learning the material. Many professors with well-designed lesson plans use this strategy, and it is often well-known among the students that if you do the homework you’ll pass the exams, and if you don’t do the homework you’ll need to spend even more time studying.

My wife is a professor, and she routinely fails students for plagiarism. She is, IMO, fairly lenient because she gives students (especially freshmen) one warning where they only fail the assignment, not the class. Is shameful how many college students don’t even understand what constitutes plagiarism, and they will cobble together an essay from published works just like a programmer would reuse code libraries. The fact that this happens does not invalidate the usefulness of writing assignments, and I believe the same is true in coding classes.