You are here

Undergraduate Research Assistantship (URA) program

The David Cheriton School of Computer Science offers opportunities to exceptional students through the Undergraduate Research Assistant (URA) program that allows students to earn $600 a term for part-time research with a faculty member. The money is paid once near the end of the term.

Faculty members post openings each term so interested, eligible students can apply. Students can also contact faculty members if they are interested in specific research areas to see if a URA opportunity might be available.

Any student who has completed their second year in the Faculty of Mathematics with an average of at least 80% is eligible. Preference is given to students enrolled in Computer Science major plans. A student can only do one URA per term. A student cannot be on a co-op term while doing a URA.

Spring 2015 positions

Title: Enhancing a Main-Memory DBMS

We are looking for up to three students to fill URA positions to work on a main-memory database management system. The system is mainly coded in common lisp, but also has components written in C, Bison, Flex and csh. It is a "compiling" DBMS that has a simple extensible runtime and operates by translating SQL-like data manipulation requests directly to C code that interfaces with this runtime. The underlying data model is a generalization of the relational data model in which, among other things, arbitrary inheritance hierarchies may be declared.

During the course of the project, students will increase their familiarity with a range of topics, among which: semantic data modelling, query optimization, A* search, transaction compilation, legacy data integration, rule-based translation and source code synthesis.

Ideal applicants will have a solid background in algorithms and data structures, and a particular interest in program translation. Experience with programming in a functional style would also be an asset.

Interested students should contact Grant Weddell (

Title: Computational Finance using GPU/Multi-core Systems

One or more URAs are required for the project. Option pricing is one of the central activities in computational finance. In practice, it is important that one can obtain the solutions fast and accurate. The research project is to explore new computing technology in order to solve the equations from computational finance fast, and ideally in real time. The project will particularly focus on GPU/Multi-core implementation of the computational methods in finance.

Students working in this project are preferred to have background in: calculus and linear algebra, numerical computation, and programming experience in C/C++. They will be involved in: 1) GPU implementation (e.g. CUDA, OpenCL) of numerical methods for computational finance, and/or 2) user interface with Excel spreadsheet. Students are expected to write up the final results including the documentation of the code developed.

Interested students should contact Justin Wan (

Title: State Complexity of Regular Language Operations

This URA involves research on regular languages and finite automata. The project is theoretical, but may involve some programming and computation. A short written report is required at the end of the term. It is helpful if the student has taken CS 360 or is taking it in the Spring term. Many of my URAs come back for a second or third term and often end up publishing papers on their projects.

The state complexity of a regular language is the number of states in the minimal deterministic finite automaton recognizing the language. Of particular interest is the state complexity of regular operations. For example, if K and L are regular languages of complexity m and n, respectively, then mn states are sufficient to recognize the union of K and L, and mn states are necessary in the worst case. However, if K and L are finite, then mn - (m + n) states are necessary and sufficient for their union. There are many interesting subclasses of regular languages for which the state complexity of some operations is an open problem. The objective of this project is to solve some of these problems.

A CS and mathematics average of at least 85% is required. The URA should not interfere with your course work.

Interested students should email Dr. J. Brzozowski (

Title: WeBike project

Two URAs are required for the WeBike project, which is a fleet of 31 electric bikes that have been extensively instrumented to produce approximately 300 MB of data every day ( 

1. Web architect

In this role, a student will enhance a flask-based website with a MySQL backend that provides data analytics to project participants. The goal is to improve the site's performance and usability. Prior experience in Python and MySQL is necessary; a background in Flask is desirable.

2. FitBit integrator

The WeBike platform has an embedded Samsung Galaxy that can be paired with a FitBit. In this role, a student will work on integrating the WeBike platform and Samsung Galaxy to make FitBit data available to participants on their personalized website (see above). Prior experience in Android programming is necessary; a background in embedded systems is desirable.

Interested students should email S. Keshav (

How do I apply?

There are three forms that must be fully completed and returned to Simone Paull. Please email ( before you come to MC 4036 to ensure she is available.

A faculty member must sign and fill out the account number on both the URA form and the Casual or Additional Pay Request form.

Casual or Additional Pay Request form

  • For Dates Worked, enter the start and end dates (the first school day and last non-exam day).

Note: International students must have a Social Insurance Number (SIN) to be paid. To get a SIN:

  • A faculty member must fill out and sign the linked in memo.
  • The student must take a valid passport, study permit, and the completed memo and application form to a Service Canada Centre. For the application form and instructions, see

For more information, please contact:

Simone Paull
Office: MC 4036
Phone: (519) 888-4567 ext. 36826