Undergraduate Research Assistantship (URA) program

students working on computer

Application deadlines | Compensation | Eligibility | How to apply | Questions? | URA supervisors | URA research project list

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.

Application deadlines

Term Deadline
Winter 2025 TBD
Spring 2024 Friday, May 31, 2024 (Closed)
Fall 2024 Monday, September 30, 2024 (Closed until August)

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


  • 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.

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.


  • Must be enrolled in a program in the Faculty of Mathematics. Preference is given to students enrolled in Computer Science major plans.
  • Must have completed the second year of study (i.e. term of 3A or higher)
  • Must have a cumulative average (CAV) of at least 80%
  • A student can only do one URA per term.
  • A student cannot be on a co-op term while doing a URA.

International students must have a valid SIN to work in Canada. Please refer to the Student Success Office for more information on applying for a SIN.

Engineering students need to follow Engineering URA procedures. For an Engineering student to do a URA with a CS professor, please follow the application procedures explained on the Engineering URA web page.

How to apply

Check eligibility stated above. Make sure you are eligible before taking the following steps.

  1. 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.
  2. Complete the Student Application form
  3. Your supervisor must then complete the Supervisor Application Form

Both the CS URA Student and Supervisor Application Forms must be submitted to receive your URA payment. Upon completing the webforms, you and your supervisor should receive email confirmations containing copies of each forms' responses.


Interested students with questions should first refer to the Research awards FAQ for more information. 

If you have difficulties regarding the applications forms or any parts of the URA process not listed here or on the FAQ, please contact Daniel Huab.

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

If you are a supervisor who would like to add/remove a research project from this list, please notify Daniel Huab.

Full-time research opportunities