Just recently, this question was posted. Here's the body of the question:

Write a function called highlight() that prompts the user for a string. Your code should ensure that the string is all lower case. Next, prompt the user for a smaller 'substring' of one or more characters. Then replace every occurrence of the substring in the first string with an upper case. Finally, report to the user how many changes were made (i.e., how many occurrences of the substring there were).

What would a script for this be?

This is basically a "do my homework for me" style question. In the past, I would have voted to close this question for lacking minimal understanding and moved on. However, it looks like this close reason was removed, and I'm having difficulty figuring out which alternative to use (if at all).

Here were some of the close reasons I was considering, and ultimately decided against since they didn't seem to precisely match:

  • Duplicate of

    I sort of doubt there exists a precise duplicate of this question -- the question is a fairly specific request for some code. I could maybe link to a duplicate question that answers a part of the original (for example, checking if the string is lowercase), but it wouldn't answer every aspect of the problem.

  • Problem that can't be reproduced/typographical error

    This sort of matches, since it asks the user to produce a SSCCEE, but doesn't really match since there isn't even a problem to begin with (and closing a question because I couldn't "reproduce" a non-existent problem feels a bit silly to me)

  • Unclear what you're asking

    It's pretty obvious what the user is asking -- I could produce a 5 line script in about 20 seconds that precisely matches his spec.

  • Too broad

    The text for "Too broad" states that "There are either too many possible answers, or good answers would be too long for this format". This doesn't apply to this question -- once again, the answer I could give would be fairly short and would closely resemble solutions other people would give.

So, what should I do here? Am I misunderstanding how the close reasons should now be used? Should I use the "other" close reason and explain that the OP should have put in more effort? Should I simply downvote, perhaps leave a comment, and move on? Or is the new policy to embrace these kinds of questions and just post an answer?

  • I've found that many of the do-my-homework-because-I-can't-be-bothered style questions fit under multiple categories. I usually pick a close option that fits best, or the one that no one else has picked yet.
    – zzzzBov
    Jan 17, 2014 at 18:29
  • 2
    +1 Just came to MSO to ask this exact question, and your question was on the top of the list. I agree, I have no idea how to do this either. This is another of such questions, which I voted to close as too broad: stackoverflow.com/questions/21198070/dat-file-loading-routine Jan 18, 2014 at 0:35
  • 14
    I appreciate your desire to find the "right" button to click here, but consider this: whose benefit is that button for? Not yours, and surely not mine. Choosing the right reason is for the sole benefit of the poster who is someone who wants you to do their homework for them. Is this person likely to become a productive member of the site who makes the internet better for everyone? Are they going to carefully read the "question closed" reason and learn from it? If the answer is "no" then don't stress about it. Get the question deleted ASAP and move on. Jan 18, 2014 at 3:12

5 Answers 5


Simple - this question is not off-topic. It's low quality and not useful and doesn't show any research and should be down voted without mercy and eventually deleted (actually - it already has been deleted). But not closed.

enter image description here

Closing should not be used as a "super downvote".

  • SO is a site for professional and enthusiast programmers. In what way are these questions the kind that such programmers ask?
    – Raedwald
    Jan 19, 2014 at 12:07
  • 1
    @Raedwald- because questions are supposed to be judged on their own merits, not the merits of the asker. Doesn't matter if it's a student - is it a technical question about programming? It's a bad one, but that doesn't make it off-topic or give me a reason to close it.
    – JDB
    Jan 19, 2014 at 13:58
  • But I am suggesting judging the question on its merits. If SO is for "professional and enthusiast programmers", "technical questions about programming" that amount to "do my homework" must be off topic, because a professional does not have homework, and enthusiasts do their own homework, asking for only specific help on the small parts they have not worked out themselves.
    – Raedwald
    Jan 20, 2014 at 13:07
  • 1
    @Raedwald - Just because SO is for professionals and enthusiasts doesn't mean questions from students and hobbyists aren't allowed. The question itself is vaguely on-topic according to the FAQ - it's just a lousy question. There are lots of lousy questions which are still on-topic.
    – JDB
    Jan 20, 2014 at 23:06
  • 2
    @Raedwald - That's just my opinion, though... you have sufficient rep to make your own decision.
    – JDB
    Jan 20, 2014 at 23:09
  • Only diamonds can delete posts which have not been closed. This site is expected to be community moderated. Do we really need moderator intervention to handle do-my-homework questions? Mar 22, 2014 at 11:15
  • @TadeuszKopec - Why are you concerned about deleting on-topic questions? The user can delete their own question if they feel concerned about the downvotes (and no upvoted answers exist). Otherwise, the system will automatically delete the question as long as neither it nor its answers (if any exist) are upvoted. If it or one or more of its answers are upvoted, then that makes the argument for closing it a good bit weaker.
    – JDB
    Mar 24, 2014 at 3:36
  • You said "[such question] should be down voted without mercy and eventually deleted (actually - it already has been deleted). But not closed." So you agreed about deleting. I wasn't aware of deleting non-upvoted questions by system. Now I've found this meta.stackexchange.com/questions/5221/… which makes things much better. Generally I'm concerned about keeping this site a high quality knowledge base, not a heap of homework tasks solutions. Mar 24, 2014 at 8:37
  • @TadeuszKopec - The core issue, though, is how to distinguish between homework questions and "good" questions. You have your opinion, I have mine. We use community moderation tools to handle posts. It's inappropriate to misuse those moderation tools in an effort to get the result I personally want. Many homework questions can be easily closed with an appropriate close reason (too broad is an easy one), but sometimes, when no close reason applies, downvoting is really the only appropriate solution.
    – JDB
    Mar 24, 2014 at 14:06

Too Broad.

Because the asker is a student, and has asked for the solution in total, a good answer would require a step-by-step description of each line of the code sample you post, which would be too long for the Q&A format.

In general, any question which the OP has not demonstrated that they would fully understand the answer without giving them a lengthy tutorial is too broad.


Choose the custom, off-topic close reason, and type something like this into the description:

This question appears to be off-topic because it is a copy/paste of a homework assignment. Questions asking for homework help must include a summary of the work you've done so far to solve the problem, and a description of the difficulty you are having solving it.

  • 30
    Sometimes I really wish we had a "Do your own damned work; I'm busy and maybe a little grumpy from being on SO too much today." close reason. Jan 17, 2014 at 23:23
  • 5
    Why does the fact that the asker is a student change the way we should answer the question? If anything we should answer every question in this way because any future visitors to any other question may also be students. I disagree with too broad being a valid close reason for this. If every question was intended to be answered in such a way that the lowest denominator can understand it, there would be many more too broad questions.
    – Kevin B
    Jan 18, 2014 at 0:15
  • 5
    With the new close reason standing implemented today, i don't think this question has a valid close reason to close it as. It's a question with clear requirements and a clear answer. I can see it being flagged as low quality though.
    – Kevin B
    Jan 18, 2014 at 0:31
  • 4
    @KevinB: Not sure when SO's guidelines changed to "We'll Do Your Homework For You". Questions should meet the same quality standards, whether from students or anyone else. We shouldn't encourage people to simply post a list of their requirements for any project and expect us to do the work for them. SO is for solving problems, not for use as a code writing service. When it becomes a "Here's my task. Churn out the code for it for me? I'll stop back later to copy/paste it. Thanks!" site, it becomes just another low-quality, noise filled site. I don't know about you, but that's not what I want.
    – Ken White
    Jan 18, 2014 at 1:16
  • 7
    @KenWhite: I think SO's guidelines changed to "We'll Do Your Homework" when the close reason that implies "we won't do your homework" was removed. Whether that's what the guidelines should be is another matter from what they currently are. But what Robert shows in this answer is that SOers can find a way to justify closing questions that are "obviously" wrong, even using a reason that we might never have considered applying due the the existence of a far closer match ;-) Jan 18, 2014 at 1:20
  • 1
    @Steve: Agreed that the loss of that close reason was a bad idea. I still think we should close them as "Too broad". I usually vote to do so, and leave a comment asking the poster to edit and include their instructor's email so I can send the answer to them directly to cut out the middleman and avoid any copy/paste errors, and remind them to leave the name that matches their class enrollment so the instructor can give proper credit. :-)
    – Ken White
    Jan 18, 2014 at 1:25
  • Exactly, that's my point. I agree, the question should be closed, but, at the same time, there are arguments being made that justify this type of question, if worded in a slightly different way (which can be fixed by simply editing the question).
    – Kevin B
    Jan 18, 2014 at 1:25
  • I can see the argument to close this as too broad because it involves solving multiple problems though, with a comment explaining that the question should be split into multiple questions.
    – Kevin B
    Jan 18, 2014 at 1:27
  • @KenWhite: I should perhaps clarify, not everything that we don't do necessarily needs to have a guideline / close reason that explicitly says we don't do it. Since "demonstrate minimal understanding" had its own problems, removing it may not be bad over all. But personally I think the most important thing for close reasons is to explain to 1-rep newbies what they did that's bad and how to do it better. A taxonomy of closure that makes sense to regular SO users with a bit of lateral thinking simply is not useful to the person who needs help if they're going to contribute. Jan 18, 2014 at 1:29
  • @KevinB: I don't see asking them to split it up into multiple questions as an option. A list of requirements to be done is still a list of requirements, regardless of whether they're listed in a single question or a dozen. We still shouldn't turn into a code writing service. When I'm asked to write tons of code to meet a list of specifications for someone, I usually expect to be paid for doing so. In fact, it's been my source of income for more than two decades now.
    – Ken White
    Jan 18, 2014 at 1:35
  • @KenWhite i'm not disagreeing with you, i do not answer those questions either. The question isn't whether or not it deserves to be answered, it's whether or not it meets the criteria for being closed. in the current system, it does not.
    – Kevin B
    Jan 18, 2014 at 2:51
  • 2
    Are we allowed at least to add a "We won't do your homework for you" as an Off-Topic->Other reason? It would provide a solution for these in-your-face cases, without causing confusion like good old "demonstrate"
    – Leeor
    Jan 18, 2014 at 8:40
  • If the OP sees "too broad" as the close reason, will they understand why? Will someone reading the Help Center realise that such questions are "too broad"? If not, we will continue to get too many of these questions, people will not know to use that close reason, and question askers will dispute the close reason.
    – Raedwald
    Jan 19, 2014 at 12:14

Also perhaps, "unclear what you're asking".

I mean, it's clear what the questioner ostensibly is asking, they're asking the same thing that the homework assignment asks. But they have no standing to ask that, because they almost certainly can do something themselves. So the programming problem they actually face is more specific than what they claim they face. They're either lazy or they've misunderstood what SO is for: practical programming problems, not questions designed to develop/test/demonstrate the answerer's ability. Perhaps it's unfortunate that in academia such questions are called "problems" by some, because I don't think that's the intended meaning in the SO definition of on-topic.

Lacking a close reason that clearly explains to the questioner what they have done that is wrong, I sometimes resort to rhetorical comments:

What part do you not know how to do? How to write a function? How to give it the name "highlight"? What lower case means? ... [up to the comment length limit] ... How to print a number? All of the above?

"Too broad" matches too -- all of those things together add up to far more than a question and answer.

So, the question as stated is too broad, and it is unclear what parts of that question actually need an answer.

Conversely, when someone asks a question in their own words, that gives some indication what they can and have done, what their particular difficulty is and what rough level of programmer they are, answerers can make some judgements what needs to be included in the answer and what doesn't. The judgements might be wrong sometimes, mistakes happen. But it's possible to form an opinion what ballpark a good answer lies in and answer on that basis.


It's too broad...

Because we are not here to do homework for anyone. Helping/ guiding is what we are here for.

when a student asks question using his own words after giving a try, it also helps him because he first tried and since he has to make sure everyone else understand, he will be spending little time when he will be typing/creating a problem statement.


The Question Should Be Judged On Its Merits

You've asked a loaded question, by presuming that the question should automatically be closed.

The reason that the 'Too little understanding' close reason was removed was because it was used more as an excuse to close a question than as a legitimate close reason -- it's also very subjective. The fact that the asker doesn't provide enough information to show that (s)he is competent does not necessarily render the question invalid.

Ask yourself the following:

  1. Is the question too broad? A lot of homework questions are. Yes, you could probably answer it in 20 seconds with a script, but if there are 100 different ways to write that script then it's probably not a good match for SO.
  2. Is the question a duplicate? Many homework questions are, because another student will have asked exactly the same.

If neither of the above are true, but the asker clearly hasn't put any effort in, the answer is probably to downvote the question in case and/or refuse to answer it, or to leave a comment saying that you'd like to see what they've done so far in order to help them to improve it.

In the case of the question in the OP, I'd probably downvote and comment.

Not the answer you're looking for? Browse other questions tagged .