Undergraduate Student Research Awards

Working in the LCI Lab

One of the most valuable research experiences for an undergraduate student is to be a research assistant. Each year, the department receives a number of research awards that help provide funding for an undergrad student to spend 16 weeks over the summer working full time in one of the department’s research labs, often with the opportunity to publish their work. (See this page for previous projects and supervisors.) This kind of research experience is highly sought after by graduate programs. 

See the following links for details!


UBC Careers Site

Award Categories

The positions are available to 2nd, 3rd, and 4th year students with strong academic records. More information, including eligibility requirements, can be found at the links provided on this page. Watch for in-class and email announcements from the department in January for details and deadlines.

Please see the pages linked below for important details, including eligibility:

NSERC USRA - NSERC Undergraduate Student Research Award

SURE - Science Undergraduate Research Experience Award

WLIUR - Work Learn International Undergraduate Research Award

Before applying, all applicants are required to: confirm both their eligibility to apply and to work, and ensure they have all necessary requirements prepared (ex. Social Insurance Number and permits).

International Students

If you are an international student, you can also apply to participate in research! There are two UBC programs open to international students: SURE and WLIUR (see above for details). 

International students must have a valid Social Insurance Number and be eligible to work on campus for the duration of the award (ex. in the summer). Students will be required to provide any necessary details and documentation upon accepting the award. This is necessary for processing and payment. Students who are offered awards but who do not meet this criteria will not be able to accept. For questions about eligibility, please speak with an International Student Advisor.

How to Apply 

Deadline: February 15, 2019 at 4:00 PM

New Application Requirement: all applicants will be required to apply with a confirmed supervisor. The list of projects and supervisors will be posted on this page in January, and you can use this to approach any of the supervisors listed. Please see the UBC Careers page for some additional tips.

Try to create your own research opportunity! You aren't limited to the projects and supervisors listed below. We encourage you to directly contact professors you would like to work with to find a match. Many professors will be happy to talk to you about the opportunity to hire students at a subsidized wage. You can find our faculty directory here.

Required Steps:

  1. Read the details above and the information at the links on this page
  2. Determine which awards you are eligible for
  3. Contact potential supervisors from the Projects and Supervisors list (see below) or by approaching Computer Science faculty members you would like to work with
  4. Once you have a confirmed supervisor, submit the online application webform by the stated deadline (the webform will become available before the deadline)
    • Before submitting, please ensure that you have read over the online guidelines, eligibility requirements, and webform instructions carefully
    • Make sure to read all of the instruction text in the webform, there may be important details noted below each field
  5. If you are selected for an award: you will then be required to update your webform with additional information/documentation (these fields will become available at that point). See: the 'Awardee' section of the webform
    • When you are applying: please read the webform carefully to ensure you are prepared to accept by providing these details
    • (Your supervisor will also be contacted for required information)

When the department is informed of how many awards are available, a departmental adjudication committee will rank the applications. All applicants will then receive a decision. We cannot provide a timeline for a decision on your application, please do not contact us for updates. Kindly be advised that course instructors, student advisors and departmental administrators and assistants cannot provide additional details, and will not respond to requests for such information.


  • Students can complete the online application (NSERC FORM 202) on the NSERC website by clicking "System Login" or, if you are a first-time user, "Register"
  • Instructions on how to complete the forms can be found on the NSERC USRA website 

For further details, please visit the UBC Student Services website or the NSERC USRA website.

Questions? Review the information and links provided, as these will likely give you the answers to your questions. If you would still like additional assistance, please see our Advising Webform instructions to see if you are eligible to submit a webform request. See: the webform instructions and the 'STUDENT AWARDS (NSERC USRA/SURE/WLIUR)' section.

Projects and Supervisors: Summer 2019

Giuseppe Carenini

Cristina Conati

Charlotte F. Fischer

Ian Mitchell

David Poole

Margo Seltzer

Dongwook Yoon

Giuseppe Carenini

How to get in touch: please contact Giuseppe Carenini to set up a time to talk

Project 1. Interpreting and Comparing NLP models.

The student will be involved in a project at the intersection of natural language processing (NLP) and information visualization (InfoVis). In my research group, we are working on several NLP frameworks for tasks like discourse parsing, text summarization and topic modelling. While developing such systems, it is often useful to compare the output of different methods to assess which one is performing better and why. The student will contribute to the design, implementation and testing of one or more components of an intelligent interface to support the interpretation and comparison of the output of our NLP models.

Project 2. Design and Evaluate Models for Discourse Parsing

The student will be assigned to a research project within the areas of Natural Language Processing (NLP) and Deep Learning (DL). He/She will be mainly working on the open research problem of large-scale discourse parsing, extending recent research in my group. In the NLP group, we are working on several diverse NLP tasks such as text summarization, topic modelling as well as the fundamental task of discourse parsing, which has shown to be beneficial for many downstream tasks such as machine translation and sentiment analysis. To design, implement and evaluate models for discourse parsing, the student will use his/her working knowledge of probabilistic and connectionist machine learning methodologies to help realize systems based on deep neural networks and probabilistic frameworks. The student will be required to work as part of the research team and justify design decisions, test his/her implementations and critically reflect on embedding literature.

Cristina Conati

How to get in touch: please contact Professor Cristina Conati

Project 1. Delivering adaptive interventions for personalization of intelligent user interfaces based on user's eye-tracking patterns

The overall goal of this project is to devise intelligent user interfaces that can track their users’ gaze and use it to predict user states (e.g., user attention level, confusion, engagement, cognitive abilities) relevant to automatically personalize the interaction. We have developped in our resarch lab a platform that can track a user's gaze in real-time, while the user is processing the interface, and trigger personalized interventions based on the user's gaze behaviors.

We are looking for an undergraduate research assistant to implement personalized interventions in visualization-based user interfaces, using our platform. Specifically, the student will implement graphical interventions that can be delivered to users during specific interaction tasks, based on their gaze behaviors. The student may also assist with  implementing functionalities for processing user gaze information, and with training machine learning algorithm to predict specific user states.

The student will work closely with PhD student Dereck Toker and Postdoctoral Fellow Sebastien Lalle.

- 3rd or 4th year undergraduate student in computer science
- knowledgeable in Python and JavaScript
- can document and maintain code on Github

Charlotte F. Fischer

How to get in touch: please email Charlotte F. Fischer

Project 1. Atomic Structure Software

In quantum theory, every observable can be computed, given the wave function which is the solution of a partial differential equation  of high dimensionality. For Uranium with 92 electrons the number of space variables is 276. Variational methods are used for determining approximate solutions. Software for atomic structure calculations based on non-relativistic theory (ATSP), was  started at UBC  in the 1960’s and fully relativistic Dirac theory (GRASP) in the 1980’s. The programming language for these codes  is now FORTRAN77 and the only data structures that are used are vectors, matrices (arrays), and lists. The codes are published and used worldwide. But “modern” FORTRAN has many new features that  makes possible user defined data types and  totally new memory management procedures for more object oriented software. For heavy elements  that make excessive demands on both  memory and computation, parallel  versions are essential. This project will explore the development  of user defined data structures for atomic physics leading to more readable and more efficient research software. Applicants  should be sufficiently familiar with numerical computing and programming languages to be able to learn FORTRAN  quickly and be able to use the Git version control system. 

Ian Mitchell

How to get in touch: please email Professor Ian Mitchell - *please note that these positions are alreay filled*

Project 1. Exploring Mutation Testing as a Method of Numerical Software Verification

A key challenge when testing numerical software is that exact oracles (against which to test) do not exist: Even if one can construct a test case free of approximation, discretization and truncation error, floating point error is present and typically difficult to quantify for all but the most simple of calculations.  Common workarounds typically involve thresholds for "close enough", but choosing the threshold is a somewhat arbitrary process.  The goal of this project is to explore whether ideas from mutation testing might yield more rigorous criteria with which to build confidence in a code.  In the normal application of mutation testing, "target code" which passes all existing tests is subject to random source modification; if the resulting "mutant code" executes and is not caught by at least one test case then the test coverage is incomplete.  This project will explore whether an alternative measure of the mutants might usefully be deployed to catch real bugs in publicly released scientific computing codes.  Applicants should be familiar with numerical computing (for example, CPSC 302, 303, 406 or Math 307, 405) and the use of the git version control system.  Familiarity with one or more open-source scientific computing libraries and/or software testing methods is useful but not required.

Project 2. Numerical Software Development for Differential Equations

Cyber-physical systems are those which involve interaction between computers and the external world, and include many safety critical systems such as aircraft, cars, and robots.  Analysis of these systems typically uses differential equation models for the physical component of the system, because its state evolves in continuous time and space.  Reachability algorithms can be used to verify -- or even synthesize controllers to ensure -- the correct behavior of dynamic systems, and a variety of such algorithms have been designed for differential equation models.  The goal of this project is to demonstrate a new example on, improve the user interface of, validate the implementation of, parallelize and/or add features to one of several software packages used for approximating sets of solutions in order to demonstrate the correctness of robotic or cyber-physical systems.  The Toolbox of Level Set Methods [http://www.cs.ubc.ca/~mitchell/ToolboxLS] is a locally developed example, but others include SpaceEx [http://spaceex.imag.fr/] or CORA [http://www6.in.tum.de/Main/SoftwareCORA].  Applicants should be familiar with numerical ODE solvers (for example, CPSC 303 or Math 405) and Matlab (or SciPy or Julia).  Familiarity with computational optimization (such as CPSC 406) and/or parallel programming (such as CPSC 418) would be useful for some but not all potential subprojects.

Project 3. Collaborative control scheme design, simulation and testing for a smart wheelchair

As part of the AGE-WELL Network Center of Excellence [http://www.agewell-nce.ca] I have a project investigating techniques which would allow elderly individuals with mild cognitive and/or sensory impairments to better use powered wheelchairs.  While it is relatively easy to implement a system in which either the user or the robotic planner chooses the motion of the wheelchair, it is much more challenging to blend these two inputs in real-time and in a manner which is both safe and non-threatening to a cognitively impaired user.  As part of this process, the team runs user studies with the target population and their therapists in long term care centers.  Potential goals for this summer's project include ongoing prototype development and evaluation of collaboration and training interfaces and control policies, development and evaluation of learning methods for predicting behavior of the chair and/or user, data collection and analysis from real-world or virtual trials, or setting up a virtual reality workstation for trials of collaboration control policies.  Applicants should be familiar with C++, Matlab and/or Python, and will be expected to learn and use ROS (robot operating system) to program the wheelchair(s).

Project 4. Design of wheelchair control system

As part of the smart wheelchair project we have developed a prototype embedded system to interface with the wheelchair and allow remote and computer moderated control.  This summer project is focused on redesigning this prototype to reduce complexity and replace commercial products that are no longer available.  The current system uses an Arduino, a small custom analog interface board, a laptop and the old Playstation Move's navigation controller.  The goal of this project is to identify a wireless one-handed controller to replace the Move, identify a microcontroller and/or embedded microprocessor which can replace the current Arduino and accomplish the basic tasks currently performed on the laptop, and possibly replace the custom analog board, as well as packaging the solution robustly enough to survive extended user trials.  Applicants should have experience with digital and/or analog electronics and embedded platforms (such as Arduino, BeagleBoard, RaspberryPi, ...), and will be expected to learn and use ROS (robot operating system) on the software side.

David Poole

How to get in touch: please contact David Poole; (https://www.cs.ubc.ca/~poole/)

Project 1. AIspace2 

AIspace (see http://aispace.org) has been developed by USRA students and grad students over a number of years. Recently USRA students created a Python-javascript version (https://aispace2.github.io/AISpace2/install.html) based on open-source AI algorithms in Python (https://artint.info/AIPython/) created by David Poole and Alan Mackworth. The aim is to integrate the code with interactive visualizations that are easy for students to extend and allow the students to modify the AI algorithms. There are three aspects of the project: the first is to make the current AIspace2 code more modifiable and user-friendly. The second is to translate interactive demos (https://artint.info/demos/) to Python. The third is to develop similar tools for the rest of the AIPython code. Skills required: knowledge of the content of CPSC 322, proficiency in Javascript and Python, the ability to write clear and simple code.

Margo Seltzer

How to get in touch: please contact Margo Seltzer

Project 1. A Parallel Implementation of Certifiably Optimal Decision Trees

Rule lists are a kind of interpretable machine learning model. They can be viewed as a sequence of cascading if statements. For example, there is a widely used data set used to predict if an individual is likely to commit a crime within the next two years. The following model is a model to make that prediction: if (age = 18-20) and (gender = male) then predict yes, else if (age = 21-23) and (priors = 2-3) then predict yes, else if (priors > 3) then predict yes, else predict no. Not only is this a real predictive model, we have proven that it is the best model that can be constructed, given a regularized loss function. In prior work we presented an algorithm and implementation to produce such optimal rule lists.

A rule list is a a specific kind of a more general model called a decision tree. In more recent work, we have developed an algorithm to produce similarly optimal decision trees. However, as the search space of decision trees is significantly larger, this is a much more challenging problem. Our goal for this research project is to develop a parallel implementation of an optimal decision tree algorithm that will allow us to find optimal models for an increasingly large number of features.

Dongwook Yoon

How to get in touch: please contact Dongwook to set a time to talk

Project 1. Mixed-Reality Interfaces for Asynchronous Collaboration in 3D Environments

This study aims to build a virtual/augmented reality (VR/AR) system for annotating a 3D environment with recordings of multimodal interactions (e.g., speech, bodily gesture, gaze), drawing on human-computer interaction approaches. Annotations are basic building blocks of asynchronous collaboration in a shared workspace (e.g., a game director giving feedback to a level designer on a 3D map by commenting on it). However, existing AR annotation interfaces rely primarily on static content (e.g., text, mid-air drawing), which is not as nuanced nor as expressive as in-person communication where people can talk, gaze, and gesture. To enrich and expand communicative capacities of AR annotations, I envisage an AR counterpart of email or Google Docs, where collaborators can record their multimodal performances (e.g., voice, view changes, and hand movements) in a 3D environment and share such rich media-based messages back and forth with other parties. The challenges are as follows: (1) developing an easy-to-use interface for creating and editing the recorded multimodal annotation, (2) designing lightweight interactions for browsing and skimming multimodal recordings, and (3) helping users overcome psychological barriers in recording multimodal inputs (e.g., speech anxiety).


- Successful completion of the introductory computer graphics courses (e.g., CPSC 314)

- (optional) Successful completion of the introductory HCI courses (e.g., CPSC 344 or 544)

Project 2. Natural User Interactions for Video Interfaces

This project aim to build and study novel interface techniques for interacting with videos. As we watch videos daily on MOOCs, YouTube, and SNS, video has become a central medium for education, entertainment, and social interactions.  However, the way we interact with videos has remained the same for decades. How can we go beyond a slider-bar and thumbnails? To support dynamic, semantic, and visual interactions for video browsing, searching, and skimming, we will (1) develop novel interaction metaphors, (2) leverage speech and video recognition techniques, and (3) employ natural interaction capacities of modern interactive devices (e.g., touch and gesture of tablets).


- Strong technical skills including OOP, data structures, and algorithms.

- (optional) Successful completion of the introductory HCI courses (e.g., CPSC 344 or 544)

a place of mind, The University of British Columbia


ICICS/CS Building 201-2366 Main Mall
Vancouver, B.C. V6T 1Z4 Canada
Tel: 604-822-3061 | Fax: 604-822-5485
General: help@cs.ubc.ca
Undergrad program: undergrad-info@cs.ubc.ca
Graduate program: grad-info@cs.ubc.ca

Emergency Procedures | Accessibility | Contact UBC | © Copyright The University of British Columbia