I've graduated and I'm looking to apply to a Ph.D. program in computer science. However, during my undergraduate years I did not take math courses other than the ones required for the CS major (i.e., discrete maths and algorithms). Thus I haven't taken a college course in calculus/statistics/linear algebra/probability, which I am aware is essential training for CS Ph.D. students. I also haven't taken an operating systems course since it wasn't required for the major and I opted for a different set of CS courses.

The reason for this was that I did not consider applying to graduate programs at the time, and chose to take courses in other unrelated departments to fulfill requirements for my second area of study. However, I am currently taking an online MOOC in calculus and linear algebra to increase my technical knowledge.

Although I have good grades in my CS courses and research experience, I'm wondering if this would be considered a red flag that I should address in my statement of purpose. If so, what would be a good way to do it?

Alternatively, would it make sense to apply for a Masters program to get more coursework under my belt before applying to a Ph.D. program?

2 Answers 2


Lack of mathematical training is a gap, but not what I would consider a red flag, if you have strength enough in other areas. The key is whether I, evaluating your application, would think: "This person can't handle math" vs. "This person did other things besides math."

It is definitely a good thing that you are increasing your training: a MOOC will likely not make a big difference on paper, but if it's making a real difference for you intellectually, that matters too. Furthermore, a good mental mathematical tool-kit will make your life easier in many ways (including detecting when you shouldn't believe something just because it has math).

As for the question of whether to start with a Masters: that really depends on where you are and where you are trying to go. For example, in the US, many Ph.D. programs literally or effectively start with a Masters, so it might be redundant (though the MOOCs or any other prep work will allow you to do less remedial work as part of it). In Europe, on the other hand, most Ph.D. programs assume you already have a Masters, so it's pretty mandatory to start there. Another thing that you might consider is to apply to both, starting with the Ph.D. if you get in, and burnishing your credentials in a Masters first if you don't.

  • I'm looking to apply to programs in the US. Should this be something I should explicitly address in my SOP.
    – anon
    Apr 5, 2015 at 23:30
  • I personally would not, but instead emphasize your areas of strength.
    – jakebeal
    Apr 6, 2015 at 0:42

I was in your shoes at one point. Here's what happened: I was accepted to a very good computer science graduate program, with a letter that identified two specific courses that I would need to have under my belt before starting the program the following fall. I was strongly encouraged to take those two courses in the summer prior to starting their program.

That's what I did -- those two courses were offered in the summer session at the state school near where I lived.

Also note that there are lots of varieties of computer science PhDs. Some really don't require or use much math. Some are totally the opposite. Some are in between.

Alternatively, would it make sense to apply for a Masters program to get more coursework under my belt before applying to a Ph.D. program?

Unlike in physics, in computer science, the main difference between being a master's student and being a PhD student is how long you stay in the department.

In short, I would advise you to apply to schools that interest you ASAP. If they don't send you a letter advising you about what to take over the summer (as they did in my case), you could contact them (after you've been accepted) to ask some specific questions.

In the meantime, read some catalogs. Each course will have its prerequisites listed. I think you'll soon be able to appreciate what I'm saying -- that not all flavors of graduate level computer science studies require a lot of math background.

Oh, I forgot to say -- the admissions committee will look very carefully at your transcript. They will be able to figure out if you have any problematic gaps based on that.

Regardless of exactly where you end up next year -- I think you will probably enjoy learning to do proofs. Linear algebra will be fun and rewarding for you. Probability might be a good course to take too.

  • What courses were you suggested to take? And what area of CS are you working in? I'm looking to apply to systems related (networking) fields, so there wouldn't be much math there. However, on the application pages for a lot of CS PhD sites they strongly imply that applicants (in general) should have taken basic math courses e.g. calculus and linear algebra.
    – anon
    Apr 5, 2015 at 6:56
  • 9
    -1 For "in computer science, the main difference between being a master's student and being a PhD student is how long you stay in the department". I have no idea what you're talking about.
    – Nobody
    Apr 5, 2015 at 9:18
  • 2
    In physics, you apply for a PhD program. Leaving after a masters is in some sense admitting to a measure of defeat. Not so in Computer Science. In CS, you can apply for a PhD program and leave with a master's without losing face; you can apply for a master's program and when you're done with the Master's, proceed with the PhD program of studies. It's more flexible. Apr 5, 2015 at 9:35
  • 6
    This varies enormously between departments. Some CS master's programs are in no way preparation for a Ph.D. program (professional master's programs). Some are and function more or less as you've described. Some are but have different standards (and many master's students end up rejected from the Ph.D. program). And when Ph.D. students leave with a master's, they often don't lose face in the outside world because a CS master's degree is a common credential, but they may lose face within the department. Apr 5, 2015 at 15:29

You must log in to answer this question.