Skip to main content
replaced http://meta.stackoverflow.com/ with https://meta.stackoverflow.com/
Source Link

I don't believe it's possible to draw a line in the sand cleanly delineating "programming-related" from "computer science" or "pure algorithms" questions. To respond openly to a comment on Won'tWon't's answer, viz.

All programming algorithms are algorithms, but not all algorithms are programming algorithms. If the algorithm isn't programming related, it does not belong here. It truly is a simple concept, one that I'd think someone with access to a dictionary could determine.

... well, I did consult a dictionary regarding this "simple concept". Here is Merriam-Webster's first definition for "algorithm":

a procedure for solving a mathematical problem (as of finding the greatest common divisor) in a finite number of steps that frequently involves repetition of an operation

Well, gee. That sounds an awful lot like the "effective methods" expounded upon by the work of Turing, Church, etc., doesn't it? Indeed, the definition of algorithm, in this primary sense, is precisely the class of programmable solutions to problems! How then could one possibly have such a thing as a "non-programming-related" algorithms question? Is "give me an algorithm to tie my shoes" a programming-related algorithm question? Well, if you can mathematically formalize the notion of shoe tying in such a way that a general-purpose computing device might be programmed to determine desirable ways to tie shoes---then yes! And if you cannot---then you are not asking for an algorithm at all, but a set of instructions, in the ordinary everday sense of that term.

As for the question in question, how can it possibly be invalid? Any attempt to divorce "math" from "programming" is doomed to failure: the entire theory of computation is built around the notion of "computable function"---and even the most abstract mathematical question permits endless discussion as to the merits---in terms of efficiency, readability, "elegance", and so on---of the possible ("programmable" by definition!) algorithms for its solution.

One of the reasons I've become less active on SO recently is a trend of trying to narrow the scope of allowed questions while pooh-poohing "abstract", "academic", or "mathematical" questions. While I'd like to chalk this up to anti-intellectualism and the "cult of the practical" I do believe those advancing this viewpoint have good intentions.

Unfortunately it leaves the rest of us in the lurch. As others have pointed out, if these types of questions are "too abstract" or insufficiently "programming-related" for SO, where on Earth do they belong? CSTheory.stackexchange is certainly not the answer---it's MathOverflow for the graduate, doctoral, and post-doctoral CS research crowd, and while I love lurking there to soak up some insight through osmosis, it's not an acceptable venue for questions at this level.

I would love to see StackOverflow embrace this middle ground. A practitioner-level "Computer Science" SE site might scratch the itch as well, but I fear that the audience may not be quite large enough to justify its existence.

I don't believe it's possible to draw a line in the sand cleanly delineating "programming-related" from "computer science" or "pure algorithms" questions. To respond openly to a comment on Won't's answer, viz.

All programming algorithms are algorithms, but not all algorithms are programming algorithms. If the algorithm isn't programming related, it does not belong here. It truly is a simple concept, one that I'd think someone with access to a dictionary could determine.

... well, I did consult a dictionary regarding this "simple concept". Here is Merriam-Webster's first definition for "algorithm":

a procedure for solving a mathematical problem (as of finding the greatest common divisor) in a finite number of steps that frequently involves repetition of an operation

Well, gee. That sounds an awful lot like the "effective methods" expounded upon by the work of Turing, Church, etc., doesn't it? Indeed, the definition of algorithm, in this primary sense, is precisely the class of programmable solutions to problems! How then could one possibly have such a thing as a "non-programming-related" algorithms question? Is "give me an algorithm to tie my shoes" a programming-related algorithm question? Well, if you can mathematically formalize the notion of shoe tying in such a way that a general-purpose computing device might be programmed to determine desirable ways to tie shoes---then yes! And if you cannot---then you are not asking for an algorithm at all, but a set of instructions, in the ordinary everday sense of that term.

As for the question in question, how can it possibly be invalid? Any attempt to divorce "math" from "programming" is doomed to failure: the entire theory of computation is built around the notion of "computable function"---and even the most abstract mathematical question permits endless discussion as to the merits---in terms of efficiency, readability, "elegance", and so on---of the possible ("programmable" by definition!) algorithms for its solution.

One of the reasons I've become less active on SO recently is a trend of trying to narrow the scope of allowed questions while pooh-poohing "abstract", "academic", or "mathematical" questions. While I'd like to chalk this up to anti-intellectualism and the "cult of the practical" I do believe those advancing this viewpoint have good intentions.

Unfortunately it leaves the rest of us in the lurch. As others have pointed out, if these types of questions are "too abstract" or insufficiently "programming-related" for SO, where on Earth do they belong? CSTheory.stackexchange is certainly not the answer---it's MathOverflow for the graduate, doctoral, and post-doctoral CS research crowd, and while I love lurking there to soak up some insight through osmosis, it's not an acceptable venue for questions at this level.

I would love to see StackOverflow embrace this middle ground. A practitioner-level "Computer Science" SE site might scratch the itch as well, but I fear that the audience may not be quite large enough to justify its existence.

I don't believe it's possible to draw a line in the sand cleanly delineating "programming-related" from "computer science" or "pure algorithms" questions. To respond openly to a comment on Won't's answer, viz.

All programming algorithms are algorithms, but not all algorithms are programming algorithms. If the algorithm isn't programming related, it does not belong here. It truly is a simple concept, one that I'd think someone with access to a dictionary could determine.

... well, I did consult a dictionary regarding this "simple concept". Here is Merriam-Webster's first definition for "algorithm":

a procedure for solving a mathematical problem (as of finding the greatest common divisor) in a finite number of steps that frequently involves repetition of an operation

Well, gee. That sounds an awful lot like the "effective methods" expounded upon by the work of Turing, Church, etc., doesn't it? Indeed, the definition of algorithm, in this primary sense, is precisely the class of programmable solutions to problems! How then could one possibly have such a thing as a "non-programming-related" algorithms question? Is "give me an algorithm to tie my shoes" a programming-related algorithm question? Well, if you can mathematically formalize the notion of shoe tying in such a way that a general-purpose computing device might be programmed to determine desirable ways to tie shoes---then yes! And if you cannot---then you are not asking for an algorithm at all, but a set of instructions, in the ordinary everday sense of that term.

As for the question in question, how can it possibly be invalid? Any attempt to divorce "math" from "programming" is doomed to failure: the entire theory of computation is built around the notion of "computable function"---and even the most abstract mathematical question permits endless discussion as to the merits---in terms of efficiency, readability, "elegance", and so on---of the possible ("programmable" by definition!) algorithms for its solution.

One of the reasons I've become less active on SO recently is a trend of trying to narrow the scope of allowed questions while pooh-poohing "abstract", "academic", or "mathematical" questions. While I'd like to chalk this up to anti-intellectualism and the "cult of the practical" I do believe those advancing this viewpoint have good intentions.

Unfortunately it leaves the rest of us in the lurch. As others have pointed out, if these types of questions are "too abstract" or insufficiently "programming-related" for SO, where on Earth do they belong? CSTheory.stackexchange is certainly not the answer---it's MathOverflow for the graduate, doctoral, and post-doctoral CS research crowd, and while I love lurking there to soak up some insight through osmosis, it's not an acceptable venue for questions at this level.

I would love to see StackOverflow embrace this middle ground. A practitioner-level "Computer Science" SE site might scratch the itch as well, but I fear that the audience may not be quite large enough to justify its existence.

Source Link

I don't believe it's possible to draw a line in the sand cleanly delineating "programming-related" from "computer science" or "pure algorithms" questions. To respond openly to a comment on Won't's answer, viz.

All programming algorithms are algorithms, but not all algorithms are programming algorithms. If the algorithm isn't programming related, it does not belong here. It truly is a simple concept, one that I'd think someone with access to a dictionary could determine.

... well, I did consult a dictionary regarding this "simple concept". Here is Merriam-Webster's first definition for "algorithm":

a procedure for solving a mathematical problem (as of finding the greatest common divisor) in a finite number of steps that frequently involves repetition of an operation

Well, gee. That sounds an awful lot like the "effective methods" expounded upon by the work of Turing, Church, etc., doesn't it? Indeed, the definition of algorithm, in this primary sense, is precisely the class of programmable solutions to problems! How then could one possibly have such a thing as a "non-programming-related" algorithms question? Is "give me an algorithm to tie my shoes" a programming-related algorithm question? Well, if you can mathematically formalize the notion of shoe tying in such a way that a general-purpose computing device might be programmed to determine desirable ways to tie shoes---then yes! And if you cannot---then you are not asking for an algorithm at all, but a set of instructions, in the ordinary everday sense of that term.

As for the question in question, how can it possibly be invalid? Any attempt to divorce "math" from "programming" is doomed to failure: the entire theory of computation is built around the notion of "computable function"---and even the most abstract mathematical question permits endless discussion as to the merits---in terms of efficiency, readability, "elegance", and so on---of the possible ("programmable" by definition!) algorithms for its solution.

One of the reasons I've become less active on SO recently is a trend of trying to narrow the scope of allowed questions while pooh-poohing "abstract", "academic", or "mathematical" questions. While I'd like to chalk this up to anti-intellectualism and the "cult of the practical" I do believe those advancing this viewpoint have good intentions.

Unfortunately it leaves the rest of us in the lurch. As others have pointed out, if these types of questions are "too abstract" or insufficiently "programming-related" for SO, where on Earth do they belong? CSTheory.stackexchange is certainly not the answer---it's MathOverflow for the graduate, doctoral, and post-doctoral CS research crowd, and while I love lurking there to soak up some insight through osmosis, it's not an acceptable venue for questions at this level.

I would love to see StackOverflow embrace this middle ground. A practitioner-level "Computer Science" SE site might scratch the itch as well, but I fear that the audience may not be quite large enough to justify its existence.