last day (15 days later) » 

19:21
60
Q: Why do Computer Science degrees contain a high proportion of mathematics?

JimmyAbout 17 years ago I attended a top 10 UK university to study for a degree in Computer Science. Mathematics had never been a particularly strong point for me. However I (just) had the required A-Level qualification to be accepted for the course without any issue. After two terms I dropped out ...

Computer Science is simply applied math. You have a set of starting conditions and a problem you want to solve. You have a set of rules you can use to get to your desired ending condition. Bonus points for elegance along the way.
You already said what it is used for: Roles where you are designing complex software based on mathematical concepts. This includes most tasks of the form "here is a problem, find a solution (that is efficient, stable, based on well-known results,...)". When doing CS, you have a wide theoretical knowledge of concepts and algorithms you can apply. When you learn to code, you have experience in this language. In both cases, you need to learn the other part for most jobs in the software sector; it stands to argue which one is easier to do on your own and which one is better taught by a professor.
Note that you are talking about a software engineering role, and comparing it to the requirements of a computer science programme. I would argue that a CS programme is indeed a wrong choice for somebody hoping to end up in an engineering role, especially when developing close-to-user (or close-to-market) software. However, since the number of science and research oriented positions is relatively small (even the industrial ones), it is likely that CS graduates nevertheless end up in developer or engineering position. Might be biased as my University programmes did reflect this :)
Many people make the reasonable critique that too many people are funneled into Computer Science programs, when they should be in Software Engineering programs instead. By analogy: It would be not a good fit if people who wanted to be Engineers only had access to Physics programs (i.e., preparing people to be scientific researchers). For the use of the math, see perhaps the essential CS analytic tool: computational complexity theory and Big O notation.
The requirements for a Computer Engineer (CpE) were not significantly different than Computer science from a math perspective. I received a minor in CS since I had to take all the lower level courses and no other math courses were required if I had wanted to do a double major. I agree that most of the math I took hasn't been used in my day to day responsibilities but I've had to dabble in a few areas which required that background. It would have taken me longer to spin up if I didn't have that foundation. I think most of the maths courses were required for ALL engineering disciplines.
19:21
You stated your intend of developing software. Computer Science is as much about Computers as Astronomy is about Telescopes. And since the unis don't care what you later do with the degree while they want to aquire people who can do research, so they teach things required for research.
Looking through a syllabus of one university and talking to a friend at another, both studying "Informatica" (which should normally be "Computer Science") in The Netherlands, I found the opposite — less maths and more business than I expected. Misnamed degree programmes.
The word computer science have nothing to do with computers like geometry no longer is about measuring the earth. Computer science is a social construct but to get something else than traditional computer science then you need to find a place where e.g. programming languages are seen as language constructions. I think the answers that say computer science is applied mathematics comes from those that, a priori, think less philosophically about it.
@kathy - this XKCD illustrates the situation very well. xkcd.com/435 - And math is applied philosophy.
@CramerTV Computer Engineering and Software Engineering are two very different fields.
"You stated your intend of developing software. Computer Science is as much about Computers as Astronomy is about Telescopes. And since the unis don't care what you later do with the degree while they want to aquire people who can do research" Universities (at least in the UK!) certainly do care about graduate outcomes. The employability of graduates is a major selling point. Let's not kid ourselves, the vast majority of students - 90% - get an undergraduate degree so they can get a job. And honestly, who can blame them when they're paying the amount they are?
19:21
@Kathy, you are of course correct. But I nor the OP mentioned SW Engineering. My point was simply that the computer science curriculum and the computer engineering curriculum at my alma mater were nearly identical from a math perspective. And further, most of the advanced math I took was common to ALL engineering disciplines. As an aside, there was no SW Engineering degree at my college 22 years ago when I graduated and there still isn't today.
"If people are going into roles which require that level of mathematical knowledge, what are those roles?" I design programming languages; I use theoretical computer science concepts every single day at work, and I have had multiple weeks where I did nothing but read research papers. In particular right now I'm working on programming languages for inferring probability distributions implied by control flow. My mathematical training is barely adequate for this task and I'm spending a lot of time reviewing my statistics notes from 20 years ago.
I strongly encourage all developers to get better at statistics, probabilistic reasoning, and calculus. This is the future of programming.
@penelope Regarding your comment on computer science vs software engineering when I went to university I chose software engineering but both required the same level of math, UCAS points and both taught exactly the same advanced math units. I can see where OP is coming from though as when programming the actual math can be so far abstracted under layers of built in functions that you forget that you are doing it and rarely need to use it at a raw level. (I graduated 10 years ago)
@DanielR.Collins: Thank you for the Physics / Engineering simile. I've had this discussion so many times (being a Software Engineer myself), but never thought of phrasing it like that. Beautiful, it works on so many levels...
A lot of the math I learned in my first two years only started making sense (being used) in my fourth year classes.
@Eric Lippert: It would perhaps help if the OP would tell us just what aspects of math he found "unvelievably difficult". I would think basic statistics, probability, & calculus are... well, basic. Certainly they should (IMHO) be part of ANY STEM degree, and probably liberal arts as well.
19:21
Someone today asked in Stack Overflow how to calculate a percentage in a linear range. I was going to link to it, but he's deleted it (I suspect out of embarassment over such simple math).
Ask Alan Turing :)
@jamesqf I found basic statistics and probability "darn difficult" but basic calculus was a sheer fun... I does not match much with the difficulty of the subject rather than with ability of the teachers and students find the common ground to enjoy the topic.

last day (15 days later) »