Saturday, February 14, 2009

Assignment Re-Use

For discussion: How much do you re-use assignments from year to year?

I think in computer science, assignment re-use is much more common than in other areas. In part that's because other sciences more naturally have "parametrized" problems -- you change the numbers, you get at least a nominally different problem. CS assignments don't always naturally fit that mold. Programming assignments can require a long time to design, and don't naturally parametrize. (Indeed, part of the goal in writing a program is that you can give the program different inputs!) With theoretical assignments, you can try to change the setting (the Kleinberg/Tardos book does a nice job trying to give different settings -- story problems -- in various exercises for specific techniques), but if you're asking for a proof, it can be hard to modify substantially. Good problems often get re-used.

A problem with assignment re-use that I'm unfortunately quite familiar with as an ex-member (and currently "on-call consultant") for Harvard's administrative board is that solutions start to circulate and copying can occur. When one student copies another within a class, it can already be difficult. (The question of whether the information was "given" or "taken" can be important in deciding the appropriate response.) What about when one student copies work from a student who has already finished the class? What responsibility, if any, does your institution expect people who have finished a class to take for not sharing their work inappropriately?


Michael Lugo said...

I think the same question applies to my own field, mathematics. Assignment re-use is fairly common there as well, for basically the same reasons as in theoretical CS -- if you're asking for a proof of some result, a slight perturbation in the problem posed can give a very large perturbation in the answer. These slight perturbations are of course a good way to generate problems for research, but they're not so good for teaching. And in situations where one wants a formula for some quantity, one naturally wants the formula to apply for a wide range of inputs -- just as in programming assignments one wants the students to write programs that accept a wide range of inputs.

When I was an undergrad, the professor who taught my abstract algebra class did not distribute solutions to the homework. He said he wanted to, but coming up with new homework problems was hard. However, he wrote up solutions and posted them on a bulletin board outside his office, which was in a locked glass case. This was in 2002-2003, so there were digital cameras but they were not nearly as prevalent as they are now; I wonder if he still does this.

Dave said...

It may be harder to detect plagiarism between semesters, but it is obviously still plagiarism. So the institution has the same responsibility to expect this sort of plagiarism not to occur as the first kind. By the same token, copying answers from the internet is also plagiarism, regardless of whether the author of the webpage ever took the class.

I think it is naive to think you can prevent every sort of cheating. Spending days designing new assignments every semester is an investment against one sort of cheating, but I view it sort of like taking off your shoes at the airport, which does nothing to prevent shirt-pocket bombs or baseball hat bombs. Is it worth it? I used to think so, but most students are honest, and most of the dishonest ones are stupid enough that they copy from their friend who is also enrolled in the current semester, who is also an F student.

I follow this rule-of-thumb: if I am spending more hours trying to catch or prevent cheating than I am trying to help the 99% of my students who are honest, then I need to rebalance priorities. And when I am making up new problems, I regularly hurt the honest students by making a mistake (such as ask them to prove a false theorem), so I like to use proven material whenever possible.

Michael Mitzenmacher said...

Michael and Dave --

I am in favor of re-use in assignments for reasons both of you state. One downside, as Michael points out, is that then (as a professor) you're unlikely to hand out solutions, which I know yields complaints from students.

Dave -- it's clear that the person doing the copying is plagiarizing and doing something wrong. The more difficult question is whether someone who is no longer in the class is doing something wrong by giving their (graded) assignment to another student. If a student gives their answers to another student in the same class to be copied, I think most people would say that's a clear ethical/rule violation. When the student is no longer in the class, additional questions can arise, and I'm curious what other people think or what official policies exist for that setting.

Anonymous said...

My tendency is to reuse homework assignments, allow students to work together on homeworks, accept that some students are going to find and copy the answers without understanding them, and make it a small fraction of the grade. It's part of the course not so much to check whether they're learning, but to provide an opportunity for them to learn by doing. If they don't take advantage of that opportunity it's their problem and it will show up in their exam scores. I'm more careful with exam questions, though.

Suresh Venkatasubramanian said...

I have the same view as David: assume some small fraction will cheat,but let people work together. I find that's a better deterrent, because people start trying to find answers on the web etc when they are totally stuck, and allowing group discussions (but individual submission) enables them to get over the hump.

My bigger challenge is constantly coming up with variants. A useful "formula" is to extract lemmas from papers, especially older ones. these tend not to be discussed because proofs are handwaved in papers, and so they're good for students to ponder over.I will also assign questions based on things that come up in class, if appropriate.

The problem with these approaches though is that although they give a source of problems, the pedagogical content varies.

Anonymous said...

I think the comments so far have been great. Let me add a couple things.

You can never completely prevent people from cheating on homework. However, don't make it too easy, or even the honest students will find themselves tempted.

Another thing to consider is that frequently, a student will take a class because it sounded interesting when a friend took it. So, they may have heard last year's homework problems (or even heard their friend brag about their clever solution) before even starting the class.

Finally, personally, I always appreciated it when my professors put together interesting and original homework. Problems that are easily googled are things I could've (or even, already!) learned on my own. Original problems, or less mainstream material, gives students a chance to see more breadth of the subject.

Anonymous said...

If sometimes researchers work together because it is nicer, more fruitful and prodcuctive, etc, why wouldn't we allow students to do the same?

Michael Mitzenmacher said...

Anonymous #7:

You make the wrong analogy. We don't allow people to plagiarize papers, or be a co-author of a paper without contributing; similarly, we don't allow students to claim work that is not their own as theirs.

I allow students to work together on assignments, but they are clearly told the solutions they write down, they must write all by themselves. Collaboration and copying are two different issues.

Other professors may not with to allow students to collaborate at all. Your question would apply to them, although in many cases I'm sure they could justify it. For example, I don't allow my students to collaborate on exams; my justification, for my classes, is that exams are less a didactic tool for the student than a measurement tool for me to assign grades.

Peter said...

For programming assignments, I assume that the groups of students with test files stretching back for years (greek societies and the like) already have samples, so I try to make each test as new as possible. With programming projects, I assume the same and I also hand back anonymized examples of A,B,C, and F code as well as any interesting contrasting approaches that students took to solve the problem. How can we expect them to develop an appreciation for the diverse array of solution implementation choices if we don't show them a diverse array of solution choices?

Surely some students will use these to cheat, but cheaters will cheat, and I think that maximal information benefits the students who are trying to such a degree that I'm willing to tolerate an increased risk of cheating.