I'm applying to PhD programs in two fields and I am interested in the space between two fields, where one is applied to the other.

In my particular case I'm interested in researching Software Engineering as applied to Robotics. I will use a similar but slightly different case as an illustrative example between the fields of Software Engineering and Machine Learning, which I am also interested in. Software Engineering applied to Machine Learning could incorporate better ways, such as new language syntax, to design and implement Machine Learning Algorithms. The opposite would be using machine learning to solve Software Engineering problems, such as automatically discovering database regularities in a data mining application.

Essentially, I see understanding, researching, and being able to apply software engineering to robotics as an area that will expand enormously in the next 10-15 years, much like how software engineering research has expanded as applied to mobile devices and data centers.

I am very interested in both fields, but ideally I would be studying how to apply software engineering to robotics.

  • How do I explain my interests to both Robotics and Software Engineering professors, respectively?

  • How do I communicate why this matters at all, and more importantly why it matters to them?

  • Should I focus primarily on Software Engineering programs, Robotics programs, or both to reach my goal?

Answers based on analogous situations from other fields are welcome.

  • I do not know about robotics, but the combination of Software Engineering and Machine Learning is already pretty well-established in Empirical Software Engineering.
    – xLeitix
    Feb 11, 2014 at 7:33
  • Software engineering + Robotics = Mechatronics = Software Engineering + Electronic Engineering + Mechanical Engineering Feb 11, 2014 at 12:56
  • @xLeitix I took a look and quickly found information on applying Machine Learning to improve Software Engineering. How much is there on applying Software Engineering to more effectively develop Machine Learning algorithms? Feb 12, 2014 at 23:04
  • I do not know about any such work ... But is that actually a research topic? Is the development of machine learning algorithms so special that it requires specific engineering support?
    – xLeitix
    Feb 12, 2014 at 23:07
  • @xLeitix Thanks for the great question, you've helped me find the keywords I've been looking for! Algorithm Engineering is what I'm thinking of. I believe that rather than being special, both machine learning and robotics represent typical examples of fields that could benefit from algorithm engineering support. Feb 12, 2014 at 23:26

4 Answers 4


I know little about either of these fields, but will try to give a generally applicable answer.

I think your best bet is to find an advisor who already has some appreciation for the intersection of these two topics. Convincing someone who only works on one of them that they are important together -- and that he/she should supervise a thesis involving both -- may be difficult. However, since the fields you mention can often be found within the same university department (computer science), the latter approach is also possible.

To decide which type of programs you should look at, ask yourself in which field will I innovate? If you will apply standard software engineering techniques to do something new in robotics, focus on robotics. If you will devise novel software engineering ideas that are useful with respect to existing robotics applications, then focus on software engineering. Of course, the answer is rarely clear cut.

Important: if you're not substantially innovating within either field, it may be difficult to convince a committee that you deserve a Ph.D. (even though the combination may be innovative). You can't usually get away with work that is worth half of a Ph.D. in each field.


I think David Ketcheson's answer is the right way to approach it.

One thing that I'd like to add to it is that you might not be that original: there are plenty of interdisciplinary programs that do this sort of heavy collaboration between fields, there could already be a program that focuses on what you want (or something close to it).

Example: Machine Learning is the intersection of Statistics and Computer Science. There are Statistics departments that do ML research, there are CS departments that do ML research, and Carnegie Mellon University has and entire Machine Learning department.


As David Ketcheson suggested, the ideal scenario would be to find an advisor who works in both fields. But even if you find one, he/she will probably have preferences on one topic or the other. Both fields are extremely wide and highly "trendy".

So, I believe it comes down to which field you would like to go more in-depth. Either find a highly specialized advisor in Robotics with some knowledge/applications in Software Engineering, or the opposite.

From my perspective (as a Mechanical Engineer), I would suggest to go for in-depth research in Robotics, which has quite sophisticated dynamics, control and solid mechanics, and couple your research to Software Engineering, with for example the design of an efficient graphical interfaces for control purposes or advanced image processing techniques for trajectories planning.

These are just examples, as I said before, both fields are extremely wide in terms of possibilities, so it is up to you and your advisor to find a middle-ground that suits you both.


Bridging two topics is more complex than a simple PhD devoted to a single topic. You must be lead by a professor who is also highly interested in and actually helps with your research plan, not just "allows". Professor should take care to make a plan of the suitable PhD research project from this idea.

So start from finding such a supervisor and drop the idea if you cannot.

You must log in to answer this question.

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