<p>I would say there is no "one best/most appropriate route" to becoming a theoretical computer scientist, so it is more a matter of your personal tastes, and even what <em>part</em> of theoretical computer science you are most interested in, <em>which you may not even know yet</em>. I know of great TCS researchers who started out in pure math, and great TCS researchers who started out in CS or (even!) EE. </p>

<p>(And by the way, to the commenters: I know plenty of good TCS researchers who more or less abhor programming, and I also know plenty who are not only great programmers, but great software engineers.)</p>

<p>Whatever route you take, if you think you are really interested in TCS then you should immerse yourself in it, especially to try to find out which parts of it you are really interested in. Introductory classes on algorithms (many of which are purely theoretical and involve no programming, if you so desire) or the theory of computation are good places to start, and beyond that it is a matter of reading, asking professors for references and pointers, sitting in on introductory TCS grad classes if you have the opportunity, etc. From that point of view, your particular degree doesn't matter so much (unless e.g. if you do a mathematics degree your university would perversely prevent you from taking a course on algorithms or theory of computation).</p>

<p>However, it also sounds like it is still so early in your potential research career that it would be healthy to question <em>why</em> you are interested in TCS (even asking this question can lead you on a path to discovering exactly what parts of TCS you are really interested in, and give you better motivation for your future work), and to expose yourself to plenty of other topics to see if your true interests end up being elsewhere.</p>

CC BY-SA 3.0
2014-03-28T15:34:54.443Z
I totally agree with Joshua's answer. I simply add that beyond the *theoretical* answers you can get, you have also to adapt to the local context, and there are in France some specificities to take into consideration. Btw, I know pretty  well the French system from inside so feel free to directly ask me if you wish (you'll find my contact informations in my profile).
Bruno
CC BY-SA 3.0
2014-03-28T17:46:21.690Z
Fine answer. There was the misunderstanding about programming which I
thought necessary to react to (I did not downvote, and I can even
prove it), as I believe it is useful to the OP. Other than that, I am
always uncomfortable answering such questions because the OP usually does not
give any information about his level, that would help focus the
answer. Is he still in high-school? Or what did he do at university
level? So it is just more work to answer for lack of context. - - - - - - - - I think *code-monkey* is insulting and should be used with appropriate care (am I wrong?)
babou
CC BY-SA 3.0
2014-03-28T15:18:42.413Z
2014-03-28T15:18:42.413Z
Joshua Grochow
<p>I want to go to grad school in theoretical computer science.
I don't like programming. 
I am in France.</p>

<p>Should I pursue a bachelors in math or in computer science?</p>

CC BY-SA 3.0
2014-03-28T07:04:38.363Z
There's a world of difference between a monkey coding C++ and a human coding in Agda. In any case, at this level the important thing is who your advisor is going to be, not what programmer you will officially enrol in.
Andrej Bauer
CC BY-SA 3.0
2014-03-28T09:43:30.020Z
Why do you want TCS rather than just Mathematics, if you do not like programming. Many TCS people are also good programmers, and being a good programmer is nothing as unworthy as you make it sound with your derogatory words. The day you are as bad at programming as Ken Thomson, Dennis Ritchie, Don Knuth and Leslie Lamport (to name just a few I have in mind), we can talk again about it.
babou
CC BY-SA 3.0
2014-03-28T11:18:40.063Z
$\text{(Programming : Arithmetic)}$ **::** $\text{(Algorithms : Algebra)}$ **::** $\text{(TCS : Pure Mathematics)}$. Research isn't a hierarchical ladder to climb, but you're more likely to be able to do it *well* if you do some foundational exercises. It is *possible* that your personal vision of mathematics gives you enough insight into computation that doing exercises in programming may not be necessary (thinking of results that rest on number theory or graph theory here), but even then it is **still** likely to be helpful, because it will give you intuitions for ways to solve problems.
Niel de Beaudrap
CC BY-SA 3.0
2014-03-28T12:12:59.163Z
Do the downvoters care to explain their votes or comment on how to make the question better?
usul
CC BY-SA 3.0
2014-03-28T12:58:27.473Z
Not a downvoter, but his question is strangely formulated. *Why* does he want to study TCS in particular, what interests him? Why does he imagine that pure mathematics might be helpful? Might he be better off researching pure mathematics but tending towards the complexity of testing certain mathematical properties? And is it programming in itself that he finds distasteful, or the priorities of his instructors (an emphasis on industrial application perhaps)?
Niel de Beaudrap
CC BY-SA 3.0
2014-03-28T13:52:33.670Z
There is no hierarchy in science, research areas and type of work,
only very varied contributions towards a common goal. It is too often
forgotten that, if it had not been for the painstaking work of
Tycho-Brahe building precise instruments and spending night after
night measuring the sky with greater accuracy than ever before,
Johannes Kepler and Isaac Newton might not enjoy the fame they have
today. Closer to France, physicist George Charpak got his Nobel prize
in physics for building instruments to better observe particles.
babou
CC BY-SA 3.0
2014-03-28T14:03:03.137Z
@usul Do not be mistaken,the downvotes predate the comments. It is easier, faster and less risky. A question is already better when it is disparaging to no one. The other point is that the OP seems to have little knowledge of what is covered by TCS, ad of its relations with programming. So the question should probably be more open ... as some are, and take less for granted.
babou
CC BY-SA 3.0
2014-03-28T16:57:02.050Z
You might also be interested in these related questions: http://cstheory.stackexchange.com/q/17684/129, http://cstheory.stackexchange.com/q/3881/129, http://cstheory.stackexchange.com/q/8780/129, http://cstheory.stackexchange.com/q/2571/129, http://cstheory.stackexchange.com/q/149/129. (Actually, on seeing those questions, I am now rethinking whether maybe this question is just as on-topic as any of those...)
Joshua Grochow
CC BY-SA 3.0
2014-03-29T05:01:43.857Z
@Josh, I think it got closed because of the way the question was stated. It looked as some undergrad who doesn't like programming without stating any good reason (probably he didn't do well in programming) but wanting to go to grad school in TCS again without stating any reason (e.g. why not grad school in math? will he like TCS?). It is not even clear if he is still in high school or if he is in a university. And there is no reason his feelings about non-theoretical or theoretical CS won't change next year.
Kaveh
<soft-question><advice-request>
Mathematics degree for Theoretical Computer Science?
Balbitus
# Mathematics degree for Theoretical Computer Science?

(Asked by: username_0 on 2014-03-28)

I want to go to grad school in theoretical computer science.
I don't like programming.
I am in France.

Should I pursue a bachelors in math or in computer science?

**Tags:** soft-question, advice-request
> **Comments:**
> **username_1**: There's a world of difference between a monkey coding C++ and a human coding in Agda. In any case, at this level the important thing is who your advisor is going to be, not what programmer you will officially enrol in.  
> **username_2**: Why do you want TCS rather than just Mathematics, if you do not like programming. Many TCS people are also good programmers, and being a good programmer is nothing as unworthy as you make it sound with your derogatory words. The day you are as bad at programming as Ken Thomson, Dennis Ritchie, Don Knuth and Leslie Lamport (to name just a few I have in mind), we can talk again about it.  
> **username_3**: $\text{(Programming : Arithmetic)}$ **::** $\text{(Algorithms : Algebra)}$ **::** $\text{(TCS : Pure Mathematics)}$. Research isn't a hierarchical ladder to climb, but you're more likely to be able to do it *well* if you do some foundational exercises. It is *possible* that your personal vision of mathematics gives you enough insight into computation that doing exercises in programming may not be necessary (thinking of results that rest on number theory or graph theory here), but even then it is **still** likely to be helpful, because it will give you intuitions for ways to solve problems.  
> **username_4**: Do the downvoters care to explain their votes or comment on how to make the question better?  
> **username_3**: Not a downvoter, but his question is strangely formulated. *Why* does he want to study TCS in particular, what interests him? Why does he imagine that pure mathematics might be helpful? Might he be better off researching pure mathematics but tending towards the complexity of testing certain mathematical properties? And is it programming in itself that he finds distasteful, or the priorities of his instructors (an emphasis on industrial application perhaps)?  
> **username_2**: There is no hierarchy in science, research areas and type of work, only very varied contributions towards a common goal. It is too often forgotten that, if it had not been for the painstaking work of Tycho-Brahe building precise instruments and spending night after night measuring the sky with greater accuracy than ever before, Johannes Kepler and Isaac Newton might not enjoy the fame they have today. Closer to France, physicist George Charpak got his Nobel prize in physics for building instruments to better observe particles.  
> **username_2**: @usul Do not be mistaken,the downvotes predate the comments. It is easier, faster and less risky. A question is already better when it is disparaging to no one. The other point is that the OP seems to have little knowledge of what is covered by TCS, ad of its relations with programming. So the question should probably be more open ... as some are, and take less for granted.  
> **username_5**: You might also be interested in these related questions: http://cstheory.stackexchange.com/q/17684/129, http://cstheory.stackexchange.com/q/3881/129, http://cstheory.stackexchange.com/q/8780/129, http://cstheory.stackexchange.com/q/2571/129, http://cstheory.stackexchange.com/q/149/129. (Actually, on seeing those questions, I am now rethinking whether maybe this question is just as on-topic as any of those...)  
> **username_6**: @Josh, I think it got closed because of the way the question was stated. It looked as some undergrad who doesn't like programming without stating any good reason (probably he didn't do well in programming) but wanting to go to grad school in TCS again without stating any reason (e.g. why not grad school in math? will he like TCS?). It is not even clear if he is still in high school or if he is in a university. And there is no reason his feelings about non-theoretical or theoretical CS won't change next year.  

---

## 1 answers

### Answer by username_5 on 2014-03-28. Score: 4

I would say there is no "one best/most appropriate route" to becoming a theoretical computer scientist, so it is more a matter of your personal tastes, and even what *part* of theoretical computer science you are most interested in, *which you may not even know yet*. I know of great TCS researchers who started out in pure math, and great TCS researchers who started out in CS or (even!) EE.

(And by the way, to the commenters: I know plenty of good TCS researchers who more or less abhor programming, and I also know plenty who are not only great programmers, but great software engineers.)

Whatever route you take, if you think you are really interested in TCS then you should immerse yourself in it, especially to try to find out which parts of it you are really interested in. Introductory classes on algorithms (many of which are purely theoretical and involve no programming, if you so desire) or the theory of computation are good places to start, and beyond that it is a matter of reading, asking professors for references and pointers, sitting in on introductory TCS grad classes if you have the opportunity, etc. From that point of view, your particular degree doesn't matter so much (unless e.g. if you do a mathematics degree your university would perversely prevent you from taking a course on algorithms or theory of computation).

However, it also sounds like it is still so early in your potential research career that it would be healthy to question *why* you are interested in TCS (even asking this question can lead you on a path to discovering exactly what parts of TCS you are really interested in, and give you better motivation for your future work), and to expose yourself to plenty of other topics to see if your true interests end up being elsewhere.

> **Comments:**
> **username_7**: I totally agree with Joshua's answer. I simply add that beyond the *theoretical* answers you can get, you have also to adapt to the local context, and there are in France some specificities to take into consideration. Btw, I know pretty  well the French system from inside so feel free to directly ask me if you wish (you'll find my contact informations in my profile).  
> **username_2**: Fine answer. There was the misunderstanding about programming which I thought necessary to react to (I did not downvote, and I can even prove it), as I believe it is useful to the OP. Other than that, I am always uncomfortable answering such questions because the OP usually does not give any information about his level, that would help focus the answer. Is he still in high-school? Or what did he do at university level? So it is just more work to answer for lack of context. - - - - - - - - I think *code-monkey* is insulting and should be used with appropriate care (am I wrong?)  

---

