Undergraduate Research Assistantship (URA) program

students working on computer

Undergraduate Research Assistantship (URA) Program


The Undergraduate Research Assistantship is a 10-week part-time opportunity for exceptional undergraduate students curious about research during a study term in CS. The URA is an excellent option to prepare a student interested in pursuing full-time research during a co-op term or graduate studies in the future.

Quick links:


Application deadlines

Term Deadline
Winter 2024 Closed
Spring 2024 Friday, May 31, 2024
Fall 2024 TBD

Please note: We will not accept applications past the deadline.

Compensation

  • Students who meet the URA eligibility criteria and are accepted by the URA program will receive a $400 top-up from the School of Computer Science. Supervisors of eligible students must therefore contribute a minimum of $600 for the term.
  • Students who do not meet the URA eligibility criteria may still undertake a URA at a supervisor's discretion but will not receive the School top-up. Supervisors of non-eligible students must contribute a minimum of $1000 for the term.

Eligibility

  • Any student who has completed their second year in the Faculty of Mathematics with a cumulative average (CAV) 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.

Note

How to apply

  1. Check eligibility stated above. Make sure you are eligible before taking the following steps.
  2. Find a project, send a resume and recent grade report to the professor, request an appointment, and reach a verbal agreement on the details of the project.
  3. Complete the Student Application form
  4. Your supervisor must then complete the Supervisor Application FormUpon completing the webforms, you and your supervisor should receive email confirmations containing copies of each forms' responses.

Both the CS URA Student and Supervisor Application Forms must be completed and submitted to receive your URA payment. If you have questions or difficulties regarding the forms, please contact Daniel Huab.

President's Research Award

Effective Winter 2024: If you are claiming the President's Research Award (PRA) of $1500, you are not entitlted to receive any of the CS URA payment ($1000) for the same research experience.

If you are claiming the PRA, upon completing the CS URA Application Form you will be prompted to complete the PRA Application. For more information regarding the President's Research Award please contact Student Awards and Financial Aid directly.

URA supervisors

Faculty members post openings each term so interested and eligible students can apply. Students can also contact faculty members to see if they are interested in supervising a URA.

The following faculty members have confirmed that they are willing to be contacted by potential URAs. 

Professor Research areas/topics
Omid Abari Internet of Things, Intelligent Connectivity, Ubiquitous Sensing, Wireless Networks, Software-Hardware Systems, Virtual Reality, Smart City 
Samer Al-Kiswany Distributed systems, cloud computing, storage systems, and big data systems
N. Asokan Systems security

Gladimir Baranoski

Predictive simulation of light and matter interactions aiming at theoretical and practical applications in realistic image synthesis, biophotonics, biomedical optics and remote sensing

Diogo Barradas Network security, privacy enhancing technologies, internet censorship, digital forensics
Christopher Batty Scientific Computing, Graphics, Physics simulation: liquids, smoke, deformables, etc.
Raouf Boutaba Management of networks, systems and services, network virtualization, software-defined networking, Internet of Things, 5G and beyond mobile networks, network security
Tim Brecht Performance, distributed systems, streaming video services, WiFi networks, Internet of Things, operating systems, networks
Peter Buhr C∀ (Cforall) Programming Language and Runtime System
Khuzaima Daudjee Cloud and Big Data Systems
Nancy Day Formal methods, logic, software engineering, software modelling, state diagrams, requirements, specification
Sergey Gorbunov Cryptography, security, blockchains and distributed systems
Roberto Guglielmi Applied mathematics
Xi He Privacy and security for big data management and analysis
Urs Hengartner Security and privacy for smartphones and mobile apps
Jesse Hoey Affective Computing, Health Informatics, Artificial Intelligence
Lesley Istead Computer graphics, image processing, film; natural language processing, machine learning
Craig Kaplan Procedural modelling, 2D computer graphics, ornamental design, Tiling theory and geometry
Martin Karsten Operating Systems, System Software, Networking
Florian Kerschbaum Data science, security, privacy 
Edith Law Human-AI Interaction, Technology for Fostering Human Values
Jimmy Lin Big data, information retrieval, databases
Sihang Liu Computer Systems, Computer Architecture, and Storage Systems
Anna Lubiw Computational geometry, graph drawing, graph algorithms, and combinatorial optimization
Sujaya Maiyya Data privacy, databases, distributed systems
Stephen Mann Graphics, curves and surfaces
Ali Mashtizadeh Operating systems, distributed systems, storage, architecture, compliers
Mei Nagappan Software Engineering: Mining Software Repositories, Mobile App Market Analytics, Software Bots
Naomi Nishimura Graph algorithms, fixed-parameter tractability, combinatorial reconfiguration
Pascal Poupart Machine Learning, Artificial Intelligence, Health Informatics
Gregor Richards Programming languages, dynamic languages, JavaScript, JIT, gradual typing
Ken Salem Databases, distributed systems, cloud computing
Jeffrey Shallit Automata theory, formal languages, complexity, number theory, algorithms, algebra
Shlomi Steinberg

Rendering, computational optics, computer graphics

Chengnian Sun Software testing: program reduction, automated Android app testing, compiler testing
Mina Tahmasbi Arashloo Networked systems, with a focus on software defined networking (SDN), programmable data planes
Justin Wan Scientific computing, computational finance, medical imaging, physics-based simulation
Stephen Watt Algorithms and systems for computer algebra, programming languages and compilers, mathematical handwriting recognition and document analysis
Grant Weddell Database technology for precompiled real-time application
Meng Xu Software Security via Automated Program Analysis and Testing
Hong Zhang Large-scale Data Analytics, Machine Learning Systems, Application and Network Scheduling, Serverless & Cloud Computing
Hongyang Zhang Machine learning, AI security, and trustworthy ML
Yizhou Zhang

Programming languages: designing and implementing new languages, probabilistic programming and intelligence, proof assistants

Jian Zhao Information Visualization, Human-Computer Interaction, Data Science  

URA research projects

Title: Learning How to Select a Committee

For centuries, voting rules have been used to aggregate group preferences for decisions ranging from political leaders to restaurant choices. Single-winner voting rules have been extensively studied along many dimensions. Multi-winner voting rules elect a committee of winners, often with goals of proportionality and fairness.

The goal of this project is to develop a neural network that acts as a multi-winner voting rule. Existing neural-network voting rules have been shown capable of strong performance when used as single-winner voting rules and may circumvent computational requirements and axiomatic impossibility theorems. As yet, ML models have not been explored as a means of electing a committee. Multi-winner voting rules are often more computationally complex than single-winner rules and are less thoroughly understood from an axiomatic perspective. Evaluation of multi-winner rules is often different than single-winner rules as well, with more focus on proportionality and fairness. Exploring the ability of neural networks to learn about these rules will add to an ongoing exploration of the use of machine learning to learn about voting.

Interested students should contact Kate Larson (kate.larson@uwaterloo.ca)


Title: Model Serving Systems for LLMs

We are witnessing an explosion of large language models (LLMs). The latest models such as GPT-4 have achieved unprecedented performance in various tasks such as code generation, text classification, and problem reasoning. However, serving LLM-based applications, i.e., deploying trained LLMs on a compute cluster and conducting model inference for incoming user requests, presents challenges in system design. GPT-4, for example, can take seconds to tens of seconds to generate responses, causing suboptimal user experiences for many interactive applications. Second, serving LLMs requires expensive hardware accelerators (e.g., GPUs) and results in high resource consumption. For instance, ChatGPT is estimated to cost over $700,000 per day to operate. Moreover, scaling LLM-based applications to meet the demands of large user bases can be challenging. Deploying the current ChatGPT model to power every Google search would require a cluster of over four million A100 GPUs. To address these problems, this project aims to design an LLM serving system with high utilization, low latency, and good scalability.  

Interested students are expected to have programming capabilities (C, C++, and Python) and systems background (e.g., CS 350). Familiarity with LLM structures (or other ML models), and programming capabilities with TensorFlow or PyTorch can be a plus. For more information, please contact honzhang@uwaterloo.ca with your CV/resume. 


Title: Renering and Wave Simulations

Simulations of complex wave phenomena brings together fascinating topics in physics and computer science. Such simulations have many diverse applications: like simulation of electromagnetic radiation, for example for propagation of RADAR or cellular signals in real-world environments; simulations of optical medical devices; as well as accurate light transport and rendering in computer graphics.

This project involves research and development of relevant tools, implementing simulation software (like path tracers), and performance analysis of algorithms or methods. Students are expected to have strong programming skills, and ideally some knowledge of computer graphics (e.g., CS488), optics or electrodynamics. Interested students should contact Shlomi Steinberg (steinberg@uwaterloo.ca).


Title: Analysis and Implementation of Network Algorithms and Protocols

Computer networks have grown into a massive, shared infrastructure, connecting millions of users to thousands of online services. To support all these users and services, networks rely on a multitude of algorithms and protocols, e.g., for packet scheduling, congestion control, routing, load balancing. Together, these algorithms and protocols determine the quality of service that a network can provide to traffic flows for different applications in the network.

Understanding how different algorithms and protocols and their combinations affect network performance, finding the right set of algorithms and protocols given the specific requirements of the applications using the network, and creating robust and efficient frameworks for deploying them in the network are important open problems. We are looking for URAs to help us make progress on these problems by studying, analyzing, implementing, and experimenting with some of the most influential existing networking algorithms and protocols. Prior experience in systems-oriented courses such as Operating Systems and Computer Networks is a plus.

If you are interested, please fill out the Google Form at the following link: https://forms.gle/jvtgp7BdkaVFh3o39


Title: Hardware Support for Large-scale ML Applications

Recent advancements in ML techniques, such as large-language models (LLMs), revolutionized natural language processing and understanding. At the same time, these large-scale ML applications pose new challenges. One of the main aspects is the demand for computation capabilities. For example, serving LLM costs more than ten times as compared to conventional web search. This URA project aims to improve the performance of large-scale ML applications through hardware support, such as designing accelerators for ML applications and optimizing their memory systems. 

Interested students are expected to have programming capabilities (C, C++, and Python) and computer hardware and systems background (e.g., CS 350 and 450). For more information, please contact sihangliu@uwaterloo.ca, and send an unofficial transcript and your CV/resume.  


Title: Reformulate the IESO's algorithm

The objective of this project is to reformulate the IESO’s algorithm to balance supply and demand based on societal gain. Societal gain as defined by this project is the cumulative difference between the carbon intensity (kg CO2e/MWh) consumers are willing to accept for the electricity consumed and that at which generators can produce that electricity. The solution to the reformulated optimization problem will present a different mix of generators and allow the calculation of an implied carbon tax required to achieve the least carbon intensive solution. Another objective of the project is to perform a sensitivity analysis by constraining the solution to varying maximum electricity prices.

The role for the URA student in this project is to take a leading role in the development of the code for the reformulated algorithm. The URA student will work directly with the involved graduate student and supervisor, and will be expected to perform independent research on the IESO market rules. The URA student’s efforts will contribute to the involved graduate student’s thesis.

The student would ideally have a background in CS, or in other programs with a focus on computational skills. The student is expected to master either Matlab or Python, and their optimization packages. The student is expected to be able to work independently and as part of a team. They must be highly motivated, goal-oriented, comfortable with high degree of freedom in their daily work and have excellent written and oral communication skills. The student is expected to have an interest in power grids and utility distribution, or to be willing to learn about them.

If interested, please email Robert Guglielmi.


Title: Building privacy-preserving data systems

Brief project description: 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 reveal 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.

A URA candidate would begin the project by reading the necessary background research papers, will be actively involved in research meetings, and will be involved in implementing the newly designed data system

If interested, please email Sujaya Maiyya at: smaiyya@uwaterloo.ca


Title:  Carbon-aware Scheduling in Cloud Computing

Cloud computing has emerged as a driving force behind the expansion of large-scale workloads. At the same time, these massive cloud workloads lead to high energy consumption and cause severe carbon emission issues. As the demand for these cloud services continues to rise, there is an urgent need to introduce carbon awareness in cloud computing. The carbon footprint of workloads is not constant. Rather, it depends on the energy source that drives the data centers and the hardware platform where the workloads are executed. This project aims to reduce the carbon footprint of cloud workloads using scheduling techniques, to better utilize green energy sources and hardware platforms that are best suited for certain workloads.

Interested students should have programming capabilities (C, C++, and Python) and experience with cloud environments (e.g., AWS and GCP). For more information, please contact sihangliu@uwaterloo.ca, and send an unofficial transcript and your CV/resume.  


Title: Efficient computation of generators of special invariant rings

Since Hilbert’s seminal works on invariant theory, which laid foundational results for modern commutative algebra and algebraic geometry, and Mumford’s seminal work on geometric invariant theory, much progress has been made on the computational aspects of invariant theory. Despite all of the progress made in this past century, many open questions still remain on the efficient computation of a generating set (or of a separating set) of invariant polynomials. The goal of this project is to make progress in efficiently computing a generating set of invariant polynomials for special group actions, which have profound applications in fundamental theoretical problems in computer science.

Prerequisites

The ideal URA should have a solid command of:

  • linear algebra (equivalent of MATH 245, or MATH 235),
  • basic abstract algebra (such as the material from both PMATH 336 and PMATH 347),
  • commutative algebra,
  • some programming experience being a plus.
  • Programming will be done using Macaulay 2 (no prior experience with this language required).

If interested, please send your resume and transcript to Rafael Oliveira (rafael@uwaterloo.ca)


Title: Lower bounds for Locally Correctable Codes over fields of characteristic zero

Error correcting codes are ubiquitous in computer science, both in theory and in practice. In recent years there has been growing interest in constructing error correcting codes which have local properties, as these codes can be used to safely store large amounts of data, while enabling users to efficiently recover small amounts of data without querying the entire codeword. Despite much progress made in the construction of error correcting codes with high rate and distance, many challenges still remain on whether such powerful codes exist with the additional local properties mentioned above.

The goal of this project is to prove that error correcting codes which have the ability of being locally corrected cannot have high rate and distance, when the base field is of characteristic zero.

Prerequisites

The ideal URA should have a solid command of:

  • linear algebra (equivalent of MATH 245, or MATH 235),
  • basic abstract algebra (such as the material from PMATH 347),
  • coding theory
  • quantum information theory
  • experience with writing rigorous proofs

If interested, please send your resume and transcript to Rafael Oliveira (rafael@uwaterloo.ca)


Title:  Co-op Matching

We are interested in understanding the effectiveness of the University of Waterloo co-op matching system. As a first step, we will conduct a study of different two-sided matching mechanisms, including the classic deferred acceptance algorithm, its variants, as well as approaches used for the “school choice” problem.  Drawing on literature from operations research, economics, and artificial intelligence, we will compare these alternative designs, highlighting the different properties that alternative design choices support. If there is time and available data, then we will also implement some of these mechanisms to see if, when run on (appropriately anonymized) co-op data, the outcomes would be significantly different from the current co-op matching system.

Requirements:

A CS or CO student with an interest in algorithms and market mechanisms/mechanism design. Some programming experience is required.

If interested, please apply with a transcript and CV to Kate Larson (kate.larson@uwaterloo.ca)


Title: Value Sensitive Design Approaches for Designing a Newcomers App

In collaboration with KW4 Ontario Health Teams, we are leading a project to design an app to help newcomers (e.g., immigrants, refugees) navigate the Canadian health and social services system, using a value sensitive design framework.  We are seeking 1-2 undergraduate research assistants to help during S23, to conduct interviews with newcomers and organizations, transcribe and analyze the interview data, and co-author a paper.   There are no particular qualification requirements, though this position would be suitable for students who have great communication skills, interested in Human Computer Interaction (HCI) and health research, and are fluent in English as well as another foreign language (such as Arabic, Farsi, Turkish, Ukrainian, Spanish, Tigrinya, Amharic, Mandarin).  The URAs will have the opportunity to work with graduate students in the Augmented Intelligence Lab (https://edithlaw.ca), participate in lab and research meetings, and have a first-hand experience of the broader impact of this research in our community, as this project is in collaboration with many community partners and organizations, such as YMCA, KDCHC, Reception House, etc.

If interested, please send your resume and transcript to Edith Law (edith.law@uwaterloo.ca)


Title: Design and implementation of Hardware Security Monitor for integration in BOOM/Chipyard system

Our blinded computation HW extensions (BliMe [1]) prevent the main processor from performing unsafe operations on sensitive data marked as blinded. This blocks side-channel attacks related to memory access patterns (including cache-based attacks) and execution timing [2]. An important component in our BliMe framework is a separate fixed-function Hardware Security Module (HSM), which 1) performs remote attestation to assure clients that the server is running on BliMe hardware, and 2) performs a handshake with the client and agrees with them on a secret session key (used later for authenticated encryption/decryption). 

Our current RTL implementation of BliMe is built on top of the BOOM speculative out-of-order core [3] and Chipyard SoC [4] and includes the taint-tracking and security policy enforcement logic. The goal of this project will be to design implement the HSM as a module that performs remote attestation and key agreement, and integrate it into the Chipyard SoC. This can be done either using the Chipyard-supported RoCC interface or as a MMIO device. A possible starting point for the design can be the Google OpenTitan chip [5]. 

Additionally the URA may also create corresponding gem5 module/class.]

References

  1. ElAtali, H., Gunn, L. J., Liljestrand, H., & Asokan, N. (2022). BliMe: Verifiably Secure Outsourced Computation with Hardware-Enforced Taint Tracking. arXiv preprint arXiv:2204.09649
  2. Ge, Q., Yarom, Y., Cock, D., & Heiser, G. (2018). A survey of microarchitectural timing attacks and countermeasures on contemporary hardware. Journal of Cryptographic Engineering, 8(1), 1-27.  doi: 10.1007/s13389-016-0141-6
  3. https://docs.boom-core.org/en/latest/index.html 
  4. https://chipyard.readthedocs.io/en/stable/ 
  5. https://opentitan.org/ 

Requirements 

Background in computer architecture. Experience with RTL (Verilog/VHDL; Chisel is a plus), C/C++, assembly. Nice-to-have: OS/Linux kernel knowledge (e.g., how the kernel interacts with custom hardware, what changes to the kernel are needed, ...). 

For more information 

N. Asokan at nasokan@uwaterloo.ca, Hossam ElAtalai at hossam.elatali@uwaterloo.ca


Title: Mechanizing a Typed Assembly Language using Coq

The student will use the Coq proof assistant to mechanize the syntax and properties of a statically typed assembly language. The student should be comfortable with reading programming-language formalisms and mechanizing proofs at the level of Software Foundations (Volume 2).


Interested students should contact Yizhou Zhang at: yizhou.zhang@uwaterloo.ca


Title: Data-driven Security and Reliability in 5G Networks

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.

Interested students should contact Raouf Boutaba at: rboutaba@uwaterloo.ca with an unofficial transcript and a resume.


Title: xApp implementation for 5G Open RAN control

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.

Interested students should contact Raouf Boutaba at: rboutaba@uwaterloo.ca with an unofficial transcript and a resume.


Title: Security and Privacy of Machine Learning

I am interested in working with (multiple) undergraduate students on the topic related to security of machine learning. Students will implement a brand-new idea to conduct training/test-time defenses and attacks of machine learning, such as adversarial attack, backdoor attack, watermarking, poisoned attack, etc.

Working with team members and me, the aim is to publish a paper in a top ML or security conference. Students with combined machine learning and security/cryptograph/encryption backgrounds are highly encouraged to contact me and apply.

Excellent students will get my strong recommendation letter and the opportunity of joining my research team for MMath and Ph.D. study. There might be weekly discussions.

Prerequisites: Experience with Python and PyTorch. Received a high grade in CS480/680. Basic understanding about AI security.

For more information, please contact Professor Hongyang Zhang at: hongyang.zhang@uwaterloo.ca.


Title: Climate Change Effects on Snow & Vegetation Interactions

In this project, a student will assist our research group to collect fundamental data and scientific information for our ongoing research on variations of light transmission through snow elicited by climate changes, and their impact on the vegetation cover of boreal and alpine regions. Moreover, the student will also conduct computer simulations related to this research using the online version of our spectral light transport model for snow.

Interested students should have experience with data processing and plotting in Matlab. For more information, please contact Prof. Gladimir Baranoski at:gvgbaran@gmail.com


Title: High-Performance User-level Threading 

The libfibre project builds an nimble user-level threading runtime system for existing OS platforms, such as Linux and FreeBSD. The objective of the project is demonstrating the performance potential of user-level threading for highly concurrent applications. Several development and evaluation activities are suitable for URAs in the context of this project, such as fine-tuning synchronization operations, testing alternative kernel interaces, or adding auxiliary functionality. A URA candidate should be interested in system-level software and runtime internals, have experience with C/C++ programming, and be familiar with the typical POSIX system call interface. Knowledge of kernel internals would be an additional asset.

If you are interested, please email Martin Karsten at: mkarsten@uwaterloo.ca.


Title: Machine Learning Approach to Numerical Computation

Machine learning has become a powerful tool for solving application problems such as computer vision, NLP, medical diagnosis and finance. Recently, it has also been used for solving complex equations that arise in graphic simulations, science and engineering. This project will explore machine learning techniques in numerical computation. The role of the undergrad student will include studying of research papers, implementation of numerical methods, and coding. Background in CS 370 (or equivalent) and/or ML is desirable.

My research team embraces the values of equity, anti-racism, and inclusion. Student applicants who have been historically disadvantaged and marginalized, including those who identify as Indigenous peoples (e.g., First Nations, Métis, Inuit/Inuk), Black, racialized, people with disabilities, women and/or 2SLGBTQ+, are encouraged to apply for this position.

Interested students should contact Justin Wan: Justin.wan@uwaterloo.ca 


Title: Computation Over Encrypted Data 

Cryptography can protect data in rest and during transit.  However, keeping data encrypted during computation is still often too inefficient.  There exist cryptographic techniques such as homomorphic encryption and secure multi-party computation but they require careful application in order to be practically efficient.  We work on several projects that apply these techniques, such that the computational overhead is reduced, e.g., by performing some computations on plaintext data, combining different cryptographic primitives or optimizing the protocols to reduce the performance bottleneck, e.g., communication cost.  We focus on applications for big data, such as private set intersection, private information retrieval or private inference over data models, because these applications are already deployed in industry.  We build cryptographic protocols using different toolkits and libraries, such as Microsoft's SEAL or MP-SPDZ, which are usually written in C++.

If you are interested in this URA, please email Florian Kerschbaum (florian.kerschbaum@uwaterloo.ca) with an unofficial transcript and a resume.


Title: Front end for a digital greenhouse application 

At Intelligent Connectivity lab (ICON Lab), we have developed a system that uses battery-free sensors to monitor the moisture level of plants in a greenhouse. Our sensors are already deployed in a greenhouse in Ontario. Our technology enables greenhouses to maintain suitable moisture levels not only to improve plant productivity and quality but also to save up to 25% of irrigation water. We are looking for a URA who can build a browser-based front end to this system that would allow a greenhouse manager to monitor the greenhouse in real-time and water the plants only when it is required.

Prerequisites: Familiarity with front-end design. Familiarity with Rasberry Pi and Azure IoT platform is a plus. 

Interested students should contact Professor Omid Abari: omid.abari@uwaterloo.ca


Title: Machine Learning for IoT applications 

At Intelligent Connectivity lab (ICON Lab), we are looking for URAs who are interested in working at the intersection of ML and IoT. Past research performed by ICON lab’s URAs have resulted publications in the best conferences, giving them opportunities to join grad schools in top universities.

Prerequisites: Experience with Python. Familiarity with Tenserflow, PyTorch or Keras is a plus.

Interested students should contact Professor Omid Abari: omid.abari@uwaterloo.ca


Title: What does WiFi networks reveal about our life?

At Intelligent Connectivity lab (ICON Lab), we are looking for URAs who are interested in doing research on WiFi networks. In this project, we are interested to learn what we can learn about our life style from the patterns of WiFi packets. Past research performed by ICON lab’s URAs have resulted publications in the best conferences, giving them opportunities to join grad schools in top schools.

Prerequisites: Experience with C and Python programming. Interests in designing systems. Familiarity with WiFi and wireless networks is a plus.

Interested students should contact Professor Omid Abari: omid.abari@uwaterloo.ca


Title: IoT networks for Digital Twins 

A digital twin is a digital replica of any physical entity. To achieve digital twin vision, we require to enable internet connectivity to billions of things. At intelligent Connectivity lab (ICON Lab), we are developing new wireless technology to enable this vision. We looking for URAs who are interested in working with hardware and designing new type of hardware. Past research performed by ICON lab’s URAs have resulted publications in the best conferences, giving them opportunities to join grad schools in top schools.

Prerequisites: Experience with RF and PCB design. Familiarity with wireless systems is a plus.

Interested students should contact Professor Omid Abari: omid.abari@uwaterloo.ca


Title: Flexible, lightweight extensible scalable code query analysis

Flescqa is a project that aims to provide scalable lightweight analysis of large software systems. Information about software are extracted from different artifacts (e.g., source code, build code, models) and are stored in a graph database for further analysis and visualization of analysis results.  As such, the  project includes work on (1) parsers (e.g., Clang) to extract from the AST "facts" about the parsed artefact, (2) experimenting with a graph database, queries, and strategies to optimize queries, (3) implementing and evaluating ways of visualizing analysis results. The ideal background is someone who has experience and interest in working with parsers or advanced databases or information visualization (e.g., REACT, D3).

If you are interested, please email Jo Atlee at jmatlee@uwaterloo.ca


Title: Security and Privacy in Machine Learning

More and more applications use machine learning to derive insights from large data collections.  However, this process is susceptible to several security and privacy threats.  For example, the data collection may contain sensitive, private information that may still be derived from the model or the learning and inference process.  We work on several projects that help ensure that such threats are contained.  We work on devising improved attacks that demonstrate that protection mechanisms are not as successful as they claim to be or processes that are assumed to be safe are not.  We also work on defense mechanisms that provide better protection based on the latest developments in cryptography, differential privacy, and machine learning.  Our work involves designing algorithms, developing prototypes, mostly in Python, and evaluating their performance and security.

If you are interested in this URA, please email Florian Kerschbaum (florian.kerschbaum@uwaterloo.ca) with an unofficial transcript and a resume.


Title: C∀ (Cforall) 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 URAs. A URA candidate should be interested in programming languages and associated runtime internals with experience in C/C++ programming. Hence, interested students need some programming-language/systems background, for example, have taken one of CS350, CS343, CS442, CS444, or learned the equivalent material from some other place, like a work term or project involvement.

If you are interested, please email Peter Buhr at: pabuhr@uwaterloo.ca


Title: Efficient computation of generators of special invariant rings

Since Hilbert's seminal works on invariant theory, which laid foundational results for modern commutative algebra and algebraic geometry, and Mumford's seminal work on geometric invariant theory, much progress has been made on the computational aspects of invariant theory. Despite all of the progress made in this past century, many open questions still remain on the efficient computation of a generating set (or of a separating set) of invariant polynomials. The goal of this project is to make progress in efficiently computing a generating set of invariant polynomials for special group actions, which have profound applications in fundamental theoretical problems in computer science.

The ideal URA should have a solid command of linear algebra (equivalent of MATH 245, or MATH 235), with a solid command of basic abstract algebra (such as the material from PMATH 347) and some programming experience being a plus.

Programming will be done using Macaulay (no prior experience with this language required).

Interested applicants please follow directions at https://cs.uwaterloo.ca/~r5olivei/#undergrad-research


Title: Intelligent Connectivity for the Internet-of-Things

Although interest in connected devices has surged in recent years, barriers still remain in realizing the dream of the Internet of Things (IoT). The main challenge in delivering the IoT systems stems from a huge diversity in their energy, scalability, and data-rate constraints. The ICON lab at the Cheriton School of Computer Science is conducting research to address these challenges. The student will do research on designing new connectivity and sensing systems for virtual reality and smart home applications. 

We are looking for students with one or multiple of the following skills:

  • Experience with C/C++ programming, and interests in designing systems
  • Familiarity with Micro-Controller, Raspberry Pi or FPGA programming 
  • Hardware design (familiarity with PCB design would be a plus)
  • Research experience in wireless networks and systems

Interested students should email Omid Abari: omid.abari@uwaterloo.ca


Title: Wrist-worn hand and finger gesture recognition study

The HCI lab at the Cheriton School of Computer Science is looking for a student interested in user study in hand and finger gesture interaction using wrist-worn sensors. The project requires excellent coding skills and some experience with hardware prototyping Additional experience with Arduino / Processing / User study is appreciated, but not necessary.

If you are interested, please email Keiko Katsuragawa at kkatsura@uwaterloo.ca.


Title: High-Performance User-level Threading 

The libfibre project builds an nimble user-level threading runtime system for existing OS platforms, such as Linux and FreeBSD. The objective of the project is demonstrating the performance potential of user-level threading for highly concurrent applications. Several development and evaluation activities are suitable for URAs in the context of this project, such as fine-tuning synchronization operations, testing alternative kernel interaces, or adding auxiliary functionality. A URA candidate should be interested in system-level software and runtime internals, have experience with C/C++ programming, and be familiar with the typical POSIX system call interface. Knowledge of kernel internals would be an additional asset.

If you are interested, please email Martin Karsten at: mkarsten@uwaterloo.ca


Title: Cloud and Distributed Big Data Systems

If you are a senior undergraduate student interested in working with large scale distributed systems that involve managing big data and storage in the cloud to achieve scalability and deliver good performance, please e-mail Khuzaima Daudjee at: kdaudjee@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: Interactive visualization techniques for data science

This URA project will be related to the design, development, and evaluation of interactive visualizations that support the general data science workflow: from exploratory data analysis, then to model development and interpretation, and finally to insight communication and storytelling. An idea candidate should be comfortable in web app development (e.g., JavaScript, NodeJS, JQuery, D3, Boostrap) and data analytics (e.g., Jupyter Notebook, Python, numpy, scipy, pandas, tensorflow, pytorch).

Interested students should view a list of current and past projects on Prof. Jian Zhao’s webpage: http://www.jeffjianzhao.com and submit an application: https://bit.ly/2tphwWK  


Title: Semantic Mining of Mathematical Text

Extracting semantic information from natural language text is recognized as an important problem in artificial intelligence, and there are many developed techniques. The present project is to extract semantic information from mathematical text. It is the long-term goal of the “International Mathematical Knowledge Trust” to capture the mathematical knowledge represented in the complete research literature of mathematics. There are several levels of semantic information, from general keyword spotting all the way to formalizing the mathematical statements in a language such as CoQ or Lean. The present project will perform n-gram analysis on the abstracts of mathematical article reviews provided by ZB-Math.

Interested students should contact Stephen Watt: smwatt@uwaterloo.ca


Title: Deep Learning for Handwriting Feature Recognition

One successful method for recognizing handwritten characters is based on representing them as parametric curves (x(s), y(s)) where x(s) and y(s) give the x and y positions of the pen as a function of arclength.   Expressing x(s) and y(s) as truncated Legendre series or Legendre-Sobolev series has proven quite successful for recognition. These series use orthogonal polynomials as the basis, rather than monomials s^k.  Recognition methods using proximity of coefficient vectors has proven quite successful. The present project is to explore how accuracy can be improved by using coefficient vectors to train neural networks for recognition.

Interested students should contact Stephen Watt: smwatt@uwaterloo.ca


Title: Machine Learning of Handwriting using Chebyshev-Sobolev Approximation

One successful method for recognizing handwritten characters is based on representing them as parametric curves (x(s), y(s)) where x(s) and y(s) give the x and y positions of the pen as a function of arclength. So far, expressing x(s) and y(s) as truncated Legendre series or Legendre-Sobolev series has proven quite successful. These series use orthogonal polynomials as the basis, rather than monomials s^k. This project will be to explore whether recognition can be improved using the Chebyshev and Chebyshev-Sobolev polynomials as basis functions.

Interested students should contact Stephen Watt: smwatt@uwaterloo.ca


Title: Algorithms for Symbolic Polynomials

Computer algebra systems, such as Maple, are very good at performing algebraic operation on polynomials with terms of fixed degree, but are much weaker when exponents involve variables. A new class of algorithms work with so-called “symbolic polynomials”, which are polynomial-like objects where the exponents are themselves integer valued polynomials, e.g.  x^(n^2+3n) – 5y^(2n-1). The present project will develop or enhance an existing Maple package for algorithms on symbolic polynomials, including polynomial greatest common divisors and factorizations.   Experience with Maple is required.

Interested students should contact Stephen Watt: smwatt@uwaterloo.ca


Title: Handwriting Neatening

Just as face averaging can be used to produce faces that are perceived as attractive, character averaging can be used to produce attractive characters written in a user’s own distinctive style. Representing handwritten characters as a particular type of feature vector allows this averaging to be well-defined and efficient. This can allow handwriting samples to be adjusted for uniformity of size, slant, pressure, etc. The present project will involve developing a tool to mark up character samples. Experience with Typescript and Node.js will be an asset to the URA candidate, and experience with calligraphy will be a plus.

Interested students should contact Stephen Watt: smwatt@uwaterloo.ca


Title: Suggestion Systems for Handwriting Recognition

On-line handwriting recognition with tablet or phone has the advantage that it is not necessary for the system to present a unique recognition result. It is possible to present a set of best guesses and have the user accept the top result or make a correction. This means that a user’s acceptance and correction history can be used to continuously train and individualize the recognition. This project is divided in two parts: the first is to explore methods to evolve the support set of symbol samples as character suggestions are accepted and rejected. The second is to understand to what degree handwriting “styles” can be used to predict preferred forms of symbols, i.e if a writer draws one character in a certain way, can this be used to predict how they will write other characters. Experience with Typescript and Node.js will be an asset to the URA candidate.

Interested students should contact Stephen Watt: smwatt@uwaterloo.ca


Title: NAN-Boxing for Read-Free Javascript Code

Programming language interpreters, such as those for Javascript, typically allocate data objects in memory augmented with header words that describe the object type and size. This means that type testing, array bounds checks and other operations require following a pointer and reading memory.   This is much slower than register-to-register operations. One technique that is used to improve performance is so-called “NAN-boxing” which encodes pointers in the “not-a-number” space of floating point numbers. This project explores the performance gains that can be made by encoding additional information with the pointer, including certain values and size information. A URA candidate should be familiar with at least one systems level programming language, such as C/C++, and working with program-managed memory.

Interested students should contact Stephen Watt: smwatt@uwaterloo.ca


Title: Learner Modelling for On-Line STEM Education

On-line education is undergoing a transformation in which the traditional “repeat until you get the quiz right” model is starting to be replaced with multiple pre-programmed paths with detours. This project will explore using machine learning techniques on quiz data to identify classes of learners with correlated learning needs. This can allow individualized coaching by the on-line instruction system, and steer students toward explanations given in terms they have shown they understand.  A URA candidate should have experience with, or be willing to learn about, R or python and SVMs.

Interested students should contact Stephen Watt: smwatt@uwaterloo.ca


Title: Improving the Walnut Software for Proving Theorems in Combinatorics on Words

Walnut is free software, written in Java, and described at https://cs.uwaterloo.ca/~shallit/walnut.htm to prove theorems in combinatorics on words.  I am looking for a URA with very good Java skills, who can implement some additional capabilities in the system.

Prerequisites: Familiarity with finite automata, graph algorithms, linear algebra, and good Java skills.

Interested students should contact Prof. Jeffrey Shallit: shallit@uwaterloo.ca


Title: Hyperspectral Data Acquisition for Light Transport Simulations

It is a well-known fact that a well-designed light transport model is of little use without reliable supporting datasets. These include biophysical data (e.g., refractive indices and absorption coefficients) and specimen characterization data (e.g., thickness and pigment concentrations) to be used as input, as well as evaluation data (e.g., reflectance and transmittance curves) to be used in the assessment of its predictive capabilities. Although one may assume that such datasets are readily available, especially for ubiquitous materials such as plants, human tissues and soils, in reality this is not case. In fact, a common constraint shared by all these datasets is scarcity. Oftentimes, the search for such datasets becomes the bottleneck of research projects. The Natural Phenomena Simulation Group (NPSG) is looking for undergraduate students interested in acquiring hands on experience on this important aspect of scientific research and in contributing to some of our projects, which include, for example, the detection and analysis of subsurface targets in terrestrial and extraterrestrial terrains and the screening of medical conditions.

Interested students should be familiar with fundamental numerical analysis concepts and have experience in using Matlab. Experience with applied optics and computer graphics will be taken into account, but it is not required.

Interested students should contact Prof. Gladimir Baranoski at: gvgbaran@gmail.com

 

Title: Visualization of Reflective-Refractive Scattering Phenomena

Reflective-refractive scattering phenomena are among the most ubiquitous and intriguing light and matter interactions found in nature. In this project, we intend to employ rendering techniques to visualize unusual manifestations of this phenomena aiming at educational and scientific applications. The Natural Phenomena Simulation Group (NPSG) is looking for a student with a solid experience and strong interest in realistic image synthesis, particularly in the implementation of physically-based ray tracing algorithms, to collaborate with us in this project.

Interested students should contact Prof. Gladimir Baranoski at: gvgbaran@gmail.com


Title: Symbolic Execution for a Smart Contract Language

Symbolic execution is an automated way of finding and exploiting vulnerabilities in a program. This technique seems particularly suitable for smart contracts, which are small in code size and simple in semantics.

In this project, we seek to implement a prototype symbolic executor for the Move language. The high-level workflow is:
1. Given a seed test (e.g., a script in Move),
2. Execute the script, collect path constraints, and measure how many paths are not covered in the Move modules
3. If there are uncovered paths, try to generate a new test that toggles an if-else condition
4. Repeat the above process until there is no more paths that can be explored based on the setup and structure of the given seed test.

Once the prototype is ready, we might want to work on more advanced topics such as handling loops and cross-module symbolic execution.

Interested students should contact Prof. Meng Xu at: meng.xu.cs@uwaterloo.ca


Title: Writing a Compiler for the Familia Programming Language

Familia is a language design that promises a lot of polymorphism and extensibility in a lightweight, type-safe package. This project is aimed at materializing all this expressive power by creating a compiler for Familia. In particular, students will implement compiler passes transforming Familia code into lower-level languages.

We are seeking ambitious students who have compiler-hacking experiences and, ideally, are familiar with LLVM.

Interested students should contact Yizhou Zhang: yizhou.zhang@uwaterloo.ca


 

Title: A Dashboard for an Internet Censorship Observatory

ICLab is a global and longitudinal Internet censorship measurement platform that collects data on censored webpages around the world since 2016. ICLab makes use of commercial VPNs as vantage points on multiple countries to detect censorship activity based on DNS manipulation, TCP packet injection, and the serving of “blockpages”.
 
Currently, however, ICLab is only able to archive raw measurement data for posterior analysis and lacks the ability to provide non-technical users with a data visualization dashboard that facilitates an easy exploration of the platform’s measurements as new data is collected.
 
The goal of this project is to design and develop an ICLab visualization dashboard, based on web technologies, that enables a user-friendly exploration ICLab measurement data (e.g., at a country and measurement type granularity).
 
Interested students should have practical experience with information visualization technologies (e.g. React-D3, Plotly Dash, etc.) and relational databases (SQL). For more information, please contact Prof. Diogo Barradas at dbarrada@uwaterloo.ca and send an unofficial transcript and a resume.


Title: Telemetry and Security in 5G-enabled Programmable Networks

This project focuses on the use of programmable switches to a) devise efficient in-network telemetry primitives that can be used to perform automated attack detection (e.g., DDoS, malware propagation, etc.) and b) orchestrate the automatic deployment of security countermeasures across 5G-enabled networks.
 
Interested students should have practical experience with computer networks. Preference will be given to students familiar with software-defined networking and experience with the P4 programming language (e.g. on the bmv2 simulator or Tofino switches).

For more information, please contact Prof. Diogo Barradas at dbarrada@uwaterloo.ca and send an unofficial transcript and a resume.


Title: Superhero-inspired Interaction in Virtual Reality

We're conducting research to understand the effects of "superhero-inspired" input in virtual reality (VR). We have a prototype with one interaction technique implemented. We're looking for a URA to implement an additional interaction technique, and to potentially help conduct experiments with human participants to evaluate the system. This will involve programming a VR avatar to manipulate virtual objects using various visual representations. Experience with Unity and VR development is required, and experience building games or animations using 3D humanoid models would be a huge asset. Experience conducting experiments with human participants would also be valuable.

Apply using this form: https://forms.gle/U6BwV495e5XFEBRPA


Full-time research opportunities

Questions?

For more information, please contact Daniel Huab (drhuab@uwaterloo.ca)

URA quick facts

Learn all of the benefits of a URA , what it is and why you should apply.