Undergraduate Research Opportunities Conference

September 29 - October 2, 2016

Experience the Life of a Graduate Student

Learn More    Apply    UROC 2015

Are you curious about Computer Science research, but not sure where to start?

UROC is a 4-Day, invitation-only, fully funded research workshop at University of Waterloo for top undergraduate students in Canada.


Mini Projects

Groups of students will work with a professor to tackle a mini-research problem, from brainstorming ideas, prototyping, running experiments and presenting results.

Learn More

Mixers & Panels

Q&A sessions and social events where current graduate students will answer questions about life as junior researchers, their experience applying to graduate school, etc.

Learn More

Research Samplers

Not sure what you are interested in? Explore new research topics by attending presentations from each of the 17 research groups at University of Waterloo.

Learn More

Share Your Passion

Are you already involved in an undergraduate research project? Do you have secret side projects? There will be sessions to showcase your current work.

Learn More


Here is our exciting program

Friday, September 30

08:00am | Depart hotel

08:30-09:15am | Breakfast

09:30-10:45am | Industry Panel

11:00-12:15pm | Lab Tours

12:30pm | Breakout and Lunch

01:00-06:00pm | Project 1

06:15 | Depart UW

07:00pm | Dinner

Saturday, October 1

08:00am | Depart hotel

08:30-09:15am | Breakfast

09:30-10:45am | Campus tour

11:00-12:15pm | Grad Panel

12:30pm | Breakout and Lunch

01:00-06:00pm | Project 2

06:15 | Depart UW

07:00pm | Dinner

Sunday, October 2

09:00am | Depart hotel

09:30-10:15am | Breakfast

10:30-11:15am | Project 1 presentations

11:30-12:15pm | Project 2 presentations

12:30pm | Wrap up w/ awards

01:00pm | Depart w/ boxed lunch

Faculty Panel

The Faculty Panel for 2016 has not yet been finalized.
More Information Coming Soon

The 2015 Faculty Panel

Verna Friesen
Engineering Manager

Michael Terry
Associate Professor
University of Waterloo

Kate Larson
Associate Professor
University of Waterloo

Student Panel

The Student Panel for 2016 has not yet been finalized.
More Information Coming Soon

The 2015 Student Panel

Jeff Avery
Human Computer Interaction (HCI)

Xu Chu
Database Group

Anastasia Kuziminykh
Human Computer Interaction (HCI)

Cecylia Bocovich
Cryptography, Security, and Privacy (CrySP)

Irish Medina
Machine Learning

Mini Projects

The Midas Touch (Human-Computer Interaction)
Project Leader: Prof. Dan Vogel

New camera-based input devices like the Microsoft Kinect and LEAP Motion have generated a lot of excitement and press coverage. The dream is that these will make interacting with computers more natural, but in reality, waving your arm or pointing your finger to navigate something like Netflix can leave a lot to be desired.

In this mini-project, we’ll look at a fundamental Human-Computer Interaction problem associated with all computer vision-based input, the “Midas Touch Problem.” Like the Greek Myth where everything King Midas touches turns to gold, with computer vision, everything you do may be interpreted as input; even if you’re just waving at a friend. What interaction techniques can minimize and hopefully eliminate this problem? Discovering a universal solution could unlock related problems like delimiting gestures and signalling input events. The challenge is to find techniques that work well with noisy computer-vision algorithms, aren’t too tiring, and are easy and fast to perform. We’ll review current approaches and go through a mini bootcamp for computer vision coding so we can prototype and test new interaction techniques — and experience first hand what Human-Computer Interaction research is like.

Distributed Infrastructures For Large-scale Graph Processing (Data Systems)
Project Leaders: Prof. Semih Salihoglu, Prof. Ihab Kaldas

Performing complex analyses on large-scale graphs is becoming one of the core challenges of many application domains, such as web analysis, social network analysis, and biology. As the scale of graphs grow over billions of nodes and edges, applications need to perform their computations on highly-parallel and shared-nothing distributed systems. Most programmers are traditionally not trained in programming shared-nothing distributed systems. In this mini-project, we will first learn how to program an existing distributed graph analytics system called Giraph. Then, we will implement and optimize parallel algorithms to analyze the connectedness structure of several large-scale graphs, such as Twitter, Friendster, and some large-scale random graphs that we will generate. We will evaluate our algorithms and optimizations and discover interesting properties about how the vertices of real and random graphs are connected.

Algorithms for Geometric Data (Theoretical Computer Science)
Project Leaders: Prof. Anna Lubiw, Shikha Mahajan, Simon Pratt

Modelling three dimensional objects arises in many applications: graphics, computer-aided design and manufacture, digitizing sculptures, modelling the earth’s surface in geography and geology, etc. A common technique is to represent the object as a “triangulated” surface — a collection of triangles joined together at their edges.

In this mini-project we will look at algorithms to find triangulations, and to modify the triangulations in various ways. In some situations, we may have to find the triangles ourselves, for example a digitization of a sculpture might just be a huge set of points in three dimensions, from which we need to recover the triangulated surface. In other words, we use a triangulation to determine the “shape” of a set of points. In other situations, we might have a triangulation, but need to “improve” it in some way, for example to compress it by reducing the number of triangles, or to modify it to avoid long skinny triangles.

Analyzing Tweets with Spark (Data Mining)
Project Leader: Prof. Jimmy Lin

Over the past few years, we have seen the emergence of "big data": disruptive technologies that have transformed commerce, science, and many aspects of society. These developments are enabled by infrastructure that allows us to distribute computations across hundreds or even thousands of commodity servers. One key breakthrough that makes this all possible is the development of abstractions for data-intensive computing that allow programmers to reason about computations at a massive scale, hiding low-level details such as synchronization, data movement, and fault tolerance. Spark is one such data processing platform. In this mini-project, we'll explore what a "data scientist" does today in analyzing big data. For concreteness, we'll focus on tweets.

Decoding From Neurons (Computational Neuroscience)
Project Leaders: Prof. Jeff Orchard

So your brain is full of neurons. And neurons fire spikes of electrical activity. But what does it all mean? How can thoughts, memories, and plans be the result of cells exchanging impulses of electricity?

Scientists have been working on this problem for decades. In this project, we will retrace some of the steps of discovery that brought us to today’s -- still rather limited -- understanding of how the brain works. We will start with understanding what a neuron does, then how to interpret the collective activity of a population of neurons. Our final goal is to program a brain-machine interface to control a robotic arm directly from a (virtual) person’s motor cortex.

Social Dilemma Bots (Artificial Intelligence)
Project Leaders: Prof. Jesse Hoey, Josh Jung, Yuwei Jiao, David Choi

A social dilemma is a multi-person situation where self-interest conflicts with collective good: each player's actions affects others and individual gain can hurt the group. Humans tend to be very good at finding what appear to be non-equilibrium solutions that are non-deficient and globally beneficial. A classic example is the prisoner's dilemma where each person can either defect by taking $1 from a (common) pile, or cooperate by giving $2 from the same pile to the other person. In the single round version, a purely rational agent will always defect, leading to a “tragedy” with both players worse off. However, when humans play the iterated (multi-round) game they often are able to achieve cooperation over many rounds. Social dilemmas are of interest in artificial intelligence research (e.g. building negotiation agents) and in computational social science research (e.g. the study of social networks).

In this project, we will first go over social dilemmas in general, and then focus on one in particular (possibly the prisoner's dilemma, or an assurance or negotiation game). We will discuss how communication can be helpful for building trust, and how emotional signaling is often used by humans to ensure cooperation in the long term. Students will write a short program to play the social dilemma game against other computer programs. The last session will be a computer "tournament" between programs, with a prize for the winner!

I'm ready to Apply!

UROC is open to all undergraduate students in Canada, and is fully funded (i.e., we pay for travel, lodging and meals). To be eligible, you must be in the third or fourth year of your program, and open to the possibility of pursuing graduate studies in Computer Science. To apply, please submit a single PDF file containing the following materials to uroc@uwaterloo.ca:

  • resume (2 pages)

  • transcript

  • a personal statement, answering all three of the following questions:

    (a) describe one topic in computer science that you are fascinated by, and explain why (250 words max).

    (b) describe one thing in life, unrelated to computer science, that you are passionate about. Explain why (250 words max).

    (c) if you have the power to turn anything into a computer (i.e., by adding computational or information processing capabilities), what would that be and why? (250 words max)

  • name and email address of at least one reference, preferably a professor or former supervisor from the industry who can comment on your academic achievements, creativity, leadership and personal attributes.

For full consideration, please send your application by July 31, 2016. Academic excellence is important, but we also highly value creativity, leadership, dedication and diversity. A small group of students will be selected based on a mix of criteria that indicate potential in pursuing academic research in Computer Science.

Applications for 2016 are Now Closed