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.

Winter 2017 positions

Title: Internet of Drones (IoD)

Internet of Drones (IoD) is an Air Traffic Controller architecture for drones. It is what it takes to finally make drone package delivery (say your groceries) and other applications possible. We are actively pushing toward completing our simulator and our physical demonstration with many drones involved.

We are looking for highly motivated, ambitious team players who want to work on a project that breaks new ground. If you're that person, we encourage you to join us and help by working on the software development for the simulator and if our progress allows, controlling of the real drones via our algorithms through wireless network. We are looking for talented students who can produce high quality code and are proficient in programming with Python. 

Interested and eligible students should email Prof. Raouf Boutaba with the subject line “URA applicant for IoD” along with your unofficial transcript and CV.

Title: The Next Generation of Recommender Systems

Recommender systems are prevalent in our day-to-day life. They intelligently recommend desirable options to us (e.g., books in Amazon, movies in Netflix, Hotel in TripAdvisor, etc.), which are consistent to our own taste or preferences. One of the main challenges in any recommender system is learning and understanding user preferences (e.g., which genre of movie the user likes, or which type of hotels the user is looking for). We are designing new methods and interfaces for understanding and eliciting user preferences. Our methods not only assist users to more accurately reveal their preferences but also help recommender systems to make more informed recommendations.

We are looking for a motivated and curious URA to pursue this research with us and be part of bringing the next generation of recommender systems alive. The applicant should have an operational knowledge and practical experience of web development and be an excellent communicator and team worker. For technical knowledge/experience, the applicant is expected to have experience in:

  1. HTML, Javascript, and web design.
  2. Python and its relevant web frameworks such as Django.
  3. MySQL

Interested and eligible students should contact Kate Larson ( or Amirali Salehi-Abari (

Title: Perceptions and Effectiveness of Crowd-training Instructors

I am looking for a URA to pursue research in the area of training for crowdsourcing. Crowdsourcing is a form of online distributed computing where tens, hundreds, or thousands of people (i.e., workers) perform a specific task in exchange for monetary compensation. The vast majority of crowdsourcing tasks train workers by supplying them with a set of static training examples. However, this form of training likely insufficient for many complex tasks that either require domain-specific expertise or are composed of many sub-tasks. In this project, we are interested in investigating the effectiveness of a training tool that allows a worker, or set of workers, to be taught by a recording of a person that the workers deceptively believe to be present. We are specifically interested in understanding (1) how workers perceive their instructor and (2) how the effectiveness of the instruction changes with the perception of the instructor. The goal of this project is an academic publication. 

This work will be mostly research-oriented with occasional web development. Applicants should have solid knowledge of web-based programming (e.g. JavaScript), a scripting language (e.g. Python), and be comfortable with reading and writing academic publications. Knowledge of web frameworks (e.g. Django) is also useful. Although not necessary, an understanding of statistics and experimental design is desired.  

Interested students should contact Dr. Edith Law ( or Alex Williams (

Title: Pricing Models for Cloud Services

Cloud service providers such as Amazon charge fees for using different machines instances from their infrastructure-as-a-service offering.  I am looking for a URA to study current pricing models and to analyze and propose a new model for cloud pricing.  A strong background in statistics/applied math is required. 

Senior undergraduate students should email Khuzaima Daudjee at

Database for Specialized Optometric Records

Data collected by specialized optometric equipment is available as comma-separated files, which are currently manipulated through spreadsheet software to produce patient-specific clinical reports. Through previous URAs, we have built a web interface and relational database backend for managing data collected from one of the optometric measurement devices. We’d like to continue to design and implement a federated database system that provides access to such data repositories in a clinical setting.

The first task for this URA is to extend the front end to provide informative data visualizations and to produce comparative reports. We also wish to extend the database to support additional optometric devices, adapting the relations and creating software to load spreadsheet data into the database and produce additional reports.
The computer science aspects of the work will be supervised by Prof. Frank Tompa (CS).  Prof. Kristine Dalton (Optometry) will provide sample data and help to specify the content and user-interface requirements of the project.
Familiarity or experience with using Python, the Django framework, MySQL, and GitHub is a definite asset.

For more information please contact Dr. Frank Tompa (

Title: Cache Management for Graph Database Systems

I am looking for a senior URA to study caching protocols in graph database systems.  The task would be to understand existing cache management protocols for an open source graph database system such as Neo4j and to then design, implement and test an improved cache management scheme for graph database workloads. 

Senior undergraduate students interested and comfortable with working and building systems (operating systems, distributed systems, database systems) should email Khuzaima Daudjee at

Title: Privacy Vulnerabilities on Android

We have developed an app that analyzes the network traffic of all apps on a smartphone in order to detect leakage incidents, where an app sends sensitive user information across the network

In a previous URA, a UI that informs users of leakage incidents was added to the app.

The first goal of the proposed URA is to thoroughly test the app and UI with several applications and address any issues that may arise so that the app can be released on Google Play. The second goal is to add additional features to the app, such as providing more detailed information about leakage incidents or coming up with simple ways to distinguish between legitimate and illegitimate leakage incidents.

Android development experience is required.

Interested students should email Urs Hengartner

Title: Shatter Client for iOS

Shatter is a framework that allows a user's devices to jointly perform cryptographic operations such that the impact of a lost or stolen device remains limited. For example, you need both your watch and your smartphone to initiate an encrypted IM session. A thief stealing your smartphone will not be able to impersonate you. Shatter is implemented in Java and currently runs on Android, Android Wear, and Linux. The goal of this URA is to port Shatter to iOS.

Ideal applicants are experienced iOS developers. Cryptography background would also be an asset.

Interested students should contact: Urs Hengartner

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

How do I apply?

Both of these forms must be fully completed and returned to Simone Paull in MC 4036, Please email to arrange a time.

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

International Students need an SIN # to work in Canada

Please refer to the Student Success Office for this information:

For more information, please contact:

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