Information for Prospective Graduate Students
Table of Contents
- Before Contacting Me
- Contacting Me
- Things to Avoid [i.e., How to Guarantee that Your Application is Ignored]
- Formally Applying for Admission
- Co-op Option for Graduate Studies
- Other Useful Information
- Information on C++ and Programming
Thank you for your interest in my research program. If you are considering applying to study under my supervision, please read carefully all of the information in this document.
I am currently looking for new graduate students to supervise. Applicants should have:
- strong programming skills; and
- a degree in electrical or computer engineering, software engineering, computer science, or a related discipline.
My research interests are quite broad. There is, however, one unifying theme behind all of my work, namely, a strong interest in the implementation of ideas/techniques/methods in software. For this reason, applicants should have a strong interest in programming and also have flexibility in terms of the particular area of their research project (since I work in a number of different areas). The one thing that I can guarantee is that your programming and software-development skills will improve very substantially as a result of working in my research group, due to the nature of the research projects undertaken in my group.
Information about my research can be found in the Research section of my web site. I would recommend that you look at some of the recent publications from my research group in order to understand the type of projects that are done in this group. A complete list of the publications from my research group can be found in the Publications section of my web site. All of the projects undertaken in my group have a very strong software component. Therefore, it is critically important that applicants enjoy programming and have strong programming skills. The programming language used in my group is most typically C++. Extensive information on C++ and programming are available through the links provided in the Information on C++ and Programming section.
If you would like to study under my supervision (and you have read the Before Contacting Me section), please contact me by email. My email address can be found in the Contact Information section of my web site. If you contact me before formally applying for admission, I can provide an initial assessment of your suitability for my research group before you apply. When you write to me, please use a subject-line for the email that is something like "Requesting Supervisor for XXX Program", where "XXX" is the program of study of interest to you (i.e., M.A.Sc., Ph.D., or M.Eng.). This will allow your email to be processed more quickly. Please ensure that you include all of the following information in your email:
- a clear indication of whether or not you require financial support for your studies
an indication of the program to which you would like to apply
(e.g., M.A.Sc., Ph.D., or project-based M.Eng.);
if you are interested in a Master's program, please make clear
whether you are interested in:
- only the M.A.Sc. program
- only the project-based M.Eng. program
- either the project-based M.Eng program or M.A.Sc. program, whichever is deemed more suitable for the candidate
- an indication of when you would like to begin your studies (e.g., January, May, or September).
- if you are interested in a Master's program (i.e., M.A.Sc. or M.Eng.): an indication of whether you would like to participate in the Co-op Option
- an indication of whether or not you have already applied for admission in the department; if you have applied, please include your student number (if known)
- an up-to-date curriculum vitae (CV), including a list of any publications
- a copy of all of your university transcripts (in English, unofficial copies are fine)
- if English is not your native language: a copy of a recent TOEFL or IELTS score report
- a copy of a recent GRE score report, if you have one
a detailed description of your computer-programming and
including (but not limited to) the extent of your knowledge in the
- C++ programming language (e.g., what language features have you used and to what extent, what standard library features have you used and to what extent, etc.)
- C programming language
- data structures and algorithms
- Linux operating system
- software build tools (such as Make or CMake)
- version control systems (such as Git or Subversion)
a detailed description of the most challenging programming project
that you have undertaken individually (i.e., on your own); be sure
to provide the following information as well as any other details
that you believe would be helpful:
- What does the software that you developed do?
- Which programming language was used for implementation?
- How large was the source code for the project in terms of lines of code (excluding comments)?
- How long did it take for you to complete the project?
- What aspect of the project did you find most challenging?
- an example of source code for a project that you have written yourself (i.e., not as part of a team) and well demonstrates your programming abilities; the code should be written in C++; if the source code for the project is available in a publically accessible Git repository (on a web site such GitHub or GitLab), please provide the URL of the Git repository instead of trying to send source code directly in email attachments
Please ensure that your name appears in each of the documents that you provide. It is strongly preferred that documents be provided in PDF format (or plain ASCII text format). Avoid using Word and HTML formats if possible. Lastly, be sure to provide all of the information listed above. Not including all of the requested information may result in your application being discarded without further consideration.
The following things are almost guaranteed to result in me ignoring your application and/or emails:
- emailing me repeatedly asking about the status of your application
- repeatedly emailing your application materials to me
- including me as the recipient of bulk emails (e.g., an email that is sent to many potential supervisors at once)
The application process for new students can be completed online. For more details, see the Graduate Students and Records web site.
Some reference materials on C++ and programming that may be helpful include:
- Programming in C++ — The C++ Language, Libraries, Tools, and Other Topics
- Virtual Machine Disk Images for C++ Development Environment
- Lecture Videos for SENG 475 [Advanced Programming Techniques for Robust Efficient Computing (With C++)]
- C++ Lecture Videos