<p>I want to disagree slightly with Dave Clarke and Lev Reyzin.  At least in my department, <strong>PhD admission standards for students with MS degrees are higher than for students with only bachelor's degrees.</strong>  Additional experience <em>can</em> be a disadvantage, if it isn't <em>enough</em> additional experience.</p>

<p>All else being equal, my department expects any applicant with an MS to have a publication, or at least a publishable result, before we will consider them for admission to the PhD program.  (And by "published", I mean in a reputable peer-reviewed web-accessible conference proceedings or journal, not just a master's thesis, internal technical report, student research conference, or <em>The Inaccessible Chinese Journal of Computer Science</em>.)  Working a full time job is unlikely to leave you enough time—or more importantly, enough mental energy—to do publishable research.</p>

<p>Of course, ceterus is never paribus.  We do soften the de facto publication requirement for  MS applicants who have switched major fields.  But then you're in the uncomfortable position of explaining a perceived weakness.  (On the other hand, I'm not sure switching from mathematics to theoretical computer science counts as "major".)</p>

<p>My advice is not to put your eggs in one basket.  <strong>First, talk to people you might work with in the programs you are interested in.</strong>  Let me emphasize the plurals here — talk to <em>multiple people</em> in <em>multiple departments</em>.  Second, in the absence of specific contradictory advice from target departments, <strong>apply to <em>both</em> MS and PhD programs.</strong>  (Some universities, or at least their web forms, stupidly make you pick one or the other, in which case you <em>must</em> talk directly to the admissions office of your target department.)  Sane PhD programs let incoming students from other fields take undergrad CS courses for remediation.</p>

CC BY-SA 3.0
2012-01-08T08:08:36.710Z
Good advice JɛﬀE, it never crossed my mind to apply to both MS/PhD programs. I am glad to know that sane PhD programs let incoming students from other fields take undegrad CS courses for remediation. I'll talk to multiple people from multiple departments as you suggested. Does UIUC allow applicants to apply to both the MS and PhD program?
Quaternary
CC BY-SA 3.0
2012-01-08T13:52:52.930Z
The mechanism at UIUC is to apply to the MS program and declare your intention to continue to a PhD.  The admissions committee sometimes admits such applicants directly to the PhD program.
Jeffε
CC BY-SA 4.0
2020-04-19T18:03:31.800Z
That's very interesting to know
JobHunter69
CC BY-SA 3.0
2012-01-07T19:33:32.203Z
2012-01-07T19:33:32.203Z
Jeffε
<p>If you want a Ph.D. in theory, then you should certainly know algorithms and <a href="https://cstheory.stackexchange.com/questions/8851/how-important-is-knowing-how-to-program-for-tcs">probably should know programming</a>.  On the other hand, I doubt you'll need to know Operating Systems or Databases -- though knowing them never hurts.  </p>

<p>For example, as an undergrad, I majored in CS but I never took OS, and I didn't feel it affected my Ph.D. application (though who knows).  I did take OS to fulfill some requirement in grad school, but I pretty much forgot most of it by now.  I ended up taking most of the main systems courses between undergrad and grad school, but I don't think my research would have suffered had I not.</p>

<p>I'm pretty sure getting the M.S. won't hurt your application, but make sure you're not wasting your time and money.</p>

CC BY-SA 3.0
2012-01-05T22:33:58.597Z
this is why we make fun of ML folks :) - they don't learn databases and don't understand how to scale things :)
Suresh Venkat
CC BY-SA 3.0
2012-01-05T22:56:06.393Z
I took DB and even implemented B+ trees *shudder*.  I remember we discussed something called... scalin... or large da... never-mind, I can't remember. Whatever it was must have gotten overridden by all this cool learning theory :)
Lev Reyzin
CC BY-SA 3.0
2012-01-07T18:47:32.420Z
Strangely, this also is why some of us make fun of DB folks.
Jeffε
CC BY-SA 3.0
2012-01-07T22:44:00.067Z
Can't we all just get along?
Lev Reyzin
CC BY-SA 3.0
2012-01-05T22:02:40.567Z
2012-01-06T16:34:45.847Z
2017-04-13T12:32:28.167Z
Lev Reyzin
<p>I am PhD student also interested in studying theoretical computer science, not really interested in other areas of CS. The route I took was to enter a PhD program in Applied Mathematics. (Pure mathematics may work as well, but this may require more mathematics coursework than you want). This gives a lot more flexibility in courses.  In fact I am taking more TCS courses than I would be allowed to as a pure CS student. My dissertation will be in TCS and I will work with a CS advisor.</p>

<p>I found that this was basically the best way out of the dilemma you are facing.</p>

CC BY-SA 3.0
2012-01-08T08:02:14.633Z
Good advice, I'll look into applied math programs as well as cs programs. I always associated "applied math" with ODEs/PDEs et al.
Quaternary
CC BY-SA 3.0
2012-01-08T16:53:53.180Z
@Quaternary: The applied math programs are intended for ODEs/PDEs. However, these programs often have a lot more flexibility. You can bend these programs into TCS programs, even though that is not their intent.
David Harris
CC BY-SA 3.0
2015-07-13T17:14:07.343Z
Also, you'll never regret gaining a firm grasp of ODEs and PDEs, or even SDEs, etc.  If anything, pure mathematicians, including those working around algorithms or combinatorics, often regret being too weak in such a critical area of mathematics.
Jeff Burdges
CC BY-SA 3.0
2015-07-07T03:20:12.800Z
@DavidHarris May I ask, which is the university in which you succesfully bend an applied maths program into a TCS program?
PALEN
CC BY-SA 3.0
2015-07-07T11:38:31.687Z
@PALEN,University of Maryland. (It has excellent applied math and CS programs)
David Harris
CC BY-SA 3.0
2012-01-06T18:01:36.577Z
2012-01-06T18:01:36.577Z
David Harris
<p>Assuming you have already selected the Ph.D. program you are interested to, my advice is to talk directly with the person that could be your future advisor. He/she knows exactly the theoretical background and practical stuff required for each of the research topics available, so that it will be easier to decide what to do next. </p>

<p>Basically, knowledge of the research topics and their prerequisite skills will allow you to prioritize the material you need to cover. I would cover first algorithms, and then databases, operating systems and programming in one or more languages. This is because you are likely to need algorithms in every research topic, but not necessarily OS, DB and programming unless the topics are strictly focused on these or require an implementation. Again, talking with your future advisor is the key to understand this.</p>

<p>As stated by @Dave Clarke, if you prefer to delay enrolling in the Ph.D. program, this will not hurt: additional experience is never a disadvantage. If you, instead, prefer to enroll immediately, just be prepared for a different kind of full-time studies, taking into account that you do not know something that may be required but you do know better mathematics.</p>

CC BY-SA 3.0
2012-01-05T10:07:41.937Z
2012-01-05T10:07:41.937Z
Massimo Cafaro
<p>I'll concur with JɛﬀE that MS degrees are viewed as "consolation prizes" in the sciences in the U.S. because people usually take them when they fail qualifying exams in Ph.D programs.  And who pays to do an MS when they'll pay you to do a Ph.D directly?</p>

<p>I'd also concur with David Harris that mathematics might prove the most efficient route to doing serious theoretical work, but this depends entirely upon the program.  Ask any math or comp. sci. departments who make offers how they feel about students taking courses outside the department though. </p>

<p>I do recommend that you broaden your interests in more applied computer science of course, but do so by reading something.  There are mathematically entertaining topics around databases, like <a href="http://en.wikipedia.org/wiki/Bloom_filter" rel="nofollow">Bloom filters</a>, as well as fun applied papers, like the <a href="http://css.csail.mit.edu/cryptdb/" rel="nofollow">CryptDB</a> articles.</p>

CC BY-SA 3.0
2012-01-08T05:53:27.357Z
2012-01-08T05:53:27.357Z
Jeff Burdges
<p>There is certainly no disadvantage doing a little more study and some work in the real world before starting a PhD program. Having a broader background is always an advantage, as you have more diverse knowledge to draw on when addressing problems. Working in the real world will make you more grounded, and perhaps will help direct your research to realistic problems (which may then help the world at large).</p>

<p>On the other hand, plenty of people have jumped straight into PhD programs and have succeeded.  You can readily pick up any material you missed (except perhaps the hands-on lab sessions), by reading one or two books in the area. You'll be doing a lot of this anyway in your PhD, so doing a bit of less related reading on won't hurt.</p>

<p><em>In some sense the actual answer depends upon which country you plan to do your PhD in. US-style PhDs are very different from those in other countries (e.g., Belgium, Australia, The Netherlands). US-style PhDs involve lots of coursework in the early years. Some other countries have no coursework in the early years.</em></p>

CC BY-SA 3.0
2012-01-05T11:24:53.750Z
Thanks for your excellent perspective. I found it to be very refreshing. I'm glad to know that experience in industry before a PhD can be advantageous. Your comment made me very opportunistic about my future opportunities.
Quaternary
CC BY-SA 3.0
2012-01-05T15:42:13.413Z
In fact, a US-style Ph.D is functionally an MS superimposed on a European-style Ph.D
Suresh Venkat
CC BY-SA 3.0
2012-01-05T15:57:44.887Z
Which suggests that the OP skip the masters, if (s)he is in the US.
Dave Clarke
CC BY-SA 3.0
2012-01-05T08:59:56.950Z
2012-01-05T08:59:56.950Z
Dave Clarke
<p>I am looking for some advice and feedback.</p>

<p>Background: I am an undergraduate mathematics student, with an interest in theoretical computer science (computational complexity, graph theory, combinatorics). I want to pursue a PhD in Computer Science and focus on theory.</p>

<p>My background is in mathematically intensive areas of computer science, but I lack a more applied background in computer science. Specifically I need to complete courses in Programming, Algorithms, Operating Systems, &amp; Databases as prerequisite work for a PhD program. I cannot fit these courses in before graduation. To remedy this I plan to enter the work force and complete a MS part time (so I can pay for the MS), then upon completion of the MS degree enter a full time PhD program.</p>

<p>Question: Would I be at a disadvantage by completing a MS degree part time, prior to entering a PhD program, as opposed to CS students that enter a PhD program immediately upon the completion of their undergraduate degree? The position I work in would be related to CS and would give me transferable skills to a CS program &amp; may help lead me to better focused research. I am just hoping this path does not put me at any kind of disadvantage (in terms of acceptance to a PhD program). I am interested in doing the MS thesis track, and realize that it may take me a little longer to complete the MS degree (since it would be part time). Upon completion of the MS, as stated, I would enter a full time PhD program. </p>

<p>I am just looking for some feedback and advice. Thanks for your help!</p>

CC BY-SA 3.0
2012-01-05T10:55:12.757Z
if your real goal is the phd and if you want to do it in theory, i am not sure this whole thing with the masters is necessary (maybe it won't hurt, either). if you can spend some time to study OS and databases on your own, you can take the comp sci GRE and apply straight to a phd. also some universities in the US are probably more ok with a strong math undergrad who wants to do theory. but i am curious what mathematical areas of computer science you have studied, without having taken algorithms?
Sasho Nikolov
CC BY-SA 3.0
2012-01-05T11:16:38.803Z
I've dabbled in computational complexity theory, computability theory, discrete (graph theory mostly), & currently interested in cryptography (abstract algebra/complexity aspect). I have a very basic understanding of these things and want to further the depth of my understanding within these fields. But I am mostly open to anything within CS, I want to learn as much as I can. I appreciate your response and your advice.
Quaternary
CC BY-SA 3.0
2012-01-05T15:55:01.600Z
I second the advice to just apply straight to PhD programs. If you make it clear that you are interested in theory, then your math background will help you, and your lack of systems courses won't hurt too much. (Especially if you have taken the CS GRE). You'll have an opportunity to take systems courses in your PhD program -- why waste money on a masters? You should at least apply to PhD programs and see where you get in.
Aaron Roth
CC BY-SA 3.0
2012-01-08T08:00:02.153Z
I understand that if an student wants to pursue a PhD degree, then they should apply directly to a PhD program upon completion of their BS degree, but my question is what if that student were offered a job at a company like Google or Microsoft (a company willing to reimburse the tuition of a MS degree)? I am asking if it would put the student at a disadvantage to work at company like Google/MS for 2-3 years while completing a MS, then quitting to enter a PhD full time.  Most of the responses lead me to believe the answer is "no", but as JɛﬀE pointed out some programs look for publications.
Quaternary
<soft-question><career>
Advice for Graduate School in Computer Science
Quaternary
# Advice for Graduate School in Computer Science

(Asked by: username_0 on 2012-01-05)

I am looking for some advice and feedback.

Background: I am an undergraduate mathematics student, with an interest in theoretical computer science (computational complexity, graph theory, combinatorics). I want to pursue a PhD in Computer Science and focus on theory.

My background is in mathematically intensive areas of computer science, but I lack a more applied background in computer science. Specifically I need to complete courses in Programming, Algorithms, Operating Systems, & Databases as prerequisite work for a PhD program. I cannot fit these courses in before graduation. To remedy this I plan to enter the work force and complete a MS part time (so I can pay for the MS), then upon completion of the MS degree enter a full time PhD program.

Question: Would I be at a disadvantage by completing a MS degree part time, prior to entering a PhD program, as opposed to CS students that enter a PhD program immediately upon the completion of their undergraduate degree? The position I work in would be related to CS and would give me transferable skills to a CS program & may help lead me to better focused research. I am just hoping this path does not put me at any kind of disadvantage (in terms of acceptance to a PhD program). I am interested in doing the MS thesis track, and realize that it may take me a little longer to complete the MS degree (since it would be part time). Upon completion of the MS, as stated, I would enter a full time PhD program.

I am just looking for some feedback and advice. Thanks for your help!

**Tags:** soft-question, career

> **Comments:**
> **username_1**: if your real goal is the phd and if you want to do it in theory, i am not sure this whole thing with the masters is necessary (maybe it won't hurt, either). if you can spend some time to study OS and databases on your own, you can take the comp sci GRE and apply straight to a phd. also some universities in the US are probably more ok with a strong math undergrad who wants to do theory. but i am curious what mathematical areas of computer science you have studied, without having taken algorithms?  
> **username_0**: I've dabbled in computational complexity theory, computability theory, discrete (graph theory mostly), & currently interested in cryptography (abstract algebra/complexity aspect). I have a very basic understanding of these things and want to further the depth of my understanding within these fields. But I am mostly open to anything within CS, I want to learn as much as I can. I appreciate your response and your advice.  
> **username_2**: I second the advice to just apply straight to PhD programs. If you make it clear that you are interested in theory, then your math background will help you, and your lack of systems courses won't hurt too much. (Especially if you have taken the CS GRE). You'll have an opportunity to take systems courses in your PhD program -- why waste money on a masters? You should at least apply to PhD programs and see where you get in.  
> **username_0**: I understand that if an student wants to pursue a PhD degree, then they should apply directly to a PhD program upon completion of their BS degree, but my question is what if that student were offered a job at a company like Google or Microsoft (a company willing to reimburse the tuition of a MS degree)? I am asking if it would put the student at a disadvantage to work at company like Google/MS for 2-3 years while completing a MS, then quitting to enter a PhD full time.  Most of the responses lead me to believe the answer is "no", but as JɛﬀE pointed out some programs look for publications.  

---

## 6 answers

### Answer by username_11 on 2012-01-05. Score: 6 | Accepted answer

There is certainly no disadvantage doing a little more study and some work in the real world before starting a PhD program. Having a broader background is always an advantage, as you have more diverse knowledge to draw on when addressing problems. Working in the real world will make you more grounded, and perhaps will help direct your research to realistic problems (which may then help the world at large).

On the other hand, plenty of people have jumped straight into PhD programs and have succeeded. You can readily pick up any material you missed (except perhaps the hands-on lab sessions), by reading one or two books in the area. You'll be doing a lot of this anyway in your PhD, so doing a bit of less related reading on won't hurt.

*In some sense the actual answer depends upon which country you plan to do your PhD in. US-style PhDs are very different from those in other countries (e.g., Belgium, Australia, The Netherlands). US-style PhDs involve lots of coursework in the early years. Some other countries have no coursework in the early years.*

> **Comments:**
> **username_0**: Thanks for your excellent perspective. I found it to be very refreshing. I'm glad to know that experience in industry before a PhD can be advantageous. Your comment made me very opportunistic about my future opportunities.  
> **username_6**: In fact, a US-style Ph.D is functionally an MS superimposed on a European-style Ph.D  
> **username_11**: Which suggests that the OP skip the masters, if (s)he is in the US.  

---

### Answer by username_3 on 2012-01-07. Score: 8

I want to disagree slightly with username_11 and username_5. At least in my department, **PhD admission standards for students with MS degrees are higher than for students with only bachelor's degrees.** Additional experience *can* be a disadvantage, if it isn't *enough* additional experience.

All else being equal, my department expects any applicant with an MS to have a publication, or at least a publishable result, before we will consider them for admission to the PhD program. (And by "published", I mean in a reputable peer-reviewed web-accessible conference proceedings or journal, not just a master's thesis, internal technical report, student research conference, or *The Inaccessible Chinese Journal of Computer Science*.) Working a full time job is unlikely to leave you enough time—or more importantly, enough mental energy—to do publishable research.

Of course, ceterus is never paribus. We do soften the de facto publication requirement for MS applicants who have switched major fields. But then you're in the uncomfortable position of explaining a perceived weakness. (On the other hand, I'm not sure switching from mathematics to theoretical computer science counts as "major".)

My advice is not to put your eggs in one basket. **First, talk to people you might work with in the programs you are interested in.** Let me emphasize the plurals here — talk to *multiple people* in *multiple departments*. Second, in the absence of specific contradictory advice from target departments, **apply to *both* MS and PhD programs.** (Some universities, or at least their web forms, stupidly make you pick one or the other, in which case you *must* talk directly to the admissions office of your target department.) Sane PhD programs let incoming students from other fields take undergrad CS courses for remediation.

> **Comments:**
> **username_0**: Good advice JɛﬀE, it never crossed my mind to apply to both MS/PhD programs. I am glad to know that sane PhD programs let incoming students from other fields take undegrad CS courses for remediation. I'll talk to multiple people from multiple departments as you suggested. Does UIUC allow applicants to apply to both the MS and PhD program?  
> **username_3**: The mechanism at UIUC is to apply to the MS program and declare your intention to continue to a PhD.  The admissions committee sometimes admits such applicants directly to the PhD program.  
> **username_4**: That's very interesting to know  

---

### Answer by username_5 on 2012-01-05. Score: 7

If you want a Ph.D. in theory, then you should certainly know algorithms and [probably should know programming](https://cstheory.stackexchange.com/questions/8851/how-important-is-knowing-how-to-program-for-tcs). On the other hand, I doubt you'll need to know Operating Systems or Databases -- though knowing them never hurts.

For example, as an undergrad, I majored in CS but I never took OS, and I didn't feel it affected my Ph.D. application (though who knows). I did take OS to fulfill some requirement in grad school, but I pretty much forgot most of it by now. I ended up taking most of the main systems courses between undergrad and grad school, but I don't think my research would have suffered had I not.

I'm pretty sure getting the M.S. won't hurt your application, but make sure you're not wasting your time and money.

> **Comments:**
> **username_6**: this is why we make fun of ML folks :) - they don't learn databases and don't understand how to scale things :)  
> **username_5**: I took DB and even implemented B+ trees *shudder*.  I remember we discussed something called... scalin... or large da... never-mind, I can't remember. Whatever it was must have gotten overridden by all this cool learning theory :)  
> **username_3**: Strangely, this also is why some of us make fun of DB folks.  
> **username_5**: Can't we all just get along?  

---

### Answer by username_7 on 2012-01-06. Score: 4

I am PhD student also interested in studying theoretical computer science, not really interested in other areas of CS. The route I took was to enter a PhD program in Applied Mathematics. (Pure mathematics may work as well, but this may require more mathematics coursework than you want). This gives a lot more flexibility in courses. In fact I am taking more TCS courses than I would be allowed to as a pure CS student. My dissertation will be in TCS and I will work with a CS advisor.

I found that this was basically the best way out of the dilemma you are facing.

> **Comments:**
> **username_0**: Good advice, I'll look into applied math programs as well as cs programs. I always associated "applied math" with ODEs/PDEs et al.  
> **username_7**: @username_0: The applied math programs are intended for ODEs/PDEs. However, these programs often have a lot more flexibility. You can bend these programs into TCS programs, even though that is not their intent.  
> **username_9**: @DavidHarris May I ask, which is the university in which you succesfully bend an applied maths program into a TCS program?  
> **username_7**: @username_9,University of Maryland. (It has excellent applied math and CS programs)  
> **username_8**: Also, you'll never regret gaining a firm grasp of ODEs and PDEs, or even SDEs, etc.  If anything, pure mathematicians, including those working around algorithms or combinatorics, often regret being too weak in such a critical area of mathematics.  

---

### Answer by username_10 on 2012-01-05. Score: 3

Assuming you have already selected the Ph.D. program you are interested to, my advice is to talk directly with the person that could be your future advisor. He/she knows exactly the theoretical background and practical stuff required for each of the research topics available, so that it will be easier to decide what to do next.

Basically, knowledge of the research topics and their prerequisite skills will allow you to prioritize the material you need to cover. I would cover first algorithms, and then databases, operating systems and programming in one or more languages. This is because you are likely to need algorithms in every research topic, but not necessarily OS, DB and programming unless the topics are strictly focused on these or require an implementation. Again, talking with your future advisor is the key to understand this.

As stated by @username_11, if you prefer to delay enrolling in the Ph.D. program, this will not hurt: additional experience is never a disadvantage. If you, instead, prefer to enroll immediately, just be prepared for a different kind of full-time studies, taking into account that you do not know something that may be required but you do know better mathematics.


---

### Answer by username_8 on 2012-01-08. Score: 2

I'll concur with JɛﬀE that MS degrees are viewed as "consolation prizes" in the sciences in the U.S. because people usually take them when they fail qualifying exams in Ph.D programs. And who pays to do an MS when they'll pay you to do a Ph.D directly?

I'd also concur with username_7 that mathematics might prove the most efficient route to doing serious theoretical work, but this depends entirely upon the program. Ask any math or comp. sci. departments who make offers how they feel about students taking courses outside the department though.

I do recommend that you broaden your interests in more applied computer science of course, but do so by reading something. There are mathematically entertaining topics around databases, like [Bloom filters](http://en.wikipedia.org/wiki/Bloom_filter), as well as fun applied papers, like the [CryptDB](http://css.csail.mit.edu/cryptdb/) articles.


---

