I just finished my BSc Hons. in Mathematics and CS from one of the leading research institutes in India (Not IITs). Now I'm going to continue my masters in CS. I like ML. But I haven't done any proper course. I wish to apply for PhD in this area. Can anybody tell me a detailed idea about the courses that I need to take so that I can apply for PhD in US or Europe?

  • 1
    There is no expectation that you must take advanced courses in subfield X as an undergraduate in order to get a PhD in subfield X in the US. But it certainly couldn't hurt to take a course called "machine learning".
    – JeffE
    Aug 3, 2016 at 4:10
  • "I haven't done any proper course" - Don't even worry about courses. They might be neccessary during BSc but since you have finished the basic ones just borrow the books and lock the door. Get the basics down and take notes. The courses will just slow you down.
    – dan
    Jul 3, 2017 at 12:55

3 Answers 3


Can anybody tell me a detailed idea about the courses that I need to take so that I can apply for PhD in US or Europe ?

PhD programmes in the US and Europe are significantly different. While a PhD in Europe expects you to have a fair idea of what you intend to research, the US universities allow you to take courses to learn - quite similar to what the IITs follow.

What courses to take largely depends on where you are studying, right? You cannot take a course if it is not offered.

An example Data Analytics course is at https://volgenau.gmu.edu/program/view/20521

Basically, you want to learn a couple of programming languages - Python (with scikit-learn) is good, take a course on statistics (and learn R programming). A core course in Machine Learning (teaching decision trees, neural networks, clustering etc.) and few courses on database systems. You need to know SQL and also NoSQL systems. Try MySQL and MongoDB, for example. These should generally give you the pre-requisites.

Also, just learning theory is not enough - one needs to also do practical work. For that, I would suggest learning Linux and having the ability to spin up VMs and setup a system with Hadoop etc. Cloudera provides a VM to get started, and so does MapR. Virtualbox is a good free virtualisation software.

You also need to decide what field of ML you want to go in further. This would depend on whay you want to learn ML - the reasons would be your own. Of teh sub-fields one could look at pattern recognition, audio recognition, predictive analytics, classification systems etc. You should then do your Masters work on that. IMHO, it would make sense to look at small, real world problems and try to solve them with ML to build a portfolio, then tackling something huge. If you are able to solve small but significant real-world issues, you would have a much better chance of landing the paid scholarship.

To get an idea about opportunities available in the UK, you can join the BIG-DATA@jiscmail.ac.uk mailing list. Social media researchers can join mailing lists of the Association of Internet Researchers at http://aoir.org

Note: Before or after down-voting this answer please leave some rationale as to why you do not think this is appropriate advice.

  • This is good advice, but it seems more geared towards someone who is going straight into industry. It seems to me that a lot of academic researchers in ML focus on the theory and application, but don't need to know anything about SQL.
    – Hobbes
    Aug 2, 2016 at 21:32
  • The OP has not mentioned whether (s)he wants to get into academia or industry. Even if the end goal is getting into academia, if the person wants to get funding (s)he has o be useful to the school where one is doing research. Nothing is as useful as being able to crunch data productively. Also, frankly if you do not know how existing data systems (SQL) work, how will you do work on NoSQL? Mere theory will not help in production See: Lin, J., & Ryaboy, D. (2013). Scaling Big Data Mining Infrastructure: The Twitter Experience. SIGKDD Explorer Newsletter, 14(2), 6-19. doi:10.1145/2481244.2481247 Aug 3, 2016 at 3:31
  • Okk... I asked the question thinking about doing PhD. How much emphasis should be given on doing databases and learning linux?
    – supernova
    Aug 4, 2016 at 7:15
  • @supernova: depends on what you want to do during and after your PhD, how hands-on you want to be, and what is the reason for doing a PhD. In my opinion these are skills that one would need to be familiar with. You can either learn them during your Mastera - ensuring that your Masters work is good and you get admission into a good PhD course, or you can have these skills forced upon you during your PhD. Aug 4, 2016 at 12:15
  • 1
    Again, I am going to give some different input. For the PhD specifically, there is no exception that you will necessarily enter knowing anything about databases, linux, or any specific tools. In the US, you will be competing against others who are applying while they are still in undergrad. The expectation is that you have the CS and math background to become a solid researcher in your field. Database skills can be picked up quickly during the PhD or even in your first job.
    – Hobbes
    Aug 4, 2016 at 17:42

Look at specific program requirements. PhD programs in the US are designed to teach you what you need to know, for the most part. Your job is to become comfortable with CS and some stats before you enter. For example, here is what Carnegie Mellon posts as their 'requirements' for entering the PhD program:

' Unofficially, we recommend a high level of comfort with math (particularly linear algebra, probability, and proofs) and computer programming (at the level of an undergraduate degree in computer science, although many of our applicants get the necessary experience without majoring in CS). It is possible to fill in some of this background on the fly, but you will be working hard to do so! In addition, the program is very competitive, so successful applications always stand out in some way from their peers -- for example grades, research experience, or recommendation letters.'

I think SACHIN GARG's advice is very applicable to those with MS looking to find an industry job. For academia, it will depend more on your sub-field, like SACHIN says. For example, if you go into academic epidemiology, you may never have to write a line of SQL. If you get a job as a bioinformatics data scientist, you almost absolutely will.


Aside from having a general background in Math and CS (which you do), PhD programs often ask why you want to join. When you say "I like ML" it is useful to be able to justify your claim. It doesn't have to be a formal course but having some familiarity with the subject will most certainly help. I recommend doing an online course to get a feel for the area & decide what exactly you might want to work with (you can change your decision later but you should have some concrete ideas/examples in your head).

I learned ML on Coursera and highly recommend it (the class is taught by Andrew Ng, one of Coursera's cofounders). However, there are many other courses, so pick the one that appeals to you the most. Good luck!

You must log in to answer this question.

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