9
$\begingroup$

It's well past the time we had an FAQ! What should our site FAQ contain? Propose ideas and wording here.

Note that we can only customize the first section, between the first sentence “Computer Science - Stack Exchange is for students, researchers and practitioners of computer science.” and the last sentence “Please look around to see if your question has been asked before. It’s also OK to ask and answer your own question.” which are immutable.

Please remember that the site FAQ should be concise — add links to meta threads for details. Meta threads can have the tag for more visibility; only moderators can do this. Add the tag if you think a meta question should have that tag and wish to have a second opinion. Contact a moderator to have the tag added.


The list of 7 essential meta questions is as follows:

  1. Are questions about [subject] on or off topic?

  2. What should our FAQ contain?

  3. How should we tag questions about {subject}?

  4. What’s the “elevator pitch” for our site?

  5. What should our logo and site design look like?

  6. Who should the moderators be?

  7. How do we promote our site?

I think we have achieved some level of agreement about the scope so far (1). Discussions about tagging are on-going. (3) We should start promoting the site now that we are in public beta (7) and an "elevator pitch" will definitely help promotion (4). We should aslo discuss the site's FAQ (2) and candidates for temporary community mods (6). Since the beta takes much longer these days, 5 can wait for now, I guess.

So lets start by what should be in the site's FAQ. Definitely it should explain the scope.

What should be the explanation regarding the scope in cs.SE's FAQ? What else do we need to put in the FAQ?

Looking at math.SE's FAQ can be a good source of ideas.

$\endgroup$
4
  • $\begingroup$ related: Mathematics's detailed faq. $\endgroup$
    – Kaveh
    Mar 21, 2012 at 16:55
  • $\begingroup$ @gilles, I think we should user a new post, see here. $\endgroup$
    – Kaveh
    Jul 6, 2012 at 17:23
  • $\begingroup$ That other post is calling for a list of bullet points. It isn't a good way to build the site FAQ, which needs to be a coherent whole. $\endgroup$ Jul 6, 2012 at 17:51
  • $\begingroup$ @Gilles, we should collect the points before combining them into one piece to obtain a concise FAQ and in my experience has given better result. As we saw, trying to write the whole thing at once didn't work. $\endgroup$
    – Kaveh
    Jul 6, 2012 at 22:03

4 Answers 4

6
$\begingroup$

As this discussion seems to have died down a bit, let's give it a prod. I've taken @Patrick87's answer and changed a number of things to make our scope exact. I've cut off the attempt at defining Computer Science, though I think a list of example topics might be a useful thing to add.

Computer Science - Stack Exchange is for students, researchers and practitioners of computer science and related fields. If your question is about ...

  • understanding concepts of computer science
  • solving computer science problems
  • applying computer science to solve problems in other areas
  • issues unique to the discipline of computer science itself

and is not about ...

  • Software and hardware support — various SE sites
  • Non-algorithmic programming issues (see below) — Stack Overflow
  • the site itself — please ask on meta instead

... then you're in the right place to ask your question! However, there are certain subjects that, while on-topic, are covered in more depth at our sister sites:

  • (Computer Science related) Mathematics — Mathematics - Stack Exchange
  • Software engineering (the study of software development) — Programmers - Stack Exchange
  • Research-level theoretical computer science — Theoretical Computer Science - Stack Exchange
  • Scientific computing - Computational Science - Stack Exchange

My question is about a programming issue. Where can I ask it?

General programming questions are more likely to belong on Stack Overflow instead of here. A good rule of thumb is to ask yourself...

Would an expert in computer science give me a better/different/more specific answer to this question than expert programmers?

If yes, then feel free to ask it here. The exact criterion is this:

Questions about algorithms are on-topic, and any programming language is allowed to be used to communicate the algorithm. Questions about a specific program itself are off-topic.

For more discussion on this topic, see this question on our meta site.

$\endgroup$
12
  • $\begingroup$ Naturally I like much of this, and I appreciate that you are trying to provide an exact criterion for what is and isn't allowed. That being said, I'm not sure I ever agreed with your "exact criterion, and I apologize if you felt that was my position... I like the idea of putting a line about programming in the "not about" section, and my only suggestion is related to the point mentioned above; I think it would be sufficient at that point in the FAQ to say "Certain programming issues (see below)"; and for my money, it would be better to omit the "exact criterion" bit... just thoughts ;D $\endgroup$
    – Patrick87
    Apr 9, 2012 at 13:08
  • $\begingroup$ @Patrick87: I didn't have the impression you ever agreed to my criterion. One of the reasons I put this up here is to see how many people do agree with me. $\endgroup$ Apr 9, 2012 at 13:14
  • $\begingroup$ A good start, now we need to cut it down to a reasonable length. $\endgroup$ Apr 9, 2012 at 18:26
  • $\begingroup$ @Gilles It looks shorter than the one for cstheory, at any rate. How short do you want it... Stack Overflow short? $\endgroup$
    – Patrick87
    Apr 9, 2012 at 19:20
  • $\begingroup$ Hey guys, this is not the right way to write the FAQ. Each post should contain a small section that you think should be in the FAQ, then based on the votes they receive we can decide what to include and then combine them to get our FAQ. $\endgroup$
    – Kaveh
    Apr 9, 2012 at 20:50
  • $\begingroup$ Alex, @Patrick87, you are discussing scope still, this post is not for discussing scope. FAQ should contain what people have agreed on. You have to discuss the scope separately. I will post a question about programming so we can decide once and for all if that is part of the scope or not. $\endgroup$
    – Kaveh
    Apr 9, 2012 at 20:52
  • $\begingroup$ @Patrick87, what you are claiming is not true. The site is not intended to be restricted to theory and there has been an agreement on that. Please check discussions here. That is different from the issue of programming question. $\endgroup$
    – Kaveh
    Apr 9, 2012 at 20:53
  • $\begingroup$ @Kaveh I just said the Alex's FAQ was shorter than cstheory's FAQ... nothing to do with content. $\endgroup$
    – Patrick87
    Apr 9, 2012 at 20:55
  • $\begingroup$ @Patrick87, sorry, :) posted the last comment in the wrong place. I reposted it where it should have been posed. $\endgroup$
    – Kaveh
    Apr 9, 2012 at 20:57
  • $\begingroup$ @Kaveh: if that's how we're supposed to make a FAQ, we might be better off remaking this question and using that format: this one has a lot of answers and comments already. $\endgroup$ Apr 9, 2012 at 21:32
  • $\begingroup$ @Alexten, seems a good idea. We can turn this into a discussion about FAQ (as it is), and have another one that would hold small suggested parts so people can vote on them independent of other parts. Then we can put the most important ones in the site's FAQ and keep the rest as a larger FAQ. Would you like to post the new question? (btw, I think it would be helpful to get some agreement about the scope first so we don't get into the same problem we have here.) $\endgroup$
    – Kaveh
    Apr 9, 2012 at 21:40
  • $\begingroup$ ps: I posted the FAQ question at the time because I thought we have reached some agreement about the scope, but this issue of programming questions came up and now we have answers with negative votes. $\endgroup$
    – Kaveh
    Apr 9, 2012 at 21:42
3
$\begingroup$

Using math.SE FAQ as blueprint, how about this:

Computer Science - Stack Exchange is for people studying computer science at any level and professionals in related fields. We welcome questions about:

  • Understanding concepts and methods of computer science
  • How to apply those to a given problem
  • History and development of computer science

There are certain subjects that, while still being at least partially on-topic here, you can get better response on our sister sites:

And some kinds of questions are considered off-topic:

All three lists should probably extended quite a bit.

$\endgroup$
4
  • $\begingroup$ I might suggest adding "Software engineering" or "Software development" to the second list, and point people at "Programmers - Stack Exchange". $\endgroup$
    – Patrick87
    Apr 3, 2012 at 15:54
  • $\begingroup$ As a separate suggestion, how do you feel about changing the items in the first list to "understanding an idea in computer science", "solving problems in computer science", "applying computer science to solve problems in other areas" and "the discipline of computer science, itself"? Just a suggestion... it might be worth it to discuss potential advantages and disadvantages of alternatives. $\endgroup$
    – Patrick87
    Apr 3, 2012 at 16:03
  • $\begingroup$ As a final suggestion for further discussion, I think it might be a good idea to consider exercising caution in declaring "programming" to be off-topic. It might be better to say "Specific software implementation issues"... several (in my opinion, good) questions already on the site could be construed as questions about programming; questions which we could reasonably expect to see lots of (such as "I wrote this DFA does it recognize language L", "why did my TA say that my network protocol doesn't provide reliable transfer?", etc.) are basically programming questions... are those off-topic? $\endgroup$
    – Patrick87
    Apr 3, 2012 at 16:27
  • $\begingroup$ @Patrick87 1) Good idea, added. 2) One might prefer either formulation; I guess it would be best if you proposed alternatives as an answer so people can vote. a) "an idea" is very vague, imho. b) why splitting internal and external problems? c) "questions about the discipline" might invite question we do not like, e.g. "What is the use of (T)CS?". 3) I think "Programming" nails it but can be misunderstood. Is the new version better? $\endgroup$
    – Raphael Mod
    Apr 3, 2012 at 17:06
2
$\begingroup$

I propose the following alternative FAQ baseline:

Computer Science - Stack Exchange is for students, researchers and practitioners of computer science and related fields. If your question is about ...

  • understanding concepts of computer science
  • solving computer science problems
  • applying computer science to solve problems in other areas
  • issues unique to the discipline of computer science itself

and is not about ...

  • Software and hardware support — various SE sites (this idea is borrowed, with modification, from Raphael)
  • the site itself — please ask on meta instead

... then you're in the right place to ask your question! However, there are certain subjects that, while on-topic, are covered in more depth at our sister sites:

  • Mathematics — Mathematics - Stack Exchange
  • Software engineering — Programmers - Stack Exchange
  • Research-level theoretical computer science — Theoretical Computer Science - Stack Exchange
  • Scientific computing - Computational Science - Stack Exchange

My question is about software development/programming. Where can I ask it?

General programming questions more likely belong on Stack Overflow instead of here. A good rule of thumb is to ask yourself...

Would an expert in computer science give me a better/different/more specific answer to this question than expert programmers?

If yes, then feel free to ask it here. For more discussion on that topic, see this question on our meta site.

What is computer science?

Although there is no black-and-white distinction between computer science questions and programming questions, questions are considered to be about "computer science" roughly when they can be discussed between two people who don't know any of the same programming languages or application programming interfaces. For an explanation of what CS is, we refer you to the short definition found in the 2000 article, "Computing as a Discipline," by Peter J. Denning, Douglas E. Comer, David Gries, Michael C. Mulder, Allen Tucker, A. Joe Turner, and Paul R. Young:

The discipline of computing is the systematic study of algorithmic processes that describe and transform information: their theory, analysis, design, efficiency, implementation, and application. The fundamental question underlying all of computing is, "What can be (efficiently) automated?"

Note that I have not added appropriate links to this, but you should get the idea. I will now try to argue for some of the strengths of this version, compared to Raphael's, the leading contender:

  1. The first meaningful point of departure is in the first list: whereas Raphael uses "How to apply those to a given problem", I give "solving computer science problems," and "applying computer science to solve problems in other areas." I feel that using the Mathematics FAQ as a template may have led Raphael astray here. Problems in Mathematics are typically solved using Mathematics only; so it makes sense to limit solutions to mathematical problems to solutions relying on mathematics only. However, Computer Science can (and does) benefit from areas which may not be considered by most people to be part of Computer Science, especially those areas of mathematics which may provide useful tools (e.g., graph theory). My phrasing avoids this difficulty by separating computer science problems (which are of interest primarily to computer scientists, and which may be solved using a variety of tools which are not part of computer science, per se) and problems (of interest primarily to others) to which computer science can be applied (e.g., to design an algorithm to compute some interesting result). In this sense, I feel like CS should feel more like the statistics or physics stack exchange sites, rather than the mathematics site.

  2. The next point of departure is in the last point of the first list: whereas Raphael says "History and development of computer science," I say "issues unique to the discipline of computer science itself." I feel that this represents a better catch-all than Raphael's version, which implies a scope limited to historical discussions. For instance, that version could be construed as declaring discussions of philosophy, ethics, profession, pedagogy, etc. off-topic; I assume this is not what the community wants? My version allows more, without (in my estimation) allowing too much. Indeed, I raise Raphael's own criticism of the other candidate FAQ against Raphael on this issue: you can never name all of the on-topic, non-technical, about-CS topics; so why list only a few?

  3. I suggest instead of declaring "programming" (the activity) off-topic, we declare "using [...] computer software" (also "using [...] computer hardware") off-topic. Programming is an activity to which computer science is and should be applied; in the same way that solving a system of equations is an activity to which mathematics is and should be applied. Programming is an activity which virtually all members of this site will have in common. My solution seems more palatable, though still possibly unsatisfactory. Suggestions are appreciated.

  4. To avoid questions about personal, academic or professional discussions, which aren't a good fit anyway, I think this is worth stating. I believe we already had a question that would fail this test... could be mistaken.

EDIT:

I have edited my original suggestion to address issues raised in the comments and in the chat discussion. The major change is in how I propose dealing with the "programming" issue. Comments and further suggestions are welcome.

A better solution than arbitrarily allowing all programming questions, or arbirarily forbidding all programming questions, might be to add a section to the FAQ explaining the special relationship between programming and computer science. It is common on other sites (such as Theoretical CS and English, for example) to dedicate special sections of the FAQ to delicate matters. I propose that this be done for programming on this site, and the edits reflect that.

The Game Development and Statistics sites do a fairly admirable job of trying to explain what programming questions are on- and off-topic there. Based on their examples, I have crafted the text which appears in the edits.

$\endgroup$
11
  • $\begingroup$ I like the wording "issues unique to the discipline of computer science itself". $\endgroup$
    – Kaveh
    Apr 3, 2012 at 19:02
  • 1
    $\begingroup$ I think it is a good idea to keep programming questions off-topic explicitly, SO does deal with such question quite well. If you want code in particular language to perform some task or you have a problem about how to use a feature of a programming language or ... i.e. issues that are not computer science then they are off-topic. (If you asking an algorithm question, that is on-topic, if you are asking a science question about programming languages it is on-topic. The fact that they can be reconstructed as programming question in a language is not a valid point. The answers will be different.) $\endgroup$
    – Kaveh
    Apr 3, 2012 at 19:06
  • 1
    $\begingroup$ I am not sure about the point 4, I would think some questions in that category can be on-topic, while others are not. We haven't received such questions yet and I think we can deal with it when we get such questions and decide what is fine and what is not. $\endgroup$
    – Kaveh
    Apr 3, 2012 at 19:08
  • $\begingroup$ I also think it would be good to have a short segment about computer science which can link to a meta question. $\endgroup$
    – Kaveh
    Apr 3, 2012 at 19:16
  • $\begingroup$ I agree with 1. and 2. Item 3. is fine, too, but I think we should explicitly mention "programming" or a synonym here. 4. is dangerous; I have seen good and useful advice question. $\endgroup$
    – Raphael Mod
    Apr 3, 2012 at 21:52
  • $\begingroup$ @Raphael But don't advice/recommendations questions inherently solicit opinions? Can you provide an example of a "good" advice/recommendations question? I suppose that one objection to forbidding these kinds of questions is that the bad ones might be closed on other grounds... $\endgroup$
    – Patrick87
    Apr 4, 2012 at 14:45
  • $\begingroup$ @Kaveh But don't advice/recommendations questions inherently solicit opinions? Can you provide an example of a "good" advice/recommendations question? I suppose that one objection to forbidding these kinds of questions is that the bad ones might be closed on other grounds... $\endgroup$
    – Patrick87
    Apr 4, 2012 at 14:46
  • $\begingroup$ @Patrick87: I guess the quality is mainly defined by its answers. Therefore, if the OP asks something like "What are the best books for X?" and specifies that the book should at least 10 years old and it should be used as course companion at more than one university, he adds in a non-opinion part that can raise the bar for answers such that bad ones become unlikely. $\endgroup$
    – Raphael Mod
    Apr 4, 2012 at 16:40
  • $\begingroup$ @Patrick87, there are good subjective questions and there are bad subjective question. I think the post on blog.SO clarifies the issue quite well. Subjective questions that follow the 6 points in the Guidelines for Great Subjective Questions can be fine questions. $\endgroup$
    – Kaveh
    Apr 4, 2012 at 16:58
  • $\begingroup$ I like the new section about programming questions. Change "than other programmers?" into "than an expert programmer?", though. About the last section and in particular the quote: I don't like it. Not all CS is about computing stuff; there is a huge amount of modelling, too. $\endgroup$
    – Raphael Mod
    Apr 6, 2012 at 17:48
  • $\begingroup$ The last part is too narrow IMO, it seems to exclude things like HCI and many other fields in CS. $\endgroup$
    – Kaveh
    Apr 6, 2012 at 22:45
-2
$\begingroup$

Just expanding upon an existing answer, making this CW so people can edit this.

Computer Science - Stack Exchange is for people studying or practicing computer science at any level and professionals in related fields. If you have a question about...

  • Algorithms and data structures
  • Computational theory
  • Information theory
  • Programming language theory
  • Database theory
  • Artificial intelligence
  • Quantum computing
  • Computer architecture
  • Computer graphics
  • Computer security
  • Mathematics for computer science, such as discrete mathematics

and is not about...

  • General programming problem (what is compiler error X?)
  • Education and Career question (Should I major in CS?)

then you are in the right place

There are certain subjects that, while still being on-topic here, you can get better response on our sister sites:

  • Mathematics — Mathematics - Stack Exchange
  • Research level theoretical computer science — Theoretical Computer Science - Stack Exchange
  • Computational science or scientific computing - Computational Science - Stack Exchange
$\endgroup$
1
  • 6
    $\begingroup$ I don't think listing CS topics is a good idea; it will only cause confusion because the list can never be complete. $\endgroup$
    – Raphael Mod
    Mar 22, 2012 at 7:00

You must log in to answer this question.

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