12

I have heard in many places, from highly qualified people, whom I can't remember the name to cite at the moment, that computer science is mostly related to math. However, looking at the actual computer science curriculum in UK universities, I find something different.

For example, here is the CS curriculum of Warwick university UK in 2023 only as example, (its very similar in other UK ones like Leeds). I see only minimal overlap with it and a mathematics degree. In fact, the overlap doesn't seem to go beyond topics which comes in first year in a mathematics degree.

How exactly are mathematics degrees and computer science degrees related? Or are they not related at all?

12
  • 9
    I have no idea what you mean by a "spurious overlap". And some of the Warwick second year modules seem to me to be mathematics-heavy. And the Warwick course emphasises the fact that a strong background in Mathematics (A* at A-level) is a pre-requisite. Dec 30, 2023 at 15:23
  • 6
    One think you may be missing is that there are some sub-fields of mathematics that have simply migrated from the math department into the computer science department. I notice Warwick has a module on "Formal Language Theory". I think if you looked at the materials for that you'd recognize that it's a mathematical sub-field, it's just that math departments leave it to the computer science departments these days. Dec 31, 2023 at 4:29
  • 8
    "Supposed to be" is one of those phrases like "allowed to" which is so often used in the passive voice, that people forget verbs have subjects. Counter-question: who supposes that CS courses are basically like math? And more importantly, is their supposition reasonable and/or correct?
    – kaya3
    Dec 31, 2023 at 14:08
  • 19
    Just because something isn't part of a mathematics degree, it doesn't mean it isn't math.
    – Helena
    Dec 31, 2023 at 16:03
  • 3
    In the comment above you say "A levels it not even "real" mathrmatics imo " and I think here is where we find your problem. You've got a specific idea of what mathematics is and, when something doesn't conform to that narrow view, you dismiss all else. Jan 1 at 14:18

8 Answers 8

37

Computer Science, like many other academic subjects studied at higher levels, is a term that covers a very broad range of studies that include both theoretical and practical topics. As a result different computer scientists specialise in different genres within the wide range of topics focusing on that which interests them. As a consequence different schools of Computer Science include different mixes of academics and offer different mixes of computer science in their taught curricula.

Such variety is also represented here on Stack Exchange, where we have Computer Science, Theoretical Computer Science, Software Engineering, and many many other sub-genres that would come under computer science.

Some academic departments are mathematics and theory focused, some are digital electronic focused, some are programming and software focused and so on. As a potential student or researcher you can find a place that has the mix of specialisms that suits your needs and interests. There are plenty of computer science departments that have a very low mathematical course content; but equally there are some with a highly theoretical mathematical content (but still being computer science).

So yes: in some places similar subjects would overlap between a maths freshers course and a computer science course. In other places not so much, but there may be overlap with an electronic engineering course. Some place may have overlap with a business degree and so on. In every case computer scientists would know where the boundary of the computer science part is located, but it would be hard to specify to an outsider.

We'd know computer science when we see it.

3
  • 8
    Though even in the most math focused CS departments, there is likely to be a lot less overlap with a math BSc course than 'basically math' would imply, as the areas of maths a CS course will focus on are very different from those most BSc maths degrees focus on. Dec 30, 2023 at 19:09
  • 14
    @user1937198 On the other hand, noncommutative geometry is also "basically math", and yet there is pretty much no overlap between a noncommutative geometry course and a math BSc course. So "basically math" and "overlapping with a math BSc course" appear to mean two different things.
    – Stef
    Dec 30, 2023 at 22:52
  • Convince me, s’il vous plait, you’re not a chattroll. Jan 3 at 4:06
33

Taking a look at the available modules, I see something entirely different. Math-heavy or purely mathematical modules are many, and feature in all three years. The misunderstanding might be due to lack of experience on your part: you should know that topics like algorithms, data bases, machine learning, and principles of programming languages are mathematics, and I mean this in the most literal way (you will learn theorems and have to prove stuff).

The small overlap with the modules of the Department of Mathematics is due to the fact that most computer scientists won't use differential geometry, and most mathematicians work in fields other than theoretical computer science.

I did my maths PhD in Warwick and was TA for Discrete Mathematics I and II to first-year computer science students through all four years. I guarantee that the maths we did was entirely rigorous. Warwick has some renowned theoretical computer scientists (including a couple of my co-authors) whose work is entirely mathematical. It also has DIMAP, which holds an excellent discrete maths seminar.

If you want to do discrete mathematics, you'll be spoiled for choice. If you'd rather go into tropical geometry, the maths department is for you. And if you wish to avoid mathematics altogether, you may have a hard time reading CS at Warwick.

2
  • 2
    Indeed, at my defense of my PhD—in computer science—committee members asked me questions about Gaussian elimination and Bernstein polynomials. And my dissertation is a series of theorems and proofs (and algorithms, I’m pleased to say). Jan 1 at 13:45
  • Just a minor remark, as it isn't the main point of your answer and I agree with you, but even tropical geometry isn't as far from discrete mathematics as it might appear at first glance - see overlapping work by Joswig and others on tropical combinatorics, for instance.
    – J W
    Jan 2 at 10:24
26

This is over simplifying but:

CS is math the way statistics is math and some branches of economics are math. Also maybe operations research, actuarial science and some other areas. Here are reasons these disciplines are math.

  1. Do they do proofs of the same kind of form as mathematicians do? Yes.
  2. Is probability an essential part of their discipline? Yes.
  3. Do they deal with graph theory? Yes.
  4. Do they care about optimization? Yes.
  5. Do they focus on abstractions? Yes.

Are they different than math?

  1. Do they use data? They do, math does not.
  2. Do they make testable predictions about the real world? They do, math does not.
  3. Do they code? Yes. Sure some mathematicians do too, but plenty just do the required course and move on.
  4. Do they care about math ideas like trees, groups, etc? Some do. But having one of those specific interests is much more likely to be seen in math.

You could also ask if math really is philosophy or if philosophy is really math, but that's a different discussion.

12
  • 10
    I upvoted for the overall logic, but I do have interrogations regarding individual points. Regarding point 2. in "different than math", I find it a bit unclear what is meant. Math predicts that the sum of angles in a triangle is going to be 180°, and that if a triangle ABC has a right angle at A then AB^2 + AC^2 = BC^2. Those are predictions about the real world. Math also tells me that if I cut pizza slices with an angle a such that cos(a) = 1/2, then the pizza is going to have 6 slices; that's a prediction about the real world which I use regularly in my real life.
    – Stef
    Dec 31, 2023 at 10:20
  • 3
    Could you clarify what you mean by "tree" in point 4. of "different than math"? I've seen decision trees in operations research, and lots of binary trees in computer science, and parse trees or "abstract syntax trees" when studying programming language compilers and interpreters, and "tree" in graph theory is a connect acyclic graph, but I'm unsure what "tree" you mean that is "much more likely to be seen in math" than in computer science or operations research.
    – Stef
    Dec 31, 2023 at 10:22
  • 2
    @Stef the examples you give are deterministic; you know the exact values, so you're able to calculate the exact result. I think most people here would think of "predictions" in a context where there's data with uncertainty, stochasticity, etc, where you don't get exact answers. I could definitely see someone doing pure math thinking of predictions the way you do, but anyone doing anything statistical is going to have a different definition for it.
    – anjama
    Dec 31, 2023 at 13:51
  • 5
    @anjama I find your distinction about predictions unhelpful. Measurement tools have [statistical] uncertainties, people cutting pizza have uncertainties, even triangles based on Euclidean space have uncertainties which are less uncertain when we account for our distinctly Non-Euclidean space. Which brings me to the real point: We absolutely use math to make predictions about our world, and when we find they aren't working, we make new math. If you were not on Academia, I might have to think harder before disagreeing with you, but the Academy studies everything.
    – user121330
    Dec 31, 2023 at 18:33
  • 3
    Math absolutely does make predictions about the real world. Math predicts how much one can earn on a fixed rate bond, how many hours it will take to travel 400 miles at 50 mph, and whether you'll run out of fuel doing that. If that sounds trivial, that's because it's done too often to notice.
    – Therac
    Jan 1 at 5:26
10

One thing to bear in mind is that the separation between math and computing programs increases (making them more distinct) over time. Obviously computing started in mathematics departments, and in many places now that's been spun off into its own department, etc. So it's possible that somewhat older academicians will maintain a perspective that CS is just a branch of math more firmly than is the case on the ground today.

As an example, I'm on staff at a joint Mathematics and Computer Science department, teaching in both programs, at a two-year community college in the U.S. (frequently ranked in the top 5 nationally). Up until about 6 years ago our CS program still required all of the following within the 60 credits -- Calculus 1-2-3, Discrete Mathematics, Statistics, Linear Algebra, and Differential Equations, which indeed perfectly overlapped the core sequence in the math major. (Meanwhile, math majors had the option to take the exact same CS programming courses, or else classes in Finite Math, Set Theory, and/or Vector Analysis). In 2017 the need for Differential Equations in CS was cut, and then sometime in the last four years the Calculus 3 requirement was removed (partly due to admin pressure for reduced credits and to accommodate prerequisite-lacking incoming students).

So even in just the last few years I can see this trend playing out. I can easily imagine there are faculty in my own department teaching just math who may not be aware of those changes in the subject matter plate-tectonics.

2

I think that some history of the topic is relevant here, and would help to clear things up a bit. Before I launch into anything, I would like to point out that the "subject hierarchy" is not fundamentally a tree structure: There are connections and cycles that make the whole concept muddy. For example, a Biology department may offer a Statistics course.... is it Biology, or is it Statistics, or is it many things at once?

The term "Computer Science" is a very recent development. My grandfather could not have signed up for a course called "Computer Science" when of school age. However, he might reasonably have signed up for a course that taught many concepts easily recognizable as "Computer Science". Algorithms, Complexity Theory, Logic, etc are all topics that have been studied, perhaps not under those names, long before the use of the term "Computer Science". In general, these topics simply fell under the umbrella of "Mathematics", which is a much, much, MUCH older concept. Notably, all of the "founding fathers" of "Computer Science" were not "Computer Scientists" (naturally, since the term was not available), they were, in many cases, "Mathematicians".

In this light, one can begin to look for aspects of a "Computer Science" education that are founded upon things that are generally considered to be "Mathematics". Algorithms, Complexity Theory and Logic are notable examples. Even basic concepts in programming are largely the product of the study of Logic (think IF/THEN, AND, OR, variables, functions). Even though you may be taking a "Computer Science" course, you are learning about many topics that have been bootstrapped out of "Mathematics", with a thin coating of computer-y-ness painted on.

1

From a math point of view, once you figure out how to program a Turing machine to do something, you've solved the computational problem. Obviously that's not the perspective that computer scientists have.

While abstract principles of data manipulation are an important part of Computer Science, they are hardly the end of it. Programmers (and we can get into a discussion of the difference between programming and Computer Science, but I'm going to put that aside for this answer) have to deal with not only theory, but also practice. They have to deal with the physical limitations of what is actually implementing algorithms. If you take df.sum(), and it returns the sum for axis 0, but you want the sum for axis 1, what do you do? The math answer is take the transpose, then take sum(). The CS answer is to feed in axis=1 as a parameter. Big-O notation is a mathematical concept that people generally think of being CS, but in reality, if you have a choice between a O(e^(n/googol)) algorithm or a O(n^googol) one, the exponential function is clearly superior in practice.

CS also involves human being in a way that math doesn't. Programming isn't just about writing a program that does what you want, it's about writing a program that others can understand and adapt to new situations, and it's about understanding and adapting programs that others have written. You can't "prove" ASCII from mathematical axioms. It's something that has developed by humans for humans. CS is all about building and interacting with frameworks to facilitate working together.

1
  • From a math point of view, once you figure out how to program a Turing machine to do something, you've solved the computational problem. --- I'd go even further, at least for mathematicians who are not constructivists, and say that once you can prove that a program for a Turing machine exists to do something, then ... Jan 3 at 14:56
0

In academia, many professors tend to focus on the math behind computer science subjects (e.g. theory) because math does not change often. However, compilers, algorithms, programming paradigms, and computer languages evolve. This evolution carries significant changes that requires constant learning, something that may be overwhelming to faculty given their tight agendas with grant writing, teaching, advising, leading research projects, writing research reports, and publishing research papers.

0

ABET explicitly states:

Basic Science: The EAC considers computer science to be engineering science, and NOT basic science. It is therefore an engineering topic.

as ABET-accredited programs have basic science, mathematics, and engineering credit load requirements. This places computer science topics explicitly in the engineering camp.

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