The Cheriton School of Computer Science is looking for exceptional students currently enrolled in a Computer Science program or related areas who have a keen interest in research and in pursuing graduate studies. This award is open to students at any university.  

Students will participate in a four-month, full time, research term to work directly with a faculty supervisor in a particular research area (e.g., Computer Security, AI, Human-Computer Interaction, Theoretical Computer Science, etc.).

  • Learn the research methodology related to a particular field of interest (see projects below)
  • Review existing literature and develop new research questions.
  • Work with a supervisor and a team of graduate students to address the research questions, which may involve developing systems, creating algorithms, solving mathematical problems, designing experiments, etc.
  • Work on publications to disseminate research findings to relevant academic conferences.

Meet Dmitry

Dmitry is a URF award recipient and spent the Fall 2020 term under the supervision of Professor Joanne Atlee and Michael Godfrey on the Rex project. The key in Rex lies in minimizing the information extracted from source code, thereby allowing for the analysis of very large systems. The analyses themselves involve discovering paths within the “fact based” graph extracted by Rex. Dmitry’s role revolved around improving the accuracy of these analyses by incorporating control-flow information into the extracted facts. Dmitry shares the highlight of his experience working on the Rex project and how it compared to past co-op positions.


“I think my favourite part about the internship was the amount I learned. Reflecting back to my previous co-ops, I think this was probably the most independence and ownership I was ever given on any project. As a result, I had to very quickly and very thoroughly learn my problem’s domain such that I could make progress. I learned a lot about the compiler tools involved in static analysis, such as ASTs and CFGs, and I came to realize that I really enjoy static analysis work. Apart from interesting technical knowledge, I also learned a great deal about abstract problem solving, since that was a huge component of my daily routine. I learned that open-ended problem solving is something that I find very fulfilling, and the new skills that I gained from it will definitely help me in future work.” Dmitry Koberts

View past URF award winners

Application Deadline

URF Term Application Deadline
Spring 2023 Tuesday, January 24, 2023 (9:00 am)
Fall 2023 TBD (mid May)
Winter 2024 TBD (mid September)


URF recipients will receive a minimum of $12,000/term:

  • $7,500 contributed by the Cheriton School of Computer Science
  • Remaining provided by faculty supervisor (and/or NSERC USRA, Faculty of Mathematics MURA)


  • Students who are currently in 3rd or 4th year are eligible to apply; exceptional students from earlier terms will also be considered.
  • A cumulative average of at least 80% is required.
  • Preference is given to students enrolled in the Computer Science major or related programs (i.e. any program that would prepare a student for Computer Science graduate studies). 
  • The faculty supervisor must have an appointment or cross-appointment in the School of Computer Science

A student can only do one URF per term, and must be either on a co-op term or not taking courses. Note that International Students need a SIN# and work permit to work in Canada. URF recipients normally work on campus at the University of Waterloo, but due to pandemic restrictions, some or all positions may be remote. If remote, it is expected that students will be working from a location within Canada.

Open and Sponsored Applications 

There are two types of URF applications: 

  • A sponsored application means you and a faculty member already have a connection, you've already discussed a specific project to work on, and they're providing a reference letter that states that they'll hire you as a research assistant if you're awarded a URF.   

  • An open application means you want to be matched with a faculty supervisor. Potential supervisors list projects or research areas near the bottom of this page, and you will indicate your interest in specific projects in your application. 

How to apply

The application has two parts: an online information form and supporting materials submitted to a secure file server.  

Information Form 

The information form gathers basic information and provides some additional checks that your application is submitted correctly. It should be completed when you’re ready to submit the single PDF with your cover letter, resume, and transcript (see next part).   

[ Information Form

Supporting Materials  

1. A single PDF containing a cover letter, resume, and transcript. Your PDF file must have the filename “YourFirstName_YourLastName.pdf” and it must contain these items in the following order: 

  • Your cover letter should be 1 to 2 pages with: your research interests; why you want to pursue a URF; what your future plans are for graduate school; why you're interested in working on the specific project(s) you selected or the project you're already sponsored for. 

  • Your resume should be up-to-date and highlight relevant skills and experience. 

  • Your transcript(s) should be current and list all of your undergraduate courses and grades. 

2. A letter of recommendation from a professor (or equivalent person with authority).  Each letter must be a PDF file with the filename “YourFirstName_YourLastName_ReferenceLastName.pdf”.  

  • For open applications, a letter of recommendation from a professor is optional (but encouraged). 

  • For sponsored applications, a letter of recommendation from the sponsoring faculty member is required.     

All supporting materials must be submitted to this secure file server: ] 

Please note that incomplete applications (i.e., missing any of the required items above) will not be considered.

Open Projects and Faculty for Spring 2023

Faculty with Specific Projects

  • Exploring the design for a large scale production cloud storage system (Samer Al-Kiswany)
    In collaboration with Acronis research labs, a leading company in cloud storage, we will explore the design and build a new backup storage system that can provide both data confidentiality, high storage efficiency, and high performance. We will work closely with the research team at the company to make sure what we build is going to end up in production. This project is going to use C++ as the main programming language
  • Data-driven Security and Reliability in 5G Networks (Raouf Boutaba)
    This project focuses on data-driven approaches to secure 5G network services (i.e., eMBB, mMTC and URLLC). In this project, the URAs will be tasked to generate realistic datasets for benign 5G traffic and varying attack scenarios that could lead to compromised 5G services. The datasets generation will be carried out in our emulated and/or in-lab 5G testbed environment. The URAs will also leverage generative adversarial networks to up-scale the datasets, while ensuring that the statistical distribution of the generated datasets is preserved. Furthermore, the URAs will explore machine/deep learning techniques for early detection of attacks, including zero-day attacks, on 5G services using the generated datasets. 
  • xApp implementation for 5G Open RAN control (Raouf Boutaba)
    In mobile networks, radio access networks (RANs) have been traditionally deployed in vendor-specific and closed architectures. This makes it difficult to manage and control the network and integrate new services. To address these, Open RAN, a service-oriented software-based architecture has been proposed based on the softwarization of different RAN elements. Open RAN introduces the radio intelligence controller (RIC), a centralized abstraction that allows for enhancing traditional RAN functions with intelligent closed-loop control powered by machine learning (ML). To this end, customized RAN control applications (called xApps) are deployed on RIC and communicate with RAN components to manage different aspects of the network including the radio resource allocation. The student is expected to study existing open-source RIC frameworks and contribute to the development of xApps and ML algorithms for RAN control. The student will also have the chance to integrate and test xApps with our in-lab 5G testbed. 
  • Hiding data access patterns via frequency smoothing (Sujaya Maiyya)
    Data privacy is becoming one of the major challenges of the tech industry. With many applications outsourcing their data storage needs to third party cloud vendors such as Amazon AWS or Google Cloud Platform, the lack of trust in third party storage services aggravates the privacy challenges. While encrypting an end user's data forms the first layer of protection against the loss of data privacy, many recent attacks have shown that the access patterns on encrypted data reveals sensitive information. For example, the duration and frequency with which an oncologist accesses (encrypted) data can reveal the type of a patient’s cancer (e.g., based on the frequency and intervals of chemotherapy treatments). In this project, we will explore efficient techniques to hide the data access patterns from an adversary and integrate these techniques in building a privacy-preserving datastore.
  • Efficient String and Buffer Management in Kùzu Graph DBMS (Semih Salihoglu)
    Kùzu is an open-source state-of-the-art graph database management system (GDBMS) developed at University of Waterloo in Prof. Semih Salihoglu's group. Kùzu is an embeddable system aimed at being the core GDBMS for graph analytics, e.g., graph machine learning, pipelines. In this project, you will work on several core components of Kùzu, such as it's buffer manager or implement several string management and compression techniques in the system.

Faculty with General Research Areas

  • Urs Hengartner: I explore novel ways for authenticating users to devices and services, and I aim to make existing ways of authentication more secure and more usable.
  • Yizhou Zhang: Design and implementation of programming languages
  • Jian Zhao: I work in the fields of Human-Computer Interaction and Information Visualization on topics such as advanced visualizations for explainable AI, intelligent interfaces for creativity support, interactive tools for data science, and visual analytics in augmented/virtual reality.