Is it acceptable to require a student to use the supervisor's preferred software/tools?

Clearly define what are your goals and constraints, and work from there. What are the things that they need to learn in order to progress further in the field (and someday find a job)? What are constraints imposed by the research project you will be working on?

  1. Goals — if learning a specific piece of software is required to become a professional in your field, then it is a de facto standard and they need to learn it. In this, a specific piece of software is just like a particular experimental or mathematical technique.

  2. Constraints — there are cases where you need to restrict the choice of software to interoperate with others. For example, the student might not be able to choose his favorite programming language for a specific project because he has to use a specific advanced library, which only exists in e.g. Python. Or the project actually is to implement a specific functionality in an existing C++ framework. Or one of the goals of the thesis might be to produce technical documentation to be published in a given format.

  3. Other than that, leave them free to choose whatever works for them. Be clear and upfront about what you advise them to use, and what you are willing to teach them (and what you cannot teach them). For example:

    The choice is yours, as long as your are able to efficiently produce and edit a professional-looking 200-page document with many figures, tables, references and subdivisions, and it adheres to the university guidelines. I myself use LaTeX for writing articles and theses, as many colleagues, and I advise you to do the same. I have little experience with word processors. I can help you if you run into problems with the first one, but will not be able to help if you choose a word processor.

    I once had a student who mastered MS Word to a level that I had never seen, and did a superb job in an efficient matter. It wouldn't have been bright of me to require him to use LaTeX when he knew another tool.


I think it is useful to expose new students, even undergraduates, to the tools of the field. It's beneficial for them to know what some of this "looks like", it's easier for you to help them if they don't have to bring you up to speed on what they're using, etc.

You say there might not be "standard" tools, but are there some tools that are commonly used? Your two examples, LaTeX and Matlab, are both fairly ubiquitous in "applied math-y" fields, so why they might not have to use them in the future, there's a good chance they'll encounter it, or something like it.

The one caveat is that I would have a discussion with the student about their goals and objectives, and make sure the tools you're making them use are tools they will use in the future. As a somewhat personal example, despite the inclinations of some of my collaborators it would have been useless to make me learn how to lay out papers in LaTeX, as the standard for my field is not that, and all that would have accomplished was adding an extra step in before I converted everything to Word files.


I would like to answer this question for the best interest of the student's, not yours.

You are supervising bachelor students. They may go to academia or industry after graduation.

If the student will pursue academic career after he graduates, then you should tell him to use the tools that are widely used in academia because it's for his best interest. I think force is a too strong word. To convince him is what you would do.

However, if he will go to industry, why waste his time to learn something he probably will never use for the rest of his life?

If the student doesn't know what he wants to do after he graduates, it's time for him to think about it now. Isn't it?

Here is my personal experience while I was in industry. I had to produce some document which contained math equations. I wanted to use LaTex. MS word was the tool I was told to use because of maintainability issue (no one else in my department knew how to use Latex). I had to follow the order. Matlab is another story. It's also used in industry.