The lab is constantly looking for talented candidates for various programs/positions, including PhD, MCS, undergraduate student research assistants (USRA), and TA/markers. Please note that hiring strongly depends on the number of existing lab members, my availability, and available funding to support incoming students. Please read the details mentioned below before contacting me.

Table of contents

1. Research overview and projects

We research related to Software engineering topics (specifically software design and architecture, code quality, refactoring, technical debt, and program comprehension) and machine learning techniques for software engineering applications. To give you a better idea about what we do, take a look at some of our research projects described below.

  • Next Generation Software Quality Analysis and Refactoring: Source code analysis, code quality issue identification, and refactoring have been explored extensively in the last two decades. Despite the progress, the existing methods and tools lack efficiency, rigor, extensible support for issue identification, and comprehensive support for potential refactorings. We aim to explore the next generation methods and tools by combining traditional approaches with machine learning-based approaches to improve the state-of-the-art in code analysis and refactoring.

  • Bots4SE: Bots for Software Engineering Applications: Software development is complex. The complexity is further amplified by complexity introduced by the domain, scope, large teams, and a variety of development methods, tools, and technologies. We aim to explore the role of automated bots, including conversational bots, to reduce the complexity and improve the productivity of software developers.

  • Program comprehension for decompiled code: Decompiled code, especially from stripped binaries, is difficult to comprehend. There are various applications, including in the domain of software security and maintenance, that can get benefitted from the potential advancements in the program comprehension methods for binaries. We aim to explore the role of machine learning and natural language processing to improve the program comprehension tools and techniques for binaries.

If these projects do not really interest you, consider DalSEL (lead by Prof. Paul Ralph) and RAISE (lead by Dr. Masud Rahman) within the CS department at Dalhousie University.

2. Apply for PhD

Are you wondering whether to do a master's or PhD? If yes, you are not alone. Many students after completing their bachelor's degree wonder about the same question. Just to be clear, you don't need a master's degree to start a PhD. You will need the following to apply for PhD at the SMART lab.

  • A Master’s or bachelor’s degree with a "good" academic record in computer science, software engineering, computer systems engineering, information systems, or a similar discipline.
  • A cumulative GPA equivalent of at least 3.7 out of 4.3 (about 3.4/4, 8.5/10, or 17/20) in your most recent degree.
  • Evidence of research aptitude, such as one or more peer-reviewed publications (or posters or presentations) in good relevant conferences, journals, or workshops.
  • English proficiency score (for instance, IELTS 7 or higher in all categories).

2.1 Funding

Funding is an important aspect of hiring graduate students. If you already have funding (from your company or a govt. organization, for example) and are just looking for a supervisor, contact me. If not, keep reading further.

Canadian citizens and permanent residents should apply for the Canadian Graduate Scholarship (typically due at the beginning of October). All applicants should apply for a Nova Scotia Graduate scholarship, through the harmonized scholarship process (typically due mid-January). Our guide for PhD applicants explains how to apply for these awards.

3. Apply for Masters

3.1 Self-funded Masters

Most MCS students at Dal are self-funded. If you plan to self-fund, apply here as soon as possible. The official deadlines are June 1 for Canadians or April 1 for international students. You don’t have to contact prospective supervisors first. Your application should speak for itself. There is always space in my lab for enthusiastic and diligent self-funded MCS students. You will receive the same mentoring and opportunities as scholarship-funded students. I will try to help you find RA and TA work, but it’s not guaranteed.

Masters of Applied Computer Science (MACS) students do not need to have a supervisor. However, if you are interested in developing an application (either for research or entrepreneurship purposes) or contributing to the ongoing research projects, contact me.

3.2 Scholarship-funded Masters

Do not email me to ask for a scholarship; that’s not how it works. You apply for scholarships through the harmonized scholarship process (typically due mid-January). Canadian citizens and permanent residents should also apply for the Canadian Graduate Scholarship (typically due at the beginning of December). Most successful applicants have a GPA of at least 3.7/4.3.

4. Becoming an undergrad research assistant

Exceptional undergrads interested in research should apply for an Undergraduate Student Research Award (USRA). The deadline is usually around the end of January. Keep an eye out for announcements in December and information sessions in December or January. Both domestic and international students are eligible (domestic USRAs are funded by NSERC; international USRAs are funded by the faculty).

The USRA includes a 12-week full-time paid internship in the supervisor’s lab. Preference is given to second- and third-year students. A USRA is a great lead-in to an honours project. There is always room in my lab for USRA recipients. If you are thinking of applying for a USRA, let me know by mid-January and we’ll discuss topics.

5. Apply for TA position

If you are a student at the Computer Science Department, Dalhousie University, and would like to be a TA or a marker for the courses that I teach, please use this form to express your interest. I do not entertain any email communication related to TA/marker positions.

Finally, contact me if the above information doesn't answer your questions. You may remind me if you don't receive a response from me after waiting at least one week. If you are still waiting to receive a reply even after that, it implies that, most likely, I do not see a good overlap in the research interest between you and the rest of the lab.