Undergraduate Research Fellowship

About     Past Award Winners     Showcase

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.

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

We are now considering applications for Fall 2021. Please see the Fall 2021 project descriptions that are available in the “Potential Supervisors” section below.


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, with a strong interest in research and/or graduate studies.

A student can only do one URF/Co-op per term, and must be on a co-op term or otherwise not taking courses. Note that International Students need a SIN# and work permit to work in Canada. During the term, it is expected that students will be working remotely from a location within Canada.

How to Apply?

Check the eligibility criteria stated above before proceeding.

If you are eligible, prepare a single PDF file (called YourFirstName_YourLastName.pdf), which must contain the following information:

  • An up-to-date CV/Resume
  • A recent transcript
  • A 1-page personal/research statement, stating (1) what your research interests are, (2) what your future plans are and why you want to pursue the URF, (3) indicate which research projects (in order of preference) you are interested in working on. You can either name a faculty supervisor in the “Potential Supervisors” list below, or name a faculty member that you have an existing connection with.
  • a letter of recommendation from a professor at your university (optional, but encouraged). The letter can be included in the application package, or sent directly to csgrec@uwaterloo.ca.

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

How to Submit

If you are a co-op student, apply to our job posting through your university’s co-op system and submit your PDF file on the co-op system. If the system does not allow attachments, you can submit your PDF file to here.

If you are NOT a co-op student, upload your PDF file to here.

For hiring URFs for the Fall 2021 (i.e., Sept-Dec 2021) term, the application deadlines are as follows:

  • first round: May 18, 2021

Fellowship Details (for Faculty)

Students will receive a minimum of $12,000/term for their co-op placement

  • The School will contribute $7,500/student
  • NSERC USRA + faculty to top up the difference

Example: Student X is awarded a research fellowship for a term, the school will provide $7,500 toward their salary. If they receive an NSERC USRA for $4,500, then the supervisor would not need to contribute any funding. If the student does not get NSERC USRA, the supervisor would need to contribute at least $4,500.

Frequently Asked Questions

  • How can I connect with a supervisor?

You can connect with an advisor in multiple ways. You can browse through the list of potential faculty advisors and their project descriptions below to see which research project you are interested in. If you have an existing connection with a CS faculty at Waterloo, you can also name a faculty supervisor who is not on the list. In your personal/research statement, please indicate which research projects (in order of preference) you are interested in working on.

  • Do I need to have a recommendation letter when I apply?

The recommendation letter is optional but encouraged, as it provides us with more information about your background and experiences.

  • What should I include in my personal statement?

We want to hear what you are passionate about and why you want to pursue a work term in research.

  • How will candidates be selected for this role?

Your application will be reviewed by a committee, consisted of faculty members and graduate students. Students will be selected for an interview, which is online and lasts 30 minutes. Some students may be asked to attend a second interview with a faculty supervisor. After the interviews, the committee members will independently rate each student’s application, then meet to discuss the aggregated results. The decision takes into account the calibre of the student, faculty recommendation/endorsement, as well as factors such as EDI (equity, inclusion, diversity), broad coverage of and equal representation from different research areas/topics, previous history of the faculty/student being awarded an URF, etc.

  • Do I need prior research experience to be eligible?

No! We accept both candidates with and without prior research experience. Just tell us why you have a keen interest in research on your personal statement.

  • Can I apply if I am not a Computer Science student?

Yes, you can still apply.

  • I am an international student, can I still apply?

Yes, as long as you have a work permit and plan to reside in Canada during the URF work term, you can apply.

  • I have questions! Whom should I email?

If you have questions about the URF program or how to submit your application, please contact csgrec@uwaterloo.ca.

Potential Supervisors

Supervisor Project Description
Christopher Batty Artistic Control of Fluid Simulations for Visual Effects. Physics-based simulations of fluids are widely used in visual effects for creating realistic and compelling scenes involving splashing water, swirling smoke, or viscous lava, for films like Moana or The Avengers. While the mathematical techniques underlying these tools are powerful they remain notoriously difficult to control, making it challenging for effects artists and film directors to achieve their particular cinematic visions. In this project, the student will become familiar with modern numerical methods for fluid animation and explore new techniques to design and dictate the motion of a fluid, while preserving its underlying physical behaviour. Past experience with computer graphics and/or numerical methods is helpful but not required.
Chengnian Sun Building Compiler Testing Infrastructure. Compilers are fundamental system software, and their correctness is critical to our everyday life. In this project, the URF is expected to build an infrastructure to automate testing for various compilers, e.g., GCC, LLVM, Rust, Ruby, Php. The infrastructure should be designed to be extensible and adaptable to support testing of new compilers; the infrastructure should facilitate all steps of compiler testing, e.g., generating test programs, minimizing bug-triggering programs, filing bugs to compiler communities, and tracking evolution of reported bugs. The URF will gain hands-on experiences with multiple state-of-the-art compiler testing techniques, as well as system building skills. Our existing infrastructure is written in Java+Kotlin+Shell+Bazel.
Florian Kerschbaum Determining the reliability of disinformation detection. Disinformation is a serious concern for the formation of public opinion and has the potential to undermine democratic processes. In order to combat disinformation several machine learning and data mining methods have been developed to automatically detect disinformation in social networks. In this project we will investigate if it is possible to deceive these classifiers by modifying the messages spreading disinformation where possible in order to evade detection.
Peter Buhr Programming Language and Runtime System. The C∀ project is an open-source project extending ISO C with modern safety and productivity features, while still ensuring backwards compatibility with C and its programmers. C∀ is designed to have an orthogonal feature-set based closely on the C programming paradigm (non-object-oriented) and these features can be added incrementally to an existing C code-base allowing programmers to learn C∀ on an as-needed basis. In many ways, C∀ is to C as Scala is to Java, providing a research vehicle for new typing and control-flow capabilities on top of a highly popular programming language allowing immediate dissemination. There are many small development and evaluation activities within the C∀ project suitable for URFs. A URF candidate should be interested in programming languages and associated runtime internals with experience in C/C++ programming.
Martin Karsten Operating Systems Kernels - Theory vs. Practice. Operating system kernels are fairly big and very complicated software entities that address complex resource management challenges and typically support a massive set of hardware devices. Meaningful research into the structure and performance of operating systems is hampered by a significant barrier to entry: A research operating system must support a reasonable set of modern hardware devices to obtain useful performance measurements beyond simplistic benchmark tests. The overall goal of this project is lowering that barrier to entry by building a simple kernel nucleus and combining it with 3rd-party open-source software to support a large variety of device drivers. The critical next step is hollowing out an existing open-source operating system kernel and making the hardware support components independent of the core generic resource management services. This will result in a novel open-source research platform that enables subsequent studies on structural and algorithmic innovations for operating system kernels.
Ali Abedi Seamless WiFi Sensing. WiFi sensing technologies gather various types of information form the surrounding environment by exploiting existing WiFi signals. The human body changes WiFi wireless signals; therefore, by monitoring and learning these changes, WiFi sensing can enable applications such as occupancy/motion detection,gesture recognition, or even breathing rate estimation. WiFi sensing has the potential to revolutionize the smart home industry by eliminating the need for numerous Internet of Things (IoT) sensors and exploiting WiFi signals instead. For instance, smart thermostats typically use multiple motion sensors in different rooms to track user movements for optimal temperature adjustments. WiFi sensing can provide this information by analyzing wireless signals transmitted from nearby WiFi devices. In this project, the URF will conduct research with a faculty and other students to develop the next generation of WiFi sensing techniques that seamlessly integrate with existing WiFi networks.
Kimon Fountoulakis On-Device Personalized Recommendation. The goal of the project is to prototype a mobile application which leverages user data and preferences to perform content recommendation. The models used are to be kept on-device, quelling privacy concerns by using a decentralized approach. They should also be personalized, in that the decentralized approach requires training and inference to occur using majority (or solely) data centric to the user. Thus, efficient/batch learning should be prioritized for supervised processes. Prototyping should also explore the use of leveraging graph data in both supervised and unsupervised settings where their use can be made efficient on-device. The current stage of prototyping explores the recommendation of tweets by leveraging a user’s twitter profile and involving them in a labeling process. This should branch out towards user recommendations, as well as recommendations in other domains. Primarily, web scraping and recommendation of news, posts, journals, or even other streams of media. The current goal is to prioritize recommendation of academic articles by leveraging the user’s involvement and profiling their interest. The balance is to be explored in how much and which data to use (Twitter, user labeling, other accessible accounts, etc…) whilst keeping learning manageable on-device. In short, we prototype a content regulator which can better leverage all the of data kept on a mobile device. For see this page for more detail about the project.