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 2016 positions

Project title: State Complexity of Regular Language Operations

This URA involves research on regular languages and finite automata. The project is theoretical, but will involve some programming and computation. A short written report is required at the end of the term. It would be helpful if you had taken CS360, or are taking it this Spring term. Many of our URAs come back for a second or third term and often end up publishing papers based 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 (m+1)(n+1) states are sufficient to recognize the union of K and L, and (m+1)(n+1) 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 subclasses of regular languages for which the state complexity of some interesting operations is an open problem. These include formal language operations inspired and motivated by molecular biology phenomena and processes, such the directed extension (a formal language operation inspired by the naturally occurring phenomenon of DNA strand extension by DNA Polymerase enzymes), and overlap assembly (experimentally, overlap assembly of DNA strands under the action of the DNA Polymerase enzyme is used for gene shuffling). The objective of this project is to solve state complexity problems for some of these operations.

For more information about the project, please email Dr.J.Brzozowski brzozo@uwaterloo.ca or Dr. Lila Kari lila@uwaterloo.ca, and we will be happy to meet with you and tell you more about it. If you wish to apply please email us your resume and transcript. An average in CS and mathematics courses of at least 85% is required; we know from experience that students with lower marks do not have successful URAs.  This work should not interfere with your course work.


Project title:  Chaos Game Representation of words over quaternary and binary alphabets

This URA involves research on bioinformatics, combinatorics on words and formal languages. The project is theoretical, but may also involve some programming and computation. A short written report is required at the end of the term. It would be helpful if you had taken CS360, or are taking it this Spring term.

A Chaos Game Representation (CGR) associates an image to each DNA sequence  over the quaternary alphabet {A, C, G, T} as follows. Begin with a unit square with corners labelled A, C, G, and T, clockwise starting from the bottom-left corner. The first point of any CGR plot is the center of the square. To plot the CGR corresponding to a given DNA sequence, start reading the letters of the sequence from left to right, one by one. The point corresponding to the first letter is the point plotted in the middle of the segment determined by the center of the square and the corner labelled by the first letter. Subsequent letters are plotted iteratively as the middle point between the previously-drawn-point and the corner labelled by the letter currently being read. CGR images of genetic DNA sequences originating from various species show rich fractal patterns containing various motifs such as squares, parallel lines, rectangles, triangles and diagonal crosses. Moreover, CGRs of genomic DNA sequences have been shown to be genome- and species-specific,  The goal of this project is a characterization and classification of  words over the quaternary, as well as binary, alphabet based on their CGR representations.

For more information about the project, please email Dr. Lila Kari lila@uwaterloo.ca


Describing Noises from New York City

In this project, our goal is to understand how to effectively engage the crowd to annotate street sounds from New York City.   The URA must have extensive web programming experience (i.e., HTML, jQuery, Javascript, CSS), preferably having worked with these languages in industry settings.  The URA will be responsible for: (a) designing interfaces that facilitate audio annotation, (b) launch a crowdsourcing experiment on Amazon Mechanical Turk, (c) participate in data analysis and paper writing.
 
Interested students should submit their resume and transcript to Prof. Edith Law (edith.law@uwaterloo.ca) as soon as possible, and no later than April 11.
 

The Role of Engagement in Fitts Law Tasks

Fitts Law describes the time to rapidly move to a target as a function of both the distance to and the size of the target.
Typically, Fitts Law experiments require subjects quickly clicking on a series of targets on the screen.  In this project, our goal 
is to understand the ecological validity of Fitts Law tasks by investigating the influence of engagement on the speed and 
accuracy of pointing.  The URA must have extensive web programming experience (i.e., HTML, jQuery, Javascript, CSS), preferably
having worked with these languages in industry settings.  The URA will be responsible for: (a) designing interfaces that facilitate engagement
in Fitts Law tasks, (b) working with graduate students to launch a crowdsourcing experiment on Amazon Mechanical Turk, (c) participate in 
data analysis and paper writing.  
 
Interested students should submit their resume and transcript to Prof. Edith Law (edith.law@uwaterloo.ca
as soon as possible, and no later than April 11.
 

Title: Investigating Distributed Consensus Protocols

I am looking for a URA to investigate protocols for distributed consensus/commit in the context of transaction processing for distributed data management.  The task would be to identify and classify different protocols under a consistent taxonomy and to implement and test these protocols to understand their performance differences.

Interested students should email Khuzaima Daudjee at kdaudjee@uwaterloo.ca


Title: Software Modelling Tools

We are looking for 2-3 URAs to contribute to the development of tools for editing, transforming, and analyzing software models.
 
The tool suite is based on a mix of Sirius, Eclipse, GME, Xtext, Ecore, and ML technologies, and aims to (1) ease the task for creating models and (2) enable automated analysis of models to identify inconsistencies, interactions, and errors. 
 
Tasks include
1) Creating a front-end parser for a language that supports class diagrams, feature models, and state-machine models. The parser will build data-structures that capture elements, relationships, and properties of the parsed models.  Applicants for this task should be familiar with Java-based parsing technologies.
 
2) Enhancing an existing translator that transforms state-machine models into the SMV language.  Applicants for this task should be strong Scheme programmers who are interested in picking up experience programming in ML.
 
3) Integrating a suite of tools (editors and transformations) such they they can be invoked from within the Eclipse framework.  Applicants for the task should have a strong background in Eclipse development.
 
Interested students should contact Prof. Jo Atlee jmatlee@uwaterloo.ca
 

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 https://www.cs.uwaterloo.ca/~uhengart/publications/spsm15.pdf

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 urs.hengartner@uwaterloo.ca


Title: Information Security

I have two URA projects for senior undergraduate students interested in cryptography and information security. 

Students will investigate scalability and performance of some of the cutting-edge encryption methods in various mobile and cloud environments. Students will also have an opportunity to design and work on implementations of state of the art functional encryption algorithms. 

The ideal candidate took a course in information security, and has experience with C/C++, at least one database system and a mobile platform. 

Interested students should contact: Sergey Gorbunov sergeyg@mit.edu


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 urs.hengartner@uwaterloo.ca


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 gweddell@cs.uwaterloo.ca


Title: White balancing algorithms in computational photography

Many interesting computational problems arise in digital photography. Some of the problems involve the basic functionality of a camera such as automatic focusing, automatic white balancing, and automatic exposure. Other problems extend the capabilities of the camera such as high dynamic range (HDR) imaging and panoramic imaging. This URA involves research in white balancing algorithms for computational photography.

Requirements: C++ programming experience, interest in photography

Desirable, but not essential: Knowledge of algorithms, artificial intelligence, machine learning, graphics.

Interested students should email Professor Peter van Beek vanbeek@cs.uwaterloo.ca


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 email Professor Justin Wan justin.wan@uwaterloo.ca


Title: Computational Finance on Android and iOS Devices

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. The project will particularly focus on implementation of the computational methods on Android and iOS devices. Smart phones have been popular portable devices which possess an excellent user interface as well as increasing computing power. This project is to investigate the possibility of solving finance equations using smart phones rather than the traditional PCs.

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) implementation of numerical methods for computational finance on Android or iOS devices, and 2) user interface. Students are expected to write up the final results including the documentation of the code developed.

Interested students should email Professor Justin Wan justin.wan@uwaterloo.ca


How do I apply?

Both of these forms must be fully completed and returned to Simone Paull in MC 4036, Please email spaull@uwaterloo.ca 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:

https://uwaterloo.ca/international-students/social-insurance-number

For more information, please contact:

Simone Paull
Office: MC 4036
Phone: (519) 888-4567 ext. 36826
Email: spaull@uwaterloo.ca