The Cheriton School of Computer Science is looking for exceptional students currently enrolled in a Computer Science program (or related area) who have a keen interest in research and/or in pursuing graduate studies.
Students will participate in a four-month, full-time, research-based co-op term (currently remotely due to COVID-19) to work directly with a faculty supervisor in a particular research area such as, Computer Security, Artificial Intelligence, Human-Computer Interaction, Theoretical Computer Science, and much more.
Winter 2021 project descriptions are available in the Potential Supervisors section below.
Apply by November 12, 2020 for the Winter 2021 (January-April) co-op term.
For questions, please contact firstname.lastname@example.org.
- 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.
If you are eligible, prepare a single PDF file (titled 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).
Please note that incomplete applications (missing any of the items above) will not be considered.
Submitting an Application
- 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 site. If the system does not allow attachments, you can submit your PDF file to the URF application vault folder.
- If you are NOT a co-op student, upload your PDF file to the URF application vault folder.
For hiring URFs for the Winter 2021 (i.e., January to April 2021) term, we will start to accept a second round of applications on October 29 until November 12. Interviews will start November 16. A decision can be expected between late November to early December.
|Prof. Shane McIntosh||Extracting and analyzing feature-specific code. The URF will develop a tool to extract a directed graph of feature-specific code (e.g., code guarded by so-called feature flags/toggles) from codebases. The URF will then use the tool on a sample of large and actively developed open source projects to study (a) the characteristics of such feature graphs; and (b) how such graphs evolve.|
|Prof. 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.|
|Prof. Jian Zhao||Visualization and Haptics. With technological advances, the usage of mobile devices such as phones and tablets has become prevalent in recent years. Challenges exist in designing more engaged, effective, and intuitive mobile user interfaces. This project will investigate the combination of affective visualizations (e.g., for users’ emotions) and pseudo-haptic techniques in enhancing user interactions with mobile devices. Particularly, we will focus on augmenting multi-modal interactions (e.g., touch, stylus, mouse) with users’ emotions. We wish to leverage visual, haptic, and pseudo-haptic feedback to allow users to “reflect and feel” each others’ emotions, for example, in personal communication. We also plan to employ machine learning technologies to facilitate users with creating personalized and expressive information to share using multi-modal interactions.|
|Prof. Kate Larson & Prof. Edith Law||Human-in-the-Loop Decision System for Managing Forest Fires. In this project, the student will create a AI decision support tool for managing forest fires, where the algorithm both makes predictions and explains its predictions / uncertainties. The student will design a study where forest fire trainees will use the decision support tool to make decisions about hypothetical forest fire situations, and discuss their reasoning for accepting / rejecting the AI’s recommendation. The ideal candidate would have experience and interest in both AI and Human-Computer Interaction (HCI).|
|Prof. David Toman||Next-Gen Query Compiler. The project’s goal is to design and develop a next generation query compiler for database and information systems. The system, currently under development, is based on rather involved mathematical concepts ranging from Beth Definability and Craig Interpolation to Automated Theorem Proving to AI-based optimization (for more goals and details, please see “Fundamentals of Physical Design and Query Compilation” by Toman and Weddell). Several Graduate and Co-op students have contributed to the project over the last several years and their duties ranged from developing new approaches to implementing more efficient algorithms and to restructuring the code base to support more streamlined development in the future.|
|Prof. N. Asokan||Hardening Remote Attestation. Modern computing devices contain trusted execution environments (TEEs) for secure handling sensitive operations and data, such cryptographic keys. An important aspect of TEEs is remote attestation, the ability to provide evidence of the state of a TEE to a third party. Several recent attacks, like the well-known Spectre and Meltdown attacks, exploit the complexity of modern hardware to compromise security. TEEs are vulnerable to such attacks as well. In our systems security research, we are exploring how to mitigate the impact of such attacks. We are looking for a student who would work with senior researchers to design and implement a robust attestation scheme on a TEE based on seL4. The ideal student has experience in C programming and a good understanding of operating systems (experience with embedded systems a plus) and is familiar with basic cryptography. Students interested in graduate study in systems security can set the stage for subsequent master’s thesis research as a continuation of the work done in this project.|
|Prof. Florian Kerschbaum||Feature Grinding: Efficient Backdoor Removal in Deep Neural Networks. Backdoors in Deep Neural Networks (DNN) give an adversary control over the DNN’s output for inputs that contain a secret trigger pattern. The adversary embeds the backdoor by controlling the DNN’s training process and abuses the backdoor once the model is deployed. Backdoor removal has the objective to neutralize backdoor with (i) minimal impact on the DNN’s utility and (ii) by using minimal computing resources. In this project we investigate a novel method for backdoor removal called Feature Grinding, in which a backdoored DNN is transfer learned using randomized transformations of its penultimate layer, that typically encodes high-level features learned by the network. We expect Feature Grinding to improve upon related work by (i) being faster and (ii) removing backdoors more reliably than other defenses. We want to experiment with three datasets: MNIST, CIFAR10 and ImageNet. The first step will be to implement the backdoor attacks from the literature. Then, we need to implement feature grinding with different random transformations. Our goal of this experimentation is to measure the (i) backdoor removal success rate, (ii) validation accuracy in the non-backdoored model and (iii) the computation time of feature grinding.|
Funding for Faculty
Students will receive a minimum of $15,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 need to contribute at least $3,000. If the student does not get NSERC USRA, the supervisor would need to contribute at least $7,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.
If 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.
If I have questions, whom should I email?
If you have questions about the URF program or how to submit your application, please contact email@example.com.