# How to deal with "How to do X?" questions where X is a very high-level (software engineering) task

From time to time we get questions that are of the form:

How can I do X?

or

Is X studied?

(often by a user not familiar with TCS) where X is a very high-level real-world task, so it is not clear what the theoretical question is being asked, what is the exact theoretical model, and how one can answer the post. Here is a recent example asking for how to "distributively maintain a database of all baseball games" which will also deal with "spam" and "fake" data from its users. For analogy, it is like asking "How can I built a rocket that can take a human to Mars? Has this been studied?"

How should we deal with them?

I am partly asking this meta question so we can refer to it when we get such questions.

## 2 Answers

The answer to "Is X studied", for almost all X, is "yes". If the OP wants more info, they need to explain what they've looked at so far, whether they can break down X into chunks $X_1, X_2, \ldots X_n$, and so on.

So such questions should be given 24 hours to be refined, else they should be closed.

• "Is X studied?" in some cultures is synonym to "Is X studied? If yes, could you give me some references, so I could improve myself?". Do I get you right, that you expect direct questions , like "References to topic X", "Algorithms to topic Y" etc? Aug 29 '11 at 21:01
• Well also that I'd like to see that you've done some due diligence yourself before asking. Google has made searching for material a lot easier than before Aug 29 '11 at 22:30
• Agree. But in some cases, it might be reasonable even thou, to ask. Some time ago, I had a hard time in finding books, papers etc related to algorithms for finding, whether two equations are equal. What I've found, thanks to posting question to stackoverflow.com (not cstheory), that I should look for something different. One of answers was about "authomated theorem proving". Then I realised: "Yes, sure. Asking about equality is homomorphic with asking about proof of equality". Then I've started having good searching, even in library. Aug 29 '11 at 22:55
• What I've found, when working in interdisciplinary research group, was, that, there are similar problems, in different fields, with completely different names. So... maybe questions about fields (and other namesakes of problem) are reasonable ? Aug 29 '11 at 22:58
• Sure. that definitely sounds reasonable in the right context. Aug 30 '11 at 2:32

“How can I do X?” and “Is X studied?” are very different. The latter (as it is) is silly as Suresh writes. However, the former can be interesting. I think that it is incorrect to close a question just because it is application-oriented.

I think that the discussion about How-to-model-this questions applies. In particular, as Scott Aaronson writes, there are better and worse ways to ask a “How can I do X?” question:

Having said that, there are better and worse ways to pose a modeling question. I think the best ways would make it clear (a) why TCS (as opposed to a different field, like systems or AI) might be well-equipped to answer the question, and (b) what a helpful answer would look like. (In other words: if the only answer to your question you could reasonably expect from a TCS expert is "I dunno," why are you asking it here? :) )

• The problem is that these questions are not posted as how to model this question, they don't specify a model and still ask how to solve the problem. They feel that they have a model and they have specified it but from theoretical point of view there are too many unknowns that needs to be clarified before the question can be answered but the users doesn't see this because they are not theoreticians. I think a person asking a question on cstheory should try to state the question in a language that is understandable for theoretical computer scientist. Aug 12 '11 at 15:37
• The task that they want to perform is also very high-level, they have a real world engineering problem and they want to know how to solve it where the specification of the problem is not clear enough. This leads us to first perform the job of a software engineer carrying out requirement analysis and then solve the problem, essentially they are asking us to do their job modulo coding it (and sometimes even ask for the code). I think that if the OP is explicitly asking a how to model question then that is fine, Aug 12 '11 at 15:42
• @Kaveh: (1) “How to model this” question does not specify a model, either (because that is what is being asked). So I do not see any big difference between “How to do this” questions and “How to model this” questions from the TCS viewpoint. (2) I agree that “a person asking a question on cstheory should try to state the question in a language that is understandable for theoretical computer scientist,” but I thought that you were asking something different. Aug 12 '11 at 15:43
• [continued] but otherwise we should close them until the question is clarified. ps: the difference I see is that "how to model" questions explicitly ask for a model, whereas these questions ask us to solve the problem where the problem itself (including the model they are interested in) is not completely specified. Also it seems to me that in the how to model question the task is not very-high level (like the example I linked). Aug 12 '11 at 15:44
• @Kaveh: Then append a sentence “How can I model this problem?” to your favorite “How can I do X” question and see if it solves any issue with the question. The problem is not that the question asks “How can I do X,” but that it is posed in a bad way as a how-to-model-this question (see Scott’s meta post which I linked to). Aug 12 '11 at 15:49
• @Kaveh: If your concern is how high-level the topic is, you are using a very wrong title for your post. Aug 12 '11 at 15:53
• Yes, I should have used a more specific title, I edited it, hopefully it is better now. I think the example question that I have linked to is a good example of this kind of questions. I read Scott's post, I still think there is a difference where the OP is looking for a model and understand that they don't have one and where OP thinks that they have a model while they don't have a clear model. Aug 12 '11 at 16:07
• @Kaveh: And I still think that that difference between “how to do” and “how to model” is negligible. If they are told that they do not have a model, they will simply append “How can I model this problem?” This will turn the question to a how-to-model question, but it will not solve any issue because the issue is not that they are asking how to do. Aug 12 '11 at 16:17
• By the way, if I remember correctly, the first “how to model” question on cstheory.stackexchange.com appeared because someone asked a “how to do” question and another user complained that it lacked a model. Aug 12 '11 at 16:21
• Good point, OK, if we tell the OP that they don't have a clear theoretical model and they agree that is fine, we can change the question to a how-to-model question. But if the OP doesn't agree and insists that they have a model and the problem is clear whereas it is not clear theoretically then I think we should close it. If the OP changes it to a how to model question then we can reopen it. But I think I see your point, very-high level how-to-model questions may have similar problems. (My feeling about these questions is that someone is asking us to do their job.) Aug 12 '11 at 16:26