I don't care about the rep, but was that necessary? Is it so bad if I choose to help someone with a question I know the answer to? Yes, it might let users continue to ask questions that lack detail, but isn't that a reason to down-vote the question (which in this and other cases got no down-votes)? Besides, it's not like I was giving him code (which even in that case down-voting is questionable in my eyes).

There is much butthurt in the land of homework questions.
–
Won'tJan 27 '11 at 14:27

16

I never really understood the whole necessity of treating homework question differently. Outside of academia is where I truly needed the learning aspect more, and yet that's where I'll be able to just get answers handed to me?
–
Grace Note♦Jan 27 '11 at 14:29

1

@Grace I don't want to go down the slippery slide, but I think some users consider all help as cheating because sometimes it's for marks.
–
marcogJan 27 '11 at 14:31

18

@marcog How is a question "for marks" less deserving of answers than a question that's for a salary? Why is it OK for professionals to ask for help but not students?
–
meagarJan 27 '11 at 14:36

@meager I take your side. Really I do. I'm just reading into the minds of those on the other side.
–
marcogJan 27 '11 at 14:47

I've received another (this time anonymous) down-vote. Although this questions seems to have resulted in many more up-votes, which is also another questionable topic.
–
marcogJan 27 '11 at 21:07

Meta publicity will often attract sympathy or vengeance, not unlike any other sort of linking to a mass group of users (see the various things about Reddit). When it comes to Meta, for the most part, you're just getting upvotes from people who would've upvoted you for the content anyway but simply hadn't seen it until now.
–
Grace Note♦Jan 28 '11 at 12:08

1

@meager makes a good point. As wrong as I feel it is to give a complete answer right away to a question tagged homework (namely: just marginally wrong enough to click the downvote button), surely it's wronger for a professional. Then again I have seen questions from pros that looked like the asker wanted me to do a bunch of work for them for free, which I found a pretty strong disincentive.
–
j_random_hackerJan 28 '11 at 12:46

1

@meagar, The difference is enormous. In school, you are given tests (proper tests, as well as homework) to evaluate the specific abilities of the individual student. Grades thus need to be reflections of the student's own knowledge. That's not at all how professional work is. Your boss is usually vastly less concerned with whether or not you knew the answer to a question than whether you could solve it quickly. They don't care if you needed help (so long as you don't disclose proprietary details by asking). The business world wants results, and that's what they pay for.
–
NateMay 21 '12 at 10:53

Your workplace probably gives you internet access exactly so you can use sites like StackOverflow.com to help you solve technical issues. They pay you to provide solutions to business problems, and if coming here let's you do that quicker than trying to toil with it yourself, your boss is all the happier.
–
CashCowFeb 10 '14 at 14:36

"Try to provide explanation that will
lead the asker in the correct
direction. Genuine understanding is
the real goal for students, but trying
to provide that is seldom
unappreciated for any question."

I think it's arguable (a matter of opinion) whether someone should downvote your answer; but whether or not they 'should', at least some people will: and many people do agree that there is such a thing as being too helpful especially when it's a homework question.

Instead of just providing the finished solution, could you have rephrased your answer so that the questioner could duplicate the train of thought that led you to your answer?

Yes, it might let users continue to ask questions that lack detail, but isn't that a reason to down-vote the question ...?

Apparently you understood the question: so it was sufficiently detailed. And it isn't wrong (subject to the various caveats mentioned in the FAQ) to ask questions about homework: questions shouldn't be downvoted only because they're homework-related (although in this example perhaps the question could be downvoted for the same reason that your answer was: i.e. because it was homework and not just about (one aspect of some) homework).

"it made you notice" - a comment would have done the same. "The reason for homework is to learn/experience solving problems" - the same can be said for many problems faced in real work. "rephrased your answer so that the questioner could duplicate the train of thought that led you to your answer" - I didn't think up the answers. I knew the answer.
–
marcogJan 27 '11 at 14:46

4

@marcog: My employers never give me problems for me to practice my problem solving skills on. They give me problems they need the solution to. (Although I do agree that the purpose is almost entirely irrelevant on SO. If I answer someone's work question today, it could be the answer to someone else's homework tomorrow.)
–
Bill the LizardJan 27 '11 at 14:48

@Bill But an answer detailing the thought process helps in that case as much as it helps in homework answers.
–
marcogJan 27 '11 at 14:50

20

@Bill I'm with marcog, here. Good students can learn from complete solutions because they'll be intellectually curious to understand why it works. Bad students wouldn't really care for all this "nudge in the right direction" krutz in the first place. People learn in their own ways, and I'm honestly not sure we should be the ones who define what is in the student's best interests. Some people work better by reverse engineering.
–
Grace Note♦Jan 27 '11 at 14:52

@marcog - "I didn't think up the answers. I knew the answer." -- Well, how did you know it: how did you learn it? Could you recommend a book? Or an online resource? Is it a specific example of a general problem-solving method, for example 'induction'? Would it help to suggest solving the problem for 3 nodes and then for 4?
–
ChrisWJan 27 '11 at 14:55

@Grace, @marcog: I completely agree with that. I was only disagreeing with the point that the reason for homework and actual work are the same. I'm probably splitting hairs.
–
Bill the LizardJan 27 '11 at 14:55

3

Also, the answer you link to says "Don't downvote others who answer homework questions in good faith, even if they break these guidelines".
–
marcogJan 27 '11 at 14:56

@Bill I quoted a poor part of @ChrisW's answer (blame length-restricted comments!). But I hope you get my point now.
–
marcogJan 27 '11 at 14:57

@marcog "I did give a resource" - That looks like a cheat sheet or a list of answers: it's how to solve this problem, not to solve this class of problem. It left me no wiser about the topic. Anyway I tried to answer your question about homework-in-general, and not about your "IOI competition answer" in particular.
–
ChrisWJan 27 '11 at 15:03

3

@Bill No worries. In the end, I still actually agree with part of the core of this answer, namely that regardless of whatever protocol we may have for handling homework, votes are the individual's opinion to give away as desired. The dichotomy betweem homework and non-homework is distressing in my opinion, but as long as it exists, people are likely to get downvoted for providing full answers in spite of their usefulness.
–
Grace Note♦Jan 27 '11 at 15:05

@marcog I'm not sure what "in good faith" means ... it might mean, "not knowing it's homework", whereas this question had a homework tag. Also the answer I linked to was just one answer (albeit the most popular answer) in the FAQ. I told you, "whether or not people 'should' (down-vote you), some people will", and then I tried to explain to you why they might be doing that and how to try to avoid it.
–
ChrisWJan 27 '11 at 15:08

That last comment of mine should end with "And that's acceptable".
–
Grace Note♦Jan 27 '11 at 15:11

The other side to the argument is that in legitimate cases the student probably won't appreciate just an uncommented code dump on a working solution. Not only will this not help his / her understanding of the original problem, it could also get them into trouble far more easily if you're seen to be asking questions and getting the answers back without understanding what's happening. If on the other hand a Google search by a teacher reveals someone asked for help to a homework question but didn't want a full solution (and just wanted nudges in the right direction) it'd be unlikely this would be seen as a bad thing on the student's behalf.

I'd say this was different in the corporate world because the whole point of education is intrinsicly understand what it is you're writing; you'll most likely never need to produce identical code ever again but it's the concepts that are important. Admittedly this is a useful attitude to take in industry as well, but sometimes there is a call for just getting things done.

I agree with you to some degree, but this is not really related here as I did not answer with code.
–
marcogJan 27 '11 at 15:07

I'd say that most people wouldn't appreciate an uncommented code dump (or at least would appreciate it more if it was explained well). But note that in this case marcog didn't post such a code dump. As a matter of fact he didn't post any code at all.
–
sepp2kJan 27 '11 at 15:16

@marcog I agree in this situation. I was more answering from a general perspective, and partly because you mentioned that you'd find downvoting code questionable.
–
berry120Jan 27 '11 at 15:47

No. But the system is there so people can choose to downvote or upvote as desired.

It is not our place to determine what help a student should or should not receive, and I strongly discourage downvotes for answers to homework questions.

The student asked, we answer.

Some people believe that the best route is to force the student to think about the problem and solve it themselves. A few of these people will choose to penalize others when they don't follow their belief. It's sad that they choose to enforce their beliefs via downvoting, but that is exactly the mechanism given to the community to direct itself, so it's a valid choice.

Don't take it personally. As of now more people agree with you than agree with the person that thinks you shouldn't be so free and easy with information.

Yes, the student may in fact be giving themselves a worse education than if they broke the question up into pieces and asked questions that would lead them to the answer.

Is it our place to determine how to educate them, though? They are in charge of their learning.

If one doesn't want to provide an answer to a homework question and instead try to teach the student the principles that will lead them to the correct answer, one should post comments, unless the question specifically asks for answers that are basic principles.

The answer to a question, "What is the answer to the problem X?" should be the answer to the problem X.

tl;dr

The answer to your question is that people are free to vote according to how they perceive the answer as "useful" or not. Some will base their decision on whether a question is for homework or not, and whether they believe students should receive indirect answers to direct questions. It is entirely within their right to downvote according to their own model of what Stack Overflow should be.

@ChrisW marcog's answer was downvoted for the reason they posted in the comments. We can posit that if the answer contained an expansive text on theory then the person wouldn't have downvoted, but we don't know that.
–
Adam DavisJan 27 '11 at 15:48

@ChrisW I do elaborate like that quite regularly when there is code worth criticising. But in this case there wasn't. My terse answer seems to me fairly clear and if OP asks for clarification I'll update my answer to expand.
–
marcogJan 27 '11 at 15:52

I think where we disagree is on whether it is our "job" to answer questions and only that. I think context should play a role in deciding how to handle a question. I find it sad that you find my behaviour sad, but I respect your opinion :-P
–
j_random_hackerJan 28 '11 at 12:34

Actually if it is for a coursework assignment rather than a homework then copying answers off StackOverflow.com, or any other site, even if the questions were posed by someone else, could be considered plagiarism, if the author does not give the credit due.

Universities give heavy penalties for plagiarism.

As stackoverflow.com is an openly available site, with result hits from google and other search engines, and that teachers can read as well as students, using this site to get answers and claiming them as your own will not only not necessarily gain the student the knowledge they need if they had learnt themselves, but they may also find it fails to gain them the marks too.

Any student who asks the question and does not actually understand the solution they are given here is likely to copy and paste it, character by character.

But that's their problem. And as Polyanna said, ishomework() is not a well-defined function. Consider the case where the student found the exercise in the book and wanted to learn the answer. Some might still rightfully tag that homework, but there's no cheating.
–
marcogJan 27 '11 at 15:55

I think it's because the purpose of a programming exercise is for the student to figure it out. If the student simply hands in code copied from someone else, they've not (necessarily) learned anything, and they certainly have not demonstrated to the teacher that they were capable of solving the problem. I was top in my programming class - would it really have been be fair in your eyes for me to be in the middle because 1/2 the students copied exemplary work from professionals with years of experience?

That said, I taught myself programming at 11 years old by copying BASIC and Assembly code from magazines, then understanding it and making changes.

However, I have encountered a large percentage of programmers professionally who, honestly, cannot program themselves out of a cardboard box, and yet, somehow, they obtained a CS degree - what's up with that? I would suggest it's likely that most of them cheated on their programming assignments.

All that said... you answer was perfect for a homework question - I don't know what the downvoter was thinking.

I don't think I would go so far as to suggest that we have a responsibility to encourage students to do their own homework, but I strongly feel it is good to encourage this behaviour regardless, in whatever way possible. As marcog says, I could have simply left the comment without the -1. But the -1 is harder to ignore, and IMHO, still within the bounds of acceptable behaviour.

To the people who say: "Our job is to provide answers, full stop", I simply disagree. A person should always look at the context, I think. As a different example of the same principle, when a question clearly stems from a misunderstanding of how to best do something, I advocate thinking about the underlying problem and answering that, instead of helping the asker shoot himself in the foot.

I hope I haven't made an enemy of marcog, and I'll mention that he tends to provide high-quality answers to algorithms questions, many of which I've upvoted in the past. I doubt he has taken this personally, but I just want to make it clear that it isn't personal. Just an expression of my opinion on how homework questions should be handled.

Thanks for stepping up and explaining. I don't take it personally at all. It's just that this is not the first time I've seen this happen to myself and others. I'm glad you left a comment instead of anonymously down-voting. I agree just providing answers full stop is not the way, but I also believe an answer without explanation is more useful than nothing at all. If OP needs cares enough, he/she will ask for clarification and I will update my answer. I also fully agree with attempting to understand the underlying problem, and hate people up-voting stupid answers in such a case.
–
marcogJan 28 '11 at 11:50

@marcog: Thanks, and I'm glad it's not a big deal for you. To clarify a bit, for me it's more about the difference between providing nudges in the right direction, and providing complete explanations. A nudge can be pretty substantial without giving the game away. (BTW a while back I was actually told off in a comment for doing exactly what I criticised you for doing, though not downvoted as I recall... I did search for it just now but couldn't find it (yeah, convenient I know ;) If you find that answer, feel free to -1 the hell out of it :)
–
j_random_hackerJan 28 '11 at 12:18

Can you give an example of a better answer to that OP?
–
ChrisWJan 28 '11 at 16:07

@ChrisW: Initially: "Suppose you simply added the new edge to T. Let's call this new graph T'. Since u and v were already connected by a single path in T, T' contains a cycle. In order to transform this T' back into a tree, what could you do next? Can you show that this will always produce a minimal-length tree?" The hard part is the last step; if s/he needed help proving that, I would start with: "Suppose the tree produced is not minimal. Then either there is an MST containing uv or there isn't. If there isn't, then"...
–
j_random_hackerJan 29 '11 at 9:06

... "clearly T could not have been an MST, so that's a contradiction, meaning this case cannot happen. What about the other case, when there is a different tree that does contain uv and is minimal? Can you show that that cannot happen either?" And so on.
–
j_random_hackerJan 29 '11 at 9:08

1

Thanks! That would have been a better than marcog's: I understood your answer but not his. FWIW, meta.stackexchange.com/questions/10811 suggests that answers should be provided for homework questions, but that explanations should be provided too. For example, this answer is the accepted answer to the most upvoted homework question on SO: it includes a thorough explanation and a complete solution, and it received no downvotes. Because it has an explanation I can't fault it even though the OP was homework.
–
ChrisWJan 29 '11 at 15:48

1

+1 for the improved answer which you gave in the comment.
–
ChrisWJan 30 '11 at 2:25

1

Thanks @ChrisW. I admit it's a grey area. Reading that bubble sort question, the asker has made an attempt to code a solution and gotten stuck -- they haven't simply echoed the homework question as given. I feel much more comfortable giving a complete answer in this case, though I still feel a nudge would be even better. And I think a solution accompanied with a hand-holding explanation is better for homework questions than one without (that's true for all questions, but especially homework ones). So I wouldn't -1 that answer.
–
j_random_hackerJan 30 '11 at 7:14

Thanks to all who helped Justin with his university assignment: your solutions are his solutions. Justin has been monitored by the course staff for some time now and will meet shortly with the Dean to discuss his future academic career.

That's interesting, although it seems to me as likely as not to be a prank by a fellow student.
–
Josh CaswellJan 12 '12 at 18:30

7

Assuming that it's not a prank comment, I'd rather say that there are consequences to copying solutions and handing them in as your answer. Just because someone posts a complete solution does not mean that you have to use that rather than creating your own solution.
–
ho1Jan 12 '12 at 18:52