We definitely need at least one tag to cover randomized algorithms (that use randomness to do something) and one for random generators (that produce (pseudo)randomness).
For randomized algorithms, we have randomized-algorithms, and more specific tags such as random-walks, random-graphs, sampling, etc. This seems fine to me.
For random generators, we have a ...
If there is any distinction between hash(es) and hashing, the differences are small in the context of computer science. We usually study hash functions to do hashing, and hashing is impossible without hash functions.
Therefore, it is reasonable to link the two as synonyms. Following our usual conventions and to emphasize the algorithmic focus, I'd propose ...
I think finite-automata is specific enough, even for questions that aim towards getting a DFA. That is because determinism is (usually) not the issue; every NFA can be algorithmically converted into a DFA. The issue is finding any finite automaton.
For questions that specifically deal with nondeterminism, we already have nondeterminism (which can be used ...
Questions about programming languages are fine as long as they are programming-languages questions and not programming questions.
For example, it is fine to ask design questions about the C++ programming language. So the tag c++ is can be useful for on-topic questions.
I agree. Let's finally get rid of this tag. It and its siblings are meta tags — they don't help people decide whether they might find the question interesting.
A question with just a proof or algorithm and no question other than “is this correct?” can usually be closed as too broad. A question with a proof or algorithm and a specific question (“Is this a ...
Cluster is allocation unit, coupled together computers or parallel file system. 34 questions use it, none properly. Moreover using definitions I know, properly tagged question would be off-topic. Proper place for such might be at superuser.
Algorithm like k-means performs "clustering" to partition the given set into "clusters" (or groups) - but one cluster ...
As D.W. points out, something like this was already implemented on StackOverflow! Hence, this feature only has to be turned on.
I propose that this feature is turned on on all the language-specific tags (c, c++, java, python, prolog, haskell, lisp) with the following warning text:
Questions about $LANGUAGE are often closed as off-topic!
If your ...
In the context of CS, "Big-Oh Notation" is probably a synonym of "Landau Notation", even though there is more than O to Landau notation. I'd propose to get rid of the extra tag.
Both are subsets of asymptotics, which covers different types of bounds and limit processes. I think it makes sense to keep the different tags.
Once again, no. This suggestion has all the hallmarks of “we must do something, this is something, so let's do it”.
If there was no c tag then askers would use some other tag, such as programming-languages, or algorithm, or complexity (because the homework exercise is hard, i.e. complex — don't laugh, I've seen it often). Hell, even though we have a c tag, ...
Not that this really adds a lot, but it at least gives a place for people to vote in favour of discarding graph-algorithms and using algorithms + graphs.
My perspective is that this is the more flexible route. We need a tag for algorithms (of course), and a tag for things-to-do-with-graphs (side note, I still think it's productive to have separate graph-...
(I'm not an expert on lambda calculus, but I was taught by one.)
I don't think our questions about lambda calculus are particularly badly tagged.
I've retagged one question which only had the lambda-calculus tag. The remaining questions which are only tagged lambda-calculus or only logic lambda-calculus are about elementary to absolute-beginner ...
The tag cpu-cache is about caches in computer architecture and their relevance to programming. It so happens that we have many questions on that topic, mostly about CPU/memory architecture and about algorithm design.
The tag is definitely not too restrictive — if anything, it's overloaded, as the relevance of CPU caches to algorithm speed and the ...
I propose to create the synonym computability ← recursion-theory
The terms may come from different schools, but as far as I know, describe the same field. In particular, a function is recursive (in the sense of this theory) if and only if it is computable.
FWIW, Wikipedia does not seem to separate the terms.
(We may want to go computability-theory ← ...
Thanks for bringing this up!
Since you already have a good overview, please
propose edits that remove mapreduce from computability questions and
propose a tag description.
If you can't access that link due to missing privileges, please provide a candidate text here.
I would say applications of graphs in CS do not fall in under graph theory as a mathematical field (research area), e.g. all the A* questions should be labeled graph.
On the other hand, questions regarding graph classes and their complexity (recognition, modification, operations etc.), as well as classical problems like chromatic number etc., should ...
The nuance may have more to do with grammar. Parser is a noun. Parsing is a gerund (a way in english of turning a verb into either a noun or an adjective.) Parsing is the action that a parser does. We haven't been completely consistent in our choices, but we seem to use gerunds only when the real noun sounds stupid/unnatural. In this case the real noun ...
I don't get the tag scoping either, variable-binding is fine for that question. I'm not convinced we need scoping at all and I'd prefer variable-scope if we introduce a synonym.
The proper tag name is variable-binding and not name-binding, because variables aren't always named.
I speak a domain expert as a (former) programming language theoretist and also ...
I recommend introducing the two tags os-kernel and kernel-functions,
and then introducing a tag synonym kernel -> os-kernel.
I do not think we need a special tag for "kernel" in the context of parametrized complexity. That's a niche topic and I don't think we need such a specialized tag. As far as I can tell, we don't currently have any questions like ...
The tags are sorted (decreasingly) by the number of questions that have been asked with them. This happens when a question is edited (even if you don't edit the tags, they may be reordered if their popularity has changed).
I think we mostly have to differentiate between partitions of integers and sets. The latter appears in many contexts in CS but we have other tags to clarify the context. Therefore, I suggest the following.
Create tag integer-partitions.
Partitions of an integer n are different ways of writing n as sum of smaller integers.
partitions ← partition
Implemented on Sep 21, 2016
About the tag graph-algorithms
Create synonym graphs ← graph-algorithms and add algorithms if not already present.
What about tags random and randomness?
Create synonym. randomness ← random
Tags: network-flow, max-flow
Create synonym network-flow ← max-flow.
Do we need both cluster and clustering tags?
Create synonym ...
I posit that the presence of those tags gives newbies the impression that their programming questions are on topic here. Even if there are theoretically good questions for these tags, in practice these tags are magnets for bad questions.
I have never had this impression and your hypothesis is not consistent with the user interface and with the behaviors ...
Back in the day, we decided to use the plural of things as tag. I created a synonym matrix → matrices.
FWIW, note that every user with sufficient reputation can suggest synonyms:
You would then have to lobby on Meta or in chat to collect a couple of approval votes. Or have a mod hammer-approve the synonym. :D
I don't see a compelling reason to have a tag that covers Karnaugh maps but not, e.g., Quine-McCluskey or other methods for achieving the same goal.
If you want to follow that logic, we should just tag everything "computer science" and nuke all the other tags. There's nothing wrong with having a tag for the specific subject of Karnaugh maps, since people ...
I tend to use “performance” to mean run time, whereas “efficiency” applies to any resource: CPU time, memory, power…
Since optimizing for efficiency is usually a compromise, I don't think efficiency makes sense as a tag. Use performance for run time efficiency, power-consumption for power efficiency, etc.
Since most questions tagged efficiency are about ...