As we have received two homework questions today, and likely will have more in the future, what should our homework policy be? Should we ban them entirely? If not, what degree of help should we give? Also, do we make a distinction between Mathematica being used to solve a homework problem, or the code being the problem itself?

Please note: I'm not against HW questions. I just think we should have a somewhat uniform way of handling them.

Extensive discussion about homework in CS

  • 3
    I'll answer if I get cookies... in advance. Everyone else must show effort.
    – rm -rf Mod
    Commented Jun 11, 2012 at 17:39
  • 2
    @R.M but, stackexchange already gives you cookies, or at least your browser gets them, in advance. :)
    – rcollyer
    Commented Jun 11, 2012 at 17:41
  • @R.M bribes is it? Is that the platform you're running on when mma.SE moderator election rolls around? :o)
    – Mr.Wizard
    Commented Jun 11, 2012 at 17:41
  • @Mr.Wizard we have to bribe him to get into the running, or get out of the running? :P
    – rcollyer
    Commented Jun 11, 2012 at 17:42
  • 2
    @R.M We could also track down the college and student's name, and start a lucrative blackmailing business. Commented Jun 11, 2012 at 17:45
  • 2
    @belisarius any newbies who don't know your sense of humor are likely to be scared away! :O
    – Mr.Wizard
    Commented Jun 11, 2012 at 17:46
  • 2
    @rcollyer if it were for StackOverflow elections I think bribing to get into the running would be appropriate.
    – Mr.Wizard
    Commented Jun 11, 2012 at 17:47
  • @Mr.Wizard that's true. "Here's a cookie, now do this job I don't want to do." Sounds appropriate to me!
    – rcollyer
    Commented Jun 11, 2012 at 17:48
  • 4
    @Mr.Wizard I'll answer your comment after you identify your college. Your real name is not necessary, as we all know you are Spartacus. Commented Jun 11, 2012 at 17:49

7 Answers 7


Let me make a few statements:

If I don't like a question - for whatever reasons I don't care to explain now -, I don't answer it. And if I can (and want to), I try to improve it.

I don't care for a few minutes spent each day reading nonsense. My sensibility about that is almost nil, as I also read newspapers and look TV, and sometimes -much worse-, I even pay for them.

I enjoy learning and teaching. But I also hate lazy people trying to pass exams (or meeting work deadlines) by using the personal effort of others, abusing their passion for doing.

I think ivory towers are cold and lonely places, and being a bit smarter and/or wiser and/or having a little better understanding of a convoluted computer language than somebody else does not make me happier nor a better person. I love expert knowledge sharing, but that alone doesn't help to get more experts on-board (expert mitosis is a very rare phenomena)

I have been in a lot of situations when I had to ask an obvious question without realizing it. It is called inexperience and not dumbness or laziness.

Mathematica is a nice wild beast, difficult to understand and tame. And the docs are not up to the language's very steep learning curve. I have yet to find someone thinking different. So, the obvious conclusion is that beginners need some help.

So I vote YES. We should accept HW questions. We also should answer them with utmost care, teaching to fish. And also we should close, delete, burn and obliterate those questions made with the only purpose of making others invest the time the OP is not willing to apply.

Just my 2 cents.

  • I agree with everything you said. I don't think HW questions should be banned, but if people don't want it here because it might reduce others from visiting (when we start getting HW by the heaps), we could send them to Stack Overflow :)
    – rm -rf Mod
    Commented Jun 12, 2012 at 19:11
  • @R.M Let's take care of that when the hordes arrive. Until then we should welcome the questions influx. Commented Jun 12, 2012 at 22:47
  • 2
    while I mainly agree with your points, I think you need to make a distinction between beginner questions and actual homework. some of your points apply to both, some just to one.
    – acl
    Commented Jun 13, 2012 at 11:24
  • @acl A well intentioned student is a beginner. No matter what the source of the requirement is (a teacher or a boss or a client). A cheater cheats irrespective to his/her/it activity. As I see it, the main difference between a HW question and a "professional" one is that one subject is (mainly) expected to learn, while the other is (mainly) expected to solve a specific problem, but usually we in this site address both aspects. I think a student can learn more from the way Leonid approaches a HW problem than from a whole semester of boring classes. Commented Jun 13, 2012 at 11:48
  • You are making a nice distinction between inexperienced and dumb/lazy people asking questions. I think homework-tpye questions fall mostly in the latter category (especially in the lazy, not necessarily the dumb). The problem here is that you did not state your attitude toward this category, while assuming most of the people are just inexperienced. This could be true, but it is just an assumption, and if it does not hold ("hordes" are coming), you might have to spend more than a few minutes per day reading nonsense, and you might not be as patient as you are now. Commented Jun 16, 2012 at 19:11
  • @IstvánZachar If you look at my profile on SO, you will find that I spent quite a few minutes dealing and answering with HO questions. I know what is there, and I accept (and mostly enjoy) my share. Commented Jun 16, 2012 at 19:14
  • I'm sorry I did not mean to devalue your excellent input to the site, I merely quoted (without "-s though) what you wrote in your answer above. Commented Jun 16, 2012 at 19:20

I think we need to make a distinction between beginner questions, homework questions and lazy questions. We have been reasonably open to new users' questions, and patient with their For loops and syntax errors. We have also been quite patient with questions that seem a bit RTFM, when TFM isn't so obvious (I mean, c'mon, 12 upvotes for this answer? Not that I'm complaining really.) Perhaps we could do better on this. I for one don't mind answering beginner questions if they elicit something broader about the Mathematica language (like this answer). We are educating users in good Mathematica practice, which I think is good for the wider acceptance of the application and the job prospects of some of the regulars.

I don't object to questions that come from people's homework, as long as they show their code and explain where they got stuck. Sometimes there is a useful general principle that can be illustrated in the answer. But we should refrain from giving them the whole answer (I like Mr.Wizard's heuristic here).

Where I think we should push for edits and improvements, and downvote/close repeat offenders, is the case of no-effort "plsgivemetehcodez" type questions.

I would not worry too much about the limited resources of the top users. There are intermediate users who could pick up the easier questions and answer them. Perhaps we should observe a convention that the top users should refrain from answering problematic questions in the first 24 hours. Wait until the question has been improved, and then decide if it's worth answering. We consistently have at least a quarter of registered users visiting in any 24-hour period, but I don't know that it's the same people. There are bound to be intermediate users who visit every couple of days, and would enjoy the opportunity of crafting a good answer to what seems like a basic question.

I also want to make a distinction between (1) questions related to homework on a Mathematica assignment (i.e. the homework task is "do this in Mathematica") versus (2) an assignment in a subject where it isn't assumed that Mathematica is to be used, and the person is a beginner in Mathematica would would like to try it for that task.

I think we should be strict on (1) and not give them the whole answer, but actively welcoming of (2).

  • +1. I agree with much of what you wrote, except possibly the intermediate users - I think we don't have them enough just yet - although the situation is constantly getting better. I wasn't actually clear in my answer about which types of questions I am really concerned about. Just added a clarification in the edit. Commented Jun 13, 2012 at 9:23
  • +1 Very constructive approach. Commented Jun 16, 2012 at 19:13
  • As a very average user I myself completely support your logic here. Top expert users usually wait and pick the question when it fails to find a right answer that requires the extra bit of wizardry . Commented Jun 19, 2012 at 21:54

If a homework question resembles a givemethecodez question it should be closed. If it focuses on a conceptual problem that is part of the solution we can help to fully solve that partial problem. Some effort of the asker should be apparent. I feel that in no case should we provide a fully functioning answer in code or otherwise. If the asker isn't straightforward about the nature of the question banning would be an option.


As a student and newbie of this great Q&A community,I would like to share my opinion and my story. Since I started playing with Mathematica on my own, I immediately caught all it's potential power. Anyway,

Mathematica is a nice wild beast, difficult to understand and tame

as belisarius correctly said, so at the beginning it was really hard to implement the experiments/puzzles/ideas I had in mind: I had to search the web for guides,tutorials etc. and even if there are some very good resources on the web, what I really needed was to help of someone who had already a Mathematica forma mentis.

Now I've found this great place;this is one of the few time when you actually find what you were looking for. Up to now I haven't asked any HW related question, but I don't exclude I will in the future.

I can't see nothing bad in trying to transform your (perhaps) boring algebra/geometry/analysis etc. in a great, easy understandable Manipulate function for instance. I think indeed that only by solving this kind of problems one can really dive into the Mathematica style of coding and thinking.

So,please,let noobs as me ask (also) homework questions!

  • 3
    So far your questions have been very well received by the community. That is good. Try also answering questions, as it is a very nice exercise. You will probably receive feedback (most usually well intentioned critics) that surely will help you enhance your programming skills. Commented Jun 15, 2012 at 20:06
  • I know. I'll do my best but to be honest i noticed there's one big obstacle for now:that even if i try to give my own answer, a small voice in my head tells me:"surely there will be much better answers" and so i don't even try.I know this is a "bad way of doing"(is this English?:D) but i'll try to do my best. Commented Jun 16, 2012 at 9:11
  • 1
    Perhaps, just start by trying to answer, and then compare your code with the published answers. You'll learn a lot. Commented Jun 16, 2012 at 13:50

I have a soft mental quota for each user; I'll help in whatever way I can, to a point. Generally for a new user like Andrea I'll post complete code sections. For the next few questions from the same user I'll post snippets, suggestions, and help links. After that I may stop answering, or answer only questions strictly about Mathematica functionality rather than how to apply it.

When my memory expires I'll default to posting more complete answers.

If the user made a pain of himself my memory may take a long time to expire.

None of this overrides my principles expressed in:
Handling blatant RTFM cases---harmful to the community?



Looking at other answers, I realized that I should have better formulated what I mean by homework questions, perhaps making a distinction between them and beginner questions (which I have nothing against, if it is clear that some effort was made there), similar to what @Verbeia did in her answer. By homework questions I mean those where we are presented with a very specific context, within which some problem(s) occur, and such that it takes us considerable effort to strip the irrelevant details and see the actual problem. And when we do, the problem happens to be RTFM-type or very close to that. These questions often have these distinctive features:

  • It is not quite clear what is being asked, and it changes many times throughout the discussion
  • Even though the actual problem may be simple, it takes considerable effort to answer (unlike well-formulated beginner questions which are typically taking a few minutes to answer)
  • You end up spending much more time on the question and subsequent conversation with the asker than you anticipated from looking at the problem
  • Even when you answer those, you are not sure whether or not your answer was really helpful to the asker.

It is this type of questions that I am concerned about. Here is a very recent (as of the time of this edit) example of such (it may not be a homework, but it is exactly the type of questions I mean).


It was not an easy thing for me to make up my mind on this, but I think that the default for homework questions should be that they are not welcome. We have limited amount of resources, as a community, and homeworks are intended to make people do some things on their own, so by providing extensive help for them, we are not doing anybody a favor.

If we think about what homework-type questions bring to our community, then I don't find anything really valuable. Specifically, homework questions are likely to

  • Discuss very specific situations, so that answers will be unlikely to help in somewhat similar other cases.
  • Create information noise, since many of them will be variations on the same theme
  • Lower the overall quality of questions and discourage our core of regulars (experts and advanced users) from answering more frequently and extensively
  • Lead to information duplication
  • Make it harder to find the relevant questions
  • Promote the attitude of not making an effort and asking before thinking
  • Waste valuable efforts of experts and advanced users, which can be better spent elsewhere.

There are other concerns which I already expressed in a somewhat different context. Overall, I think that we should do anything we can to keep the quality of information on our site superb. And, if some number of beginners are put off by our policies, I wouldn't find it particularly worrying, since there will also be beginners who will make an effort and ask good quality questions.

That said, I think we need a well thought-out section in our FAQ titled something like "Why my question was closed", as well as "What can I do to make my question better", and we can direct new users there. This way, there will be fewer reasons for them to take that personally, and we won't have to be softer than we should, just because we don't want to hurt someone's feelings.

  • There are a few good points made here, but perhaps a homework tag does alleviate some of the mentioned problems? Since then the top user could just ignore the tag and the intermediate users would get a chance to solve some problems and gain some rep (thus having more fun on the site).
    – Ajasja
    Commented Jun 12, 2012 at 8:15
  • @Ajasja This could be the case. I may be over-reacting and over-estimating the "threat", but I think we need to have a uniform and well-understood policy towards these questions, since they can be many, and we can find ourselves in trouble sooner than we realize what is happening. Since we are still in Beta, and under development (as a community), I favor the conservative viewpoint that the default is no (this does not mean always no). This is something well-defined. Once we see how it goes and have more intermediate-level users, we can relax it. My point is, we will always be able to ... Commented Jun 12, 2012 at 8:31
  • @Ajasja ... relax the rules later, but we may not be able to make them stricter (even if we later decide that this must be done) if we start with relaxed rules now. I would be much less hostile to these questions once I see that our community has grown to be larger and more stable, going into some kind of steady state. I don't think we reached that stage already. Commented Jun 12, 2012 at 8:34
  • @Leonid Your edit shows very good points, but I think they tell apart good and bad questions, not HW and beginner's. As Socrates teach us, the way a person asks a question shows the way he/she/it thinks, and not his/her/its stage on life. A convoluted and not cared for question depicts a confused individual. Beneath a neat and to the point question is a sharp mind. Student or not. A student copying literally a HW question without any other information about his thinking process is probably too lazy and lacks drive to learn. No difference with other kinds of bad Qs like the one you linked. Commented Jun 13, 2012 at 12:24
  • @belisarius Yes you are right. It is just that it is more likely that homework questions will be like that, but I agree that the set of questions I was talking about is not the same as the set of homework questions (although perhaps they have the large overlap). Commented Jun 13, 2012 at 12:43
  • I voted to close that example you linked to as "Too Localized". It' just a big code dump with no context. As seen from the answers, the issue is most likely something along the lines of _?NumericQ, of which there are several dupes. So if not "Too Localized", it'd be closed as an "Exact Duplicate", but I don't feel for the latter, because it's not worth keeping around.
    – rm -rf Mod
    Commented Jun 13, 2012 at 14:21

It might sound bad, and I just started with Mathematica, but been a long StackOverflow lurker and someone who asks Homework questions. However, I have strong opinion about this discussion.

Read this

Dr. Stephen Wolfram School of Natural Sciences The Institute for Advanced Study Princeton, NJ 08540

Dear Wolfram:

  1. It is not my opinion that the present organizational structure of science inhibits "complexity research" - I do not believe such an institution is necessary.

  2. You say you want to create your own environment - but you will not be doing that: you will create (perhaps!) an environment that you might like to work in - but you will not be working in this environment - you will be administering it - and the administration environment is not what you seek - is it? You won't enjoy administrating people because you won’t succeed in it.

You don’t understand "ordinary people." To you they are "stupid fools" - so you will not tolerate them or treat their foibles with tolerance or patience - but will drive yourself wild (or they will drive you wild) trying to deal with them in an effective way.

Find a way to do your research with as little contact with non-technical people as possible, with one exception, fall madly in love! That is my advice, my friend.


(Signed, 'Richard P. Feynman')

Richard P. Feynman

Whenever I read things such as "we will start getting a lot of nonsense questions, quality of questions will go down, knowledgeable people will go elsewhere, we should not deal with people who are not knowledgeable", I think about this letter. Fear of dealing with non-techies(or beginners).
Take StackOverflow.com as an example. Out of thousands questions asked/answered on StackOverflow.com with, very small fraction are homework question, most of the questions are from average programmers.

As long as the person shows clear effort to solve the homework, he/she should be helped.

PS.It just happened, that letter was written to Wolfram. It could have been written to other scientist.

  • 1
    How precisely does the letter you cite relate to the homework question? Commented Jun 11, 2012 at 20:42
  • 1
    I fail to see the relevance here. Could you please explain it? Is it the case that being a homework-nazi (i.e. eliminating HW questions) cause people to do more administrative than the productive work? This might be a valid argument, but without any policies of administration this site surely would be a worse place. Commented Jun 11, 2012 at 21:11
  • At this point, this reads like it is indictment against Mathematica itself, so I downvoted it.
    – rcollyer
    Commented Jun 11, 2012 at 21:18
  • Thank you for the clarification, and as it is now in line with my own opinion, +1.
    – rcollyer
    Commented Jun 11, 2012 at 22:40
  • 2
    @rcollyer: It's a letter written to Wolfram. It's not a letter talking about Mathematica. It's a letter from Feynman criticising Wolfram's attitude towards other people. I can't see how that relates in any way to Mathematica. I've heard that Newton was a terrible person, but that doesn't change that he was one of the greatest scientists ever, and it certainly doesn't invalidate his scientific achievements. So even without the clarification, I cannot see the slightest way how this post could be an indictment against Mathematica.
    – celtschk
    Commented Jun 12, 2012 at 10:57
  • @celtschk prior to the edit, that was all there was. Lacking the extra commentary, there were several ways to interpret it, including as an indictment against Mathematica.
    – rcollyer
    Commented Jun 12, 2012 at 11:47

You must log in to answer this question.

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