Is programming math?

Thanks for getting back to me! I still feel like the question is lacking in what we're trying to achieve. What problem are we solving, and more importantly, how will we know if we have a good answer or not? (That's the key) Otherwise it's all just, like, your opinion man.

The question is, where do all other programming related discipline go if it does not all fit in computer science?

I see. That is a very specific question: where do these subjects belong within a university? What kind of curriculum should we define? How does that affect student ability to learn and satisfaction? I would start by questioning the classical taxonomy used to classify things. If we say that just one or another school must be supreme, and must "contain" the other (e.g., engineering for programming and math for computer science), then we'll achieve a suboptimal result for many multidisciplinary topics.

I would look at content as belonging to multiple categories simultaneously. "This subject matter called programming concerns, to varying degrees, both the engineering field known as computer software engineering, and also the branch of math known as theoretical computer science". We would not classify disciplines the way that we classify animals, where each creature is just in one hierarchy or another exclusively.

I would suggest looking at these disciplines as a continuous spectrum in many dimensions. We'll carve out spaces in certain dimensions and call some of it "computer science", some of it "software engineering", and some of it "math" (which might contain theoretical computer science, etc.). To devise a useful taxonomy you need a goal: what does the taxonomy help us achieve? If the goal is to help people understand the relationships between fields, and find and practice related fields, and discover multidisciplinary fields, then we can align it around that.

One other concern I'd mention is that human knowledge is growing quickly. No person can master "all of" math or computer science. There are certain areas that greatly excite me, and others that don't. I think we are painting with too large a brush if the classification we use is as broad as "math" vs. "computer science".

A strong foundational education will start with groundwork in theory while mixing in elements of practice. Theoretical computer science most definitely includes a foundation in "regular" math, and absolutely is math. There are other branches of computer science besides theoretical computer science, though, which include practical concerns involving how to design efficient machines, or operate machines efficiently. This stretches into computer engineering and software engineering.

Imagine if we at least differentiate computer science and computer engineering

I agree that these are different subjects. Whether they warrant different degrees by a university, or different schools, etc. is a question that has no easy answer. New fields are born and old ones die or are absorbed into others. There will be no single timeless answer to a choice like that. From my perspective, I'd expect computer engineering to take an approach centered on circuits and electrical engineering, whereas a computer science curriculum for the same topic might focus more on algorithms, data structures, and software. This gets back to the multidimensional spectrum again. These fields all intersect with each other. As the field becomes so large that students can't learn a reasonable amount about the most common topics, then it makes to split into smaller fields.

Computer science, on the other hand, is not well defined.

Why do you feel that computer science is not well defined? If by well defined you mean it does not have a border that includes subjects while excluding others, then you're probably right. Theoretical computer science is math, and so computer science includes math. What kind of definition would make you feel like it's well defined? I think Wikipedia has a pretty good outline of the disciplines within theoretical and applied computer science. Keep in mind that there may be no one right answer to this question for all purposes. How a university wants to organize its education may be influenced by different factors than the way an industry invests in research. There may also be multidisciplinary studies that do not firmly fit into any one area, being too much of a mix of both to make sense to just one group or the other.

/r/compsci Thread Parent