some dots list of dots

Guidelines for Graduate Students Supervised by Dr. Timothy C. Lethbridge

This document is designed to be read by prospective students, new students as well as ongoing students. If you want to be my graduate student, it is very important that you read these and follow them when contacting me. Please note that I delete emails that do not meet these guidelines as I receive hundreds a year. Also, I have unfortunately had to strengthen these guidelines to require submission of an Umple PR, since that is the only way to get the number of applicants down to a level where have time to look at them.

I have written the guidelines so that everybody has an understanding of how I plan to work with graduate students as your supervisor. If you have questions, please do not hesitate to talk to me about them.

The guidelines have been gathered following several years experience supervising students. However, nothing is completely cast in stone. Understanding the guidelines will nevertheless help prevent various kinds of problems. I will modify these guidelines as I learn more about being a supervisor — which means I will continue to modify them as long as I continue to be a professor! I have not always followed all these guidelines in the past because as I learn things, I make changes.

You can read the theses of my past graduate students here. If you are interested in learning more about my research in general, please click here. To see a list of the publications that have been written by my graduate students and myself, please click here

My motivations as I work with graduate students are:

1) To ensure that you, as a student have the highest possible qualityeducation, and

2) To ensure that I, as a professor, get my research done effectively.


To even be considered as a graduate student, I need you to do the following:

  • Learn by yourself how to be a contributor to Umple, and then submit a pull request on one of the ourstanding issues (or possibly raise an issue and submit a pull request on that) including appropriate tests. As a contributor, I will have confidence that you can learn by yourself, have interest in my work and have the skills needed to be a model-driven, test-driven software engineer, in addition to a researcher. Then please wait for me or a team member to iterate with you on the pull request, and get it merged to the master branch and hence into production.

  • Once you have done the above, then email me as follows:

    • A subject line with the phrase: Tclgrad prospective MSc/PhD student YOUR NAME Umple PR submitter ####' where #### is the PR number The Tclgrad phrase is a secret keyword to prove you have read this page, and ensures I will pay some attention to your email. Substitute your name and choose MSc or PhD as appropriate. If you have external funding such as a scholarship, and don't need me to pay you then add the phrase self-funded before MSc or PhD.
    • A paragraph highlighting your education in computer science, software engineering or a related topic as well as any industrial experience.
    • A few paragraphs describing your research interests related to Umple.
    • Which program you are interested in (OCICS, OCIECE, Systems Science, Digital Transformation)

    I receive many hundreds of emails a year asking to be my student, and I just don't have time to read even a small fraction of them. I just simply delete them unless they have that Tclgrad keyword. I file them away for possible (but unlikely) consideration at a later date unless they also indicate an Umple PR has been merged.


What kind of grad students am I looking for?

If you want to be a student of mine, you must have the qualities listed below. It is up to you to show the initiative in order to convince me that you have these qualities:

a) You show enthusiasm about most of the topics of my primary funded research which currently are

• Object-oriented software design with Umple,

• Model-oriented programming and Umple,

• User experience related to the above, and

• Empirical studies related to the above.

• Education of the above.

b) You are eager (not just simply willing) to perform research that fits into my research plan. This includes working on specific subprojects that I have stated I will do in grant proposals, and following the methodology I propose. See my web pages for information about this. Note that, if somebody else is already doing a subproject, then will no longer be available to you.

c) You show that you have your own ideas that fit in with and extend mine.

d) You communicate well with me. This primarily means you listen to and quickly understand my ideas and see my ‘vision’ for the research. It also means you express your own ideas in a way that I find concise, clear and easy to understand.

e) You are eager to work with people in industry. This includes travelling to companies (primarily IBM at the current time), performing a considerable amount of work in companies (e.g. one day a week), and performing techniques such as interviewing, brainstorming, observing users, running experiments with users, training users, videotaping users etc.

f) You have appropriate background in my research areas, and particularly in the area of your research topic. This does not just mean basic computer science, it also means knowledge at the senior undergraduate level of:

• General software engineering

• Object oriented analysis and design

If you are missing one of these areas, then strong background in another area can make up for it provided you study the missing area early in your graduate studies and it isn’t required before you can start basic work on your thesis. In general it is not appropriate for me to educate you in missing areas using ‘directed studies’ courses because it takes too much of my time.

g) You show a willingness to progress rapidly in your studies. In general, I will be reluctant to accept part-time students.

h) You have some industrial experience.

i) You have good grades (A) in programming and software engineering courses.

j) You demonstrate good writing skills. This does not eliminate people whose language is not English — I am more concerned about your ability to express ideas clearly and structure the various sections and paragraphs; this is a language-independent activity. Prospective students should show me samples of their writing.

k) You show initiative. For example, I expect that grad students will have read through all relevant material on my web site before approaching me to be their supervisor.

l) You show good research skills: Among other things, this includes digging up material in the library without being asked, formulating good research plans, evaluating your research well etc.


3. How do I select grad students?

I select grad students based on the criteria listed above, and who have followed the directions. Also they must be acceptablke to the admission committee, and I must have funding for them if they are not self-funded. This is most easy to achieve when the student has collaborated with me by having an Umple pull request accepted or takes a class with me,

If I do not select you, it may have nothing to do with you as a person or your abilities; it might just be that I have no more spaces (I want a maximum of 4-5 students at a time, regardless of whether I am funding them), that your interests and abilities do not match my needs (see above), that our communication styles and personalities do not match well, or that I am unable to evaluate you adequately.

I will never select a grad student who emails me randomly and expresses a non-specific interest in my work. If you want to be my student, you should write something that convinces that all the points above apply.

Finally, just applying to the university and listing me as your proposed supervisor is insufficient, although you must do this if you do want me as a supervisor.


4. How do I support grad students?

I have a fixed amount of money for graduate student support, and this money is for specific projects. If I support you, you have to do the work that was outlined in the proposal I wrote to obtain the money.

I will support (i.e. with money) you only if we agreed that I will do so when you started the program. I will not normally entertain requests from unfunded students to start funding them. This is because I must plan my budget carefully.

Support is always subject to the availability of funds, and you must realize that the grants I receive are subject to renewal and can be cut.

When you agree to be a grad student with me, I will only undertake to support you for the period of time that a grad student would normally take to complete their program (see below). Support beyond the initial period will only be considered if you have made good progress, yet the research has turned out to be more difficult than expected; and in my judgement it is not your fault that you are not complete.

Funding arrangements if you do other work:

I will allow you to do 1 TA (10 hours a week for a term) a year. In addition, I will also allow a PhD student to teach 1 course at just one time in their program. If you want to do any other work, then I will have to reduce the amount of support I give you, since you will not be able to do the work that the funding agency is paying me the money to have done.

Also, working more than the above amounts puts you at severe risk of delaying the completion of your program.

In the following situations, I will review of the money I give you, and possibly cease to fund you or reduce the funding:

  • Inadequate progress (see the time-line below) and/or doing too much outside work.

  • Not fitting your topic with the intent of the funding. Remember your research is part of a larger research plan, and I have to ensure that the larger plan is being adhered to

  • I am not satisfactory that you are doing good research, after several attempts by me to help you get on track.

Funding arrangements while taking courses:

At the beginning of your program while you are taking courses (or working on your comprehensive), it is normal not to be able to make significant progress on your thesis. I will fund you, however, with the understanding that you will continue to study with me when your courses are complete.


5. What will be the time-line of your research?

You will plan your thesis and develop an initial proposal and project plan in the first 4 months of your program.

You will monitor your plan and discuss it with me when changes are needed. Inevitably, changes will be needed as your research leads you in unexpected and interesting directions.

Note that PhD students also have to develop a formal written thesis proposal that will be more in depth (see below).


Duration of Masters Degree:

A Master’s degree should normally take about 20-24 months of full-time work. The national average is 33 months, but I believe this is excessive. Excess time can be caused by such factors as a) a topic that is too uncertain or difficult, b) inadequate communication with the supervisor, and c) doing excessive outside work.

We will work together to ensure you have completed your program in this time; I don’t believe in students taking excessive time.

If I am supporting you, I will support you for up to this 24 months period, subject to availability of funds.

Coursework will normally take you the first academic year; until this is complete, thesis work should progress at 1/3 intensity.

Thesis work will normally become a full-time effort after 8 months (i.e. your first summer) and will take the following academic year as well.


Duration of Ph.D. Degree

A PhD degree should normally take 4 to 4.5 years of full-time work. The national average is 4.5 years.

If I am supporting you, I will support you for up to 4.5 years, subject to availability of funds (although I challenge you to complete your work in 4 years). We will work together to ensure you complete your work in this time.

Coursework and the comprehensive (an exam involving independent study assigned by your committee) will normally take you the first academic year. It is probably easiest to register for the comprehensive in your first summer and write the comprehensive in August. Students find it hard to get on with their thesis while the comprehensive is unwritten. During this first year, thesis work should take about 1/3 of your time.

- Thesis work will normally become a full-time effort after 1 year. After 18-20 months, you should be ready to present your formal thesis proposal to your committee.



You and I should discuss all courses in which you plan to register. You should study the calendar and propose courses to me. I highly recommend the Usability course that I teach!


6. What is my style of supervision?

I like to meet privately with each student about once every 10 to 20 days, especially after your coursework is complete. I will set aside a 3-hour period most weeks for personal discussions with grad students — if you want to take some of this time, then let me know. If I have not met with you for a month, then I will ask to see you.

I don’t mind talking with you at other times, but I reserve the right to say no if I am too busy. I generally don’t like students to come and see me about every little issue, however this might be appropriate when we are working together intensively on some problem.

It is best for us to base our discussions on something you have written — so attempt to write something for every meeting, even if it is just a paragraph describing progress. These things you write for meetings can become part of your thesis.

How do you develop your ideas and how do we agree on a topic?

When you start work, either you or I will propose a research topic, and we will agree, in writing, about what you will do. If you want to change your topic I must agree. Remember that I need to get certain research done to fulfil the requirements of the funding agency.

I will give you orally and in writing any ideas I have about the topic (I will usually summarize these by email so we both have a written record). My ideas may be very concrete or abstract. It is up to you to decide if you are happy with the topic and the information I have given you. If you are not happy, you must seek clarifications and more brainstorming.

You will also get the opportunity to present your ideas regularly to my research group and to get feedback from them.


7. What are the steps in research?

The early part of the research should be spent gathering information. You should search the literature and read as many papers as possible. You should also talk to my industrial research funders such as IBM. Take full advantage of online digital libraries such as those from IEEE and ACM. For campus computers, all papers can be downloaded for free.

Then comes the phase where you experiment with your ideas. Often there will be program design and implementation during this period of time. The choice of programming language is yours, although it should fit in with the infrastructure (see below). Since you will normally be developing rapid prototypes, I recommend using a high-level langauge (i.e. not C or C++) so that you don’t spend all your time programming or debugging.

The final phase is evaluation your ideas; this will normally be both theoretical and empirical (experiments or analysis of observations). It is essential that you use good statistical methods and gather sufficiently large amounts of data if you do empirical work.

These latter two phases will normally iterate. Also, you will continue to gather information throughout the research.

I strongly suggest that you write down paragraphs and chapters throughout your research. That way, after the research is complete you have most of your thesis written. A common problem students have is fear of the writing phase — due to this fear, they drag out the research phase for too long. Also, writing helps organize your thoughts and stimulates you to develop new ideas.

In addition to formally writing about your work as it progresses, you should also keep a handwritten hardcopy lab-book (or a series of such books) where you keep all your informal notes.


8. Other points

Responsibility to work with IBM (or other companies that are funding the work)

For work funded by a company, you must do the following: Work with the company to understand their needs, and then implement your ideas so that real software engineers can test out your ideas. Having real software engineers work with your ideas leads to a form of empirical evaluation provided you systematically gather data during your observations.

Building on the infrastructure

Groups of students working with me developed an infrastructure of software that other students build on and use. This is done at great expense to make it easy for students to then try out ideas. It is important, then, that you take advantage of this investment by implementing your ideas on top of the existing infrastructure. This is important for two reasons: Firstly it means that users are not testing your ideas in isolation; secondly it allows us to give something concrete to those who are funding us.

Note however that graduate students must not end up being just developers. A graduate student should remember that he or she is at all times trying to answer research questions. Development of software is merely a means towards that end.

Even though we are working in a research context, the software we develop should be of good quality. You should particularly focus on maintainability: Other students will have to build on what you have done.

One of your responsibilities when you become a grad student with me is to learn everything you can about the infrastructure. You should explore whatever is stored on my web site and our configuration management system (Subversion) and other tools we use. You should, of course, read all the papers that our group has written (see my web home page).

English grammar, spelling etc.

It takes me a great deal of time to fix the grammar of non-English speakers. Therefore I ask you to find a friend (or pay somebody) to proof-read your work if you know your English is not particularly good. Do this before submitting anything new or that is significantly reworked.

Writing papers

I will normally expect every Masters student to try and write one publishable paper out of their research. For a PhD student I would expect about 3 papers, one of which is in a journal. I would normally be the co-author of these papers since many of the ideas come at least partially from me.

Office space and equipment

Subject to availability of funds I will supply a PC to PhD students in their office when you start work full time on your thesis after the first year, however when it becomes obsolete I may not be able to replace it. (this is another incentive to get done by 4 years). Other students should use my lab if space is available. For many students, I also encourage or require you to spend time working in the facilities of the company that is sponsoring my research (e.g. IBM)

You are responsible for your own progress

I will give you assistance when you ask me, however I will not pester you to see if you are making progress. If I notice that your progress is slacking off, I will sit down and discuss it with you, but the ultimate responsibility remains yours.

Last update to this page: Monday, 16-Nov-2020 09:11:20 EST
Time this document was displayed or cached: Monday, 22-Jul-2024 21:53:37 EDT