NSERC Undergraduate Student Research Awards (USRAs)


Working in the LCI Lab

One of the most valuable research experiences for an undergraduate student is to be a research assistant. Each year, the department receives a number of NSERC USRA awards that help provide funding for an undergrad student to spend 16 weeks over the summer working full time in one of the department’s research labs, often with the opportunity to publish their work. This kind of research experience is highly sought after by graduate programs.

The positions are available to 2nd, 3rd, and 4th year students with strong academic records. More information, including eligibility requirements, can be found on the NSERC website and on the UBC Student Services website. Watch for in-class and email announcements from the department in January for more details and deadlines. Try to create your own research opportunity!  We encourage you to contact professors you would like to work with directly to find a match. Many professors will be happy to talk to you about the opportunity to hire students at a subsidized wage. See below for a list of current projects and supervisors.

International students can also apply to participate in research!  There are two UBC programs open to international students that provide a subsidy to the researcher so that the cost to the grant is reduced. One is the Science Undergraduate Research Experience (SURE) and the other is the International Work-Learn Undergraduate Research program

International students must have a valid Social Insurance Number and must be eligible to work on campus in the summer.  For questions about eligibility, please speak with an International Student Advisor.

The application process is the same as for the NSERC USRA Awards.  See the 'How to Apply' section below for more details. 


How to Apply:

The instructions for the Summer 2017 applications are below (the deadline was February 15, 2017). Watch for in-class and email announcements from the department in January for more details and deadlines.

To apply, please submit the following:

  • Your CV. File name: 'Last Name, Given Name Student Number - CV'
  • The name of a prospective supervisor
  • A PDF of a joint project proposal, filled out online in NSERC Form 202 (for instructions on how to complete the form go to the NSERC USRA website). File name: 'Last Name, Given Name Student Number - Proposal'
    • Please attach a PDF of the form but do not submit your application through the NSERC website until you have been selected. We encourage you to review the available projects and to contact professors you would like to work with directly to find a match and to submit your application as a pair. However, please note that you can also apply without a supervisor.

Note: transcripts are also required, but they will be provided by the department

NOTIFICATIONS:

The Faculty of Science will soon inform us of how many NSERC USRA awards are available. A departmental adjudication committee composed of three faculty members and one graduate student will rank the applications.

IMPORTANT:

  • Students can complete the online application (NSERC FORM 202) on the NSERC website by clicking "System Login" or, if you are a first-time user, "Register."
  • Instructions on how to complete the forms can be found on the NSERC USRA website


For further details, please visit the UBC Student Services website or the NSERC USRA website.

--------------------------------------------------------------------------------------------------------------------------------

Previous Projects


Summer 2017

Ivan Beschastnikh

Project 1: Analysis of distributed systems

Mutation testing is a strategy for evaluating the efficacy of a test suite. You change, or mutate, the subject program and then see if the test suite finds the change (by failing). We are developing a mutation testing framework for distributed systems. If you like program analysis and/or distributed systems, then this project is for you.

Project 2: Cloud computing

OpenStack is a cloud platform that allows enterprises to run a personal cloud. We are extending OpenStack to include several low-level features such as bandwidth guarantees between allocated VMs.

If you want to hack on cloud computing infrastructure, then this project is for you.

Project 3: System visualization tools

We are building a variety of visualization tools to help developers better understand the behavior of their systems. For example, TSViz is a tool for visualizing traces from multi-threaded systems: http://bestchai.bitbucket.org/tsviz/ . We are working on tools for performance debugging, improving comprehension, etc. If you enjoy data visualization/program analysis and want to contribute to open source tools to help developers, then this project is for you.

Giuseppe Carenini with David Poole

Further developing an interface to support group decision making

Group ValueCharts is a visual tool intended to support groups in making preferential  choice decisions (i.e., select the best alternative out of a set, with respect to some criteria). This project will focus on extending Group ValueCharts to make it more robust and usable by exploring different visual encodings, layouts and interactive techniques. Revisions of of the current prototype will be driven by feedback from current users and by A-B user studies that will need to be designed and run.

Cristina Conati

Improving and Testing an Eye Tracking Data Processing Library

Supervisor: Prof. Cristina Conati   - conati@cs.ubc.ca

The overall goal of this project is to devise intelligent user interfaces that can track their users’ gaze and use it to infer user states relevant to personalize the interaction (e.g., user attention level, confusion, engagement, cognitive abilities).

EMDAT (Eye Movement Data Analysis Toolkit) is a python library being developed in our research laboratory for analyzing user eye gaze and pupil data in terms of a wide variety of features that can be leveraged for predicting user states. We are looking for a USRA who will help  test and further develop EMDAT. EMDAT has dozens of configuration parameters which dictate how raw eye tracking data is processed. Given this complexity, we require help implementing extensive testing regarding the correctness of EMDAT functionality across many different parameter configurations, as well as compiling results on the impact of the range of each parameter setting within or between datasets. The student will then be involved in enhancements of the current EMDAT library,  based on the results of the testing process. The student will work closely with PhD student Dereck Toker (dtoker@cs.ubc.ca) and Postdoctoral Fellow Sebastien Lalle (lalles@cs.ubc.ca).

Michael Friedlander

Project 1: # Collaborative Resistance

How do we measure the "distance" between two people in a network? We might borrow a notion from electrical networks, which measures the electrical resistance between two components on a network, in order to determine the relatedness of people in a social network.  This project aims to apply these ideas to compute the similarity between academics on the network implied by co-authorship on academic papers. The work involved in this research requires several steps: assembling a data set, implementing numerical algorithms to compute the resistance distances between authors on the network, and developing visualization tools that can be used to explore the results.

Applicants should have familiarity with a numerical-computing language (e.g., Julia or Matlab), a background in linear algebra (e.g., CPSC302 or 402), and some experience with web development.

Project 2: Numerical algorithms in Julia

Software implementation of numerical algorithms is one of the very best ways of transferring mathematical ideas into practice. For software implementations to be useful, they need to efficient and robust. The aim of this project is to assemble a library of numerical algorithms in Julia — a high-level, high-performance technical computing language (http://julialang.org/). This project requires someone already familiar with a high-level language (such as Python or Matlab), and interest in numerical algorithms and their implementation.

Thomas Fritz 

Project 1: Sensing Code Difficulty

Biometric sensor technology offers the opportunity to measure physiological features of a person, such as the pupil dilation or brain wave activity, that can then be linked to the person's cognitive and emotional states. Initial results from previous studies show that biometric data can be used to predict the code and task difficulty a software developer experiences while working. In this project, you will develop an approach that collects, processes and analyzes biometric data captured with an eye-tracker in real-time to predict the difficulty of the code elements a software developer is working with.

Project 2: Awareness of Interactions at Work

Interruptions of knowledge workers are common and can cause a high cost if they happen at inopportune moments. One of the most costly kind of interruptions are in-person interruptions due to their high frequency and immediate nature. One way to reduce the high cost of in-person interruptions is to provide awareness to the knowledge workers. In this project, you will develop an approach that (a) uses a microphone to capture and identify in-person interruptions of a knowledge worker and (b) provides a visualization of the number of interruptions and the length of the interactions to the knowledge worker.

Alan Mackworth with David Poole

AIspace2 with Alan Mackworth and David Poole. AIspace (see http://aispace.org) has been developed by USRA students and grad students over a number of years. There are two aspects of the job. The first is to fix some of the bugs in the existing tools (written in Java). We have written many of the AI algorithms in open-souce Python, and the second task is to integrate the code with interactive visualizations (e.g., in D3) that are easy for students to extend and allow the students to modify the AI algorithms. Skills required: proficiency in Java and Python, the ability to write clear and simple code.

Ian Mitchell

Project 1: Numerical Software Development for Differential Equations

Research on robotics and cyber-physical systems often involves approximating the solution of differential equations which model the physical system being studied. The goal of this project would be to demonstrate on a new example, improve the user interface of, validate the implementation of and/or add features to one of several software packages used for approximating sets of solutions in order to demonstrate the correctness of robotic or cyber-physical systems. The Toolbox of Level Set Methods is a locally developed example, but others include SpaceEx or CORA.  Applicants should be familiar with Matlab and numerical ODE solvers (for example, CPSC 303 or Math 405).

Project 2: Collaborative control scheme design, simulation and testing for a smart wheelchair

Among the projects of the CanWheel collaboration and AGE-WELL Network Center of Excellence is investigating techniques which would allow elderly individuals with mild cognitive and/or sensory impairments to better use powered wheelchairs.  While it is relatively easy to implement a system in which either the user or the robotics chooses the motion of the wheelchair, it is much more challenging to blend these two inputs in real-time and in a manner which is both safe and non-threatening to a cognitively impaired user.  As part of this process, the team runs user studies with the target population and their therapists in long term care centers. Goals for this summer's project include setting up a virtual reality workstation for trials of collaboration control policies, data collection and analysis from real-world and virtual trials, and ongoing  prototype development and evaluation of collaboration and training interfaces and control policies.  Applicants should be familiar with C++, Matlab and/or Python, and will be expected to learn and use ROS (robot operating system) to program the wheelchair(s).

Michiel van de Panne

Deep Reinforcement Learning for Physics-based Models of Movement

In our research group, we are developing interactive and responsive physics-based simulations of human and animal movement. The primary challenge is that of learning motor skills, i.e., how to drive the movement of the joints over time so as to achieve skilled movement. This can be used to drive digital humans (and other animals) for computer animation, as well as providing relevant insights for robotics and biomechanics. Over the past two years, we have developed highly-capable solutions based on deep reinforcement learning. We are looking to further build on our methods and results over the summer. Directions include: (a) developing web-based demonstrations for these state of-the-art models; (b) developing learned predictive (kinematic) models of movement that capture the combined effect of the learned control and the physics-based simulation; and (c) learning control models that are parameterized for anthropometry, i.e., that are suitable for characters having a wide range of proportions.  Useful skills include knowledge of machine learning, deep learning, reinforcement learning, physics-based simulation, C++, and experience in using compute clusters. A passion and appreciation for skilled movements of all kinds (simulated and real) is also hugely helpful.

Summer 2016

Ivan Beschastnikh
Project 1: Securing data access with ARM TrustZone

The ARM architecture includes a new standard called TrustZone that can be used to run two operating systems side-by-side: a trusted OS, and a normal/untrusted OS. In this project you will contribute towards an ongoing large systems project whose goal is to design a new trusted OS and extend the file system with per-file security policies that are evaluated in the trusted OS. The resulting system will support scenarios in which file access can be controlled through a rich set of security policies. For example, the device GPS location can determine file access permission. An ideal candidate would have taken operating systems and is interested in reading and writing low-level systems code.

Project 2: Managing assertions in complex systems
Assert statements are used extensively in large systems codebases, such as Linux. However, today's developers manually maintain thousands of assert statements without much tool support. In this project you you will contribute towards a project whose goal is to develop a suite of tools to help systems developers manage assert locations and assert predicates in large codebases. This project will span multiple research areas, including software engineering, software analysis, compilers, and operating systems.

Project 3: Refactoring state out of network middleboxes
The virtualization of network functions is prompting a re-think of traditional network architectures. Middleboxes, such as NAT boxes and firewalls, long considered "architectural barnacles", have received significant attention. In this project you will contribute towards ExMB, a new architecture in which middlebox state is maintained in an external special-purpose data store. ExMB virtualizes middlebox state, which means that middleboxes can now be deployed as virtual instances managed by an unified control plane. An ideal candidate would have experience with networks and/or operating systems.

Project 4: Mining temporal program properties without templates
Specification inference tools infer a specification, like a finite state machine or a logical formula, from a set of executions of a program (i.e., positive examples). In this project the student will extend an existing temporal specification mining tool called Texada ( https://bitbucket.org/bestchai/texada/ ) with the ability to mine properties without relying on templates. The core of the project will combine genetic algorithms with Texada's existing temporal property mining algorithms. An ideal student would have a strong discrete math/algorithms background.

Michael Friedlander
Numerical algorithms in Julia
Software implementation of numerical algorithms is one of the very best ways of transferring mathematical ideas into practice. For software implementations to be useful, they need to efficient and robust. The aim of this project is to assemble a library of numerical algorithms in Julia, which is a high-level, high-performance technical computing language (http://julialang.org/). This project requires someone already familiar with a high-level language (such as Python or Matlab), and interest in numerical algorithms and their implementation.

Jim Little
This research project supervised by Prof. Jim Little in the Laboratory for Computational Intelligence in Computer Science at UBC is directed at understanding human activities, specifically understanding broadcast sports videos, particularly, ice hockey and basketball. (See http://www.cs.ubc.ca/~shervmt/) We aim to build a system that allows coaches to analyze games, sports viewers to replay their own view of the game, selecting the players and sequences of types that interest them, and in general allows people to understand the game at many semantic levels. We aim moreover to identify players, their roles, and how the players interact over time and space. The technical challenges include handling moving cameras, low resolution imagery, and rapidly moving players. Several fundamental problems must be addressed: rectification of images taken by panning, tilting, and zooming cameras; motion recognition; player tracking; player identification. Our recent work builds on strong advances in tracking and recognition and targets general semantic understanding of the game. The project includes many aspects of vision: projective geometry, machine learning, online estimation, modeling of geometry and appearance. We build systems that solve concrete tracking and identification problems via strong implementations and exploratory theories. The software for the project is implemented in several languages, including C++, Matlab, and increasingly Python. Specific language experience is desirable but not necessary, however programming maturity is essential. A student working in the project will acquire both software development experience and modeling skills, in an active group of collaborating graduate students researching all aspects of the project. We have weekly meetings to discuss topics related to video understanding, and other weekly meetings on robotics and vision (http://www.cs.ubc.ca/nest/lci/robuds/).

Karon MacLean
Project 1: Macaron - software (and hardware) development
Supervisor: Prof. Karon MacLean (SPIN Lab) - maclean@cs.ubc.ca
Grad Mentor(s):  Oliver Schneider <oschneid@cs.ubc.ca>

Description: Macaron (hapticdesign.github.io/macaron) is an online haptic editor, enabling artists and designers to create vibrations for wearables. Macaron is currently in beta, but we hope to reach an initial release in 2016. This project is to support production and release of a fully web-deployed Macaron editor.

In the future, there is room for involvement beyond the web development - interaction design, user studies and feedback, hardware development for demos, and extension to other devices like the CuddleBit or Arduino

USRA: Student will help develop the application, design and implement improvements to the user interface, and may help with studies and testing.

Required skills: Web/javascript, git, software engineering.
Optional skills: User study design/execution (CPSC 344, 444); sound/audio, basic hardware (soldering, simple sewing)

Other:
- Comfortable with hardware tinkering - can’t be afraid of it.
- Good work management and problem solving skills; able to handle working with a very strong, engaged but distributed team.

Project 2: DIY Fabric Touch Sensor Design: Requirements, Construction, Test
Supervisor: Prof. Karon MacLean (SPIN Lab) - maclean@cs.ubc.ca
Grad Mentor(s):  Laura Cang <cang@cs.ubc.ca>

1-liner: Construct fabric touch sensors of varying resolution, out of available electrically conductive striped fabric samples; compare with existing sensor models, with collection of user touch data.

Description:This projects relates to SPIN Lab’s ongoing research in creating and understanding “emotionally intelligent” social robots. Our immediate objective is to support affectively (emotionally) realistic interactive behaviours with realtime touch gesture sensing and interpretation on flexible, moving surfaces, with appropriate robot responses.

Here: Optimal resolution for a flexible affective-touch gesture recognition is hard to specify a priori, because of the many different types of touches that people use in this context. We have acquired 2 different types of electrically striped (“zebra”) fabrics which could be made into flexible fabric touch sensors of 3 different resolutions. Experimentation is required to determine how these different sensors compare to our current configuration.  The lab has built several such sensors in the past, and has considerable experience in their construction. Note: this project is ideal for someone who’s a bit crafty! Sewing machine involved.

USRA: A one-term undergraduate project will involve one or more of the following, depending on skills, interest, and stage we’ve gotten to by the time the project starts: Following sensor design practices already developed in the lab, detail-design and physically construct  three new sensors from zebra fabric. Collect gestural touch data. Record polling time, resolution changes, etc, and analyze against specifications.

Requirements:
1. Familiar with sewing and/or related hands-on, craft-type skills
2. Arduino/C - for building sensor and collecting touch data
3. HCI: For data collection stage, strong performance in CPSC 344 or equivalent; 444 preferred (quantitative study involved). Interest and experience in simple user study design important
4. Matlab: for analysis of results
5. Optional: ML, Weka: higher order analysis of touch data
6. Other: Good work management and problem solving skills; able to handle working with a very strong, engaged but distributed team.

Other:
- Comfortable with hardware tinkering - can’t be afraid of it.
- Good work management and problem solving skills; able to handle working with a very strong, engaged but distributed team.

Project 3: Extract Emotional Intent from Touch-sensed Data - Data collection and/or ML Analysis
Supervisor: Prof. Karon MacLean (SPIN Lab) - maclean@cs.ubc.ca
Grad Mentor(s):  Laura Cang <cang@cs.ubc.ca>, Paul Bucci <pbucci@cs.ubc.ca>

1-liner: Design a simple study to collect touch data from participants expressing emotional intent (i.e. "make the robot feel anger”), then analyze the data using ML techniques. Project may include one or both of these two elements.

Description: This projects relates to SPIN Lab’s ongoing research in creating and understanding  “emotionally intelligent” social robots. Our immediate objective is to support affectively (emotionally) realistic interactive behaviours with realtime touch gesture sensing and interpretation on flexible, moving surfaces, with appropriate robot responses.

Here, We wish to compare how machine recognition compares to human recognition of emotional intent (Hertenstein 2006). Following up on a number of studies in SPIN lab where we examine human touch of a sensor-covered furry robot, in this study variant we wish to specifically look at the case where individuals are trying to generate a particular emotion in the robot.

USRA: A one-term undergraduate project will involve one, or ideally two-three of the following, depending on skills, interest, and stage we’ve gotten to by the time the project starts: (a) designing a data collection method adapted from Hertenstein paper, (b) collecting the data, and (c) analyzing it.

Requirements:
1.HCI: For data collection stage, strong performance in CPSC 344 or equivalent. Interest and experience in simple user study design important
2. Machine Learning, Weka:For analysis stage, strong performance in at least an introductory ML course is required.
3.Statistics:Knowledge of R valuable for analysis.
4.Other:Good work management and problem solving skills; able to handle working with a very strong, engaged but distributed team.

Ian Mitchell
Projec 1: Numerical Software Development for Differential Equations
Research on robotics and cyber-physical systems often involves approximating the solution of differential equations which model the physical system being studied.  The goal of this project would be to demonstrate on a new example, improve the user interface of, validate the implementation of and/or add features to one of several software packages used in the lab; for example, the Toolbox of Level Set Methods [http://www.cs.ubc.ca/~mitchell/ToolboxLS] and the Ellipsoidal Toolbox [http://systemanalysisdpt-cmc-msu.github.io/ellipsoids/].  Applicants should be familiar with Matlab and numerical ODE solvers (for example, CPSC 303 or Math 405).

Projec 2: Collaborative control scheme design, simulation and testing for a smart wheelchair
Among the projects of the CanWheel collaboration [http://www.canwheel.ca] and AGE-WELL Network Center of Excellence [http://agewell-nce.ca] is investigating techniques which would allow elderly individuals with mild cognitive and/or sensory impairments to better use powered wheelchairs.  While it is relatively easy to implement a system in which either the user or the robotics chooses the motion of the wheelchair, it is much more challenging to blend these two inputs in real-time and in a manner which is both safe and non-threatening to a cognitively impaired user.  As part of this process, the team runs user studies with the target population and their therapists in long term care centers.  Goals for this summer's project include data collection from trials, interfacing the control software with a virtual reality wheelchair simulator, and ongoing prototype development and evaluation of collaboration and training interfaces and control policies.  Applicants should be familiar with C++, Matlab and/or Python, and will be expected to learn and use ROS (robot operating system) to program the wheelchair(s).

Project 3: Serious Games for Wheelchair Training
Many older adults are prescribed manual wheelchairs due to mobility impairments, but few receive any training in basic wheelchair skills.  We have already designed an Android tablet app which provides training videos to novice wheelchair users and monitors their practice time; however, user motivation quickly deteriorates because of the repetitive nature of the training tasks.  In this project we are investigating how to "gamify" the training process: how could we take advantage of common tricks from the video game industry to increase motivation levels for participants?  Last summer we designed two prototype games that are currently undergoing user trials; this summer we will use results from those trials to improve the game experience, add features (such as the ability to detect wheelies) and/or perform additional trials.  Applicants should be familiar with Java and will be expected to work on the Android mobile platform.

David Poole
Preference elicitation for computational sustainability with Giuseppe Carenini, Gunilla Öberg (IRES) and David Poole. One of the most challenging aspect of societal decision making (e.g., to create a more sustainable society) is to trade off the competing objectives of multiple stakeholders. We have a research prototype for exploring preferences that we need to make more user-friendly and self explanatory. Skills required: good programming and design skills; familiarity with human-computer interaction.

AIspace2 with Alan Mackworth and David Poole. AIspace (see http://aispace.org) has been developed by USRA students and grad students over a number of years. There are two aspects of the job. The first is to fix some of the bugs in the existing tools (written in Java). We have written many of the AI algorithms in open-souce Python, and the second task is to make the code more interactive and clear (without making it more complicated). Skills required: proficiency in Java and Python, the ability to write clear and simple code.

Summer 2015

Ivan Beschastnikh
Project 1

Logs generated by distributed systems are complex and unwieldy as it can be challenging to piece together logs generated at multiple hosts. Even if these logs contain ordering information, they are often still too complex for a developer to understand. In this project the student will contribute to a tool for visualizing distributed system logs that contain vector timestamps (based on the tool from project #1). The current tool visualizes a single execution as a time-space diagrams of multiple hosts. The student will extend this tool to visualize multiple executions (e.g., hundreds) in a concise and comprehensible manner.

Project 2
Test case generation is a program analysis technique that is used to generate new unit/integration tests of an application based on an existing test suite, the source code of the program, and other information. Recently, random test case generation has seen a resurgence in popularity. In this project, the student will explore ways of augmenting random test case generation with mined program invariants. For this, the student will extend Randoop, a popular random test case generation tool.

Giuseppe Carenini with Raymond Ng
The student will contribute to our work on mining, summarizing and visualizing written conversation (e.g., email, blog). An initial step may consist of combining techniques we have developed for topic modeling and rhetorical parsing to effectively perform query-based summarization. Next, we will test our framework on different conversational corpora including a blog corpus that has been recently annotated in the context of a large EU project. The project will require system development as well as running experiments and analyzing results.

Ron Garcia
Since the early days of programming, there have been dynamic languages (like LISP, Python, and BASH) that are good for rapid prototyping, and static languages (like Scala, F#, and ADA), that provide strong type systems to catch errors well before a program is deployed.  Gradual Typing is an approach to designing programming languages that blend the strengths of both styles of languages and support a seamless path from dynamic prototypes to static production code.  The goal of this project is to develop conceptual underpinnings for Gradual Typing that can help language designers evaluate how gradual their languages are, and how to gradualize languages that represent the wide range of programming paradigms.  The ideal candidate is comfortable with mathematical reasoning and has an excellent grasp of programming language design concepts, as demonstrated by strong performance in CPSC 311 for instance.

Kevin Leyton-Brown
In the next 1-2 years, the US Federal Communications Commission will conduct an innovative auction in which television stations sell their broadcast rights, remaining TV stations repacked into a smaller range of channels, and the freed radio spectrum is sold to mobile phone companies. This auction will be a big deal--it's forecast to net the government $20 billion. It also represents a very difficult computational and economic problem, chiefly because the auction design depends on repeatedly solving NP-complete problems to reason about station repackings. Our group is studying variations in the auction design and improvements to the repacking algorithm; it's extremely likely that our work will affect the practice of the real auction. We're looking for an exceptional undergraduate student to complement our team over the summer. Such a student will need a background in programming (ideally Java), machine learning, and statistics. Daily work will involve writing code, running experiments on our 160-CPU cluster, analyzing data, and modifying algorithm and auction designs as a result to achieve desired objectives.

Jim Little
This research project supervised by Prof. Jim Little in the Laboratory for Computational Intelligence in Computer Science at UBC is directed at understanding human activities, specifically understanding broadcast sports videos, particularly, ice hockey and basketball. (See http://www.cs.ubc.ca/~shervmt/) We aim to build a system that allows coaches to analyze games, sports viewers to replay their own view of the game, selecting the players and sequences of types that interest them, and in general allows people to understand the game at many semantic levels. We aim moreover to identify players, their roles, and how the players interact over time and space. The technical challenges include handling moving cameras, low resolution imagery, and rapidly moving players. Several fundamental problems must be addressed: rectification of images taken by panning, tilting, and zooming cameras; motion recognition; player tracking; player identification. Our recent work builds on strong advances in tracking and recognition and targets general semantic understanding of the game. The project includes many aspects of vision: projective geometry, machine learning, online estimation, modeling of geometry and appearance. We build systems that solve concrete tracking and identification problems via strong implementations and exploratory theories. The software for the project is implemented in several languages, including C++, Matlab, and increasingly Python. Specific language experience is desirable but not necessary, however programming maturity is essential. A student working in the project will acquire both software development experience and modeling skills, in an active group of collaborating graduate students researching all aspects of the project. We have weekly meetings to discuss topics related to video understanding, and other weekly meetings on robotics and vision (http://www.cs.ubc.ca/nest/lci/robuds/).

Karon MacLean with Ron Garcia
CyberHap MiniMooc for learning Physics via Haptics

This NSF-funded project’s aim is to learn whether the embodied, tangible aspects of an engaged haptic (force feedback) experience can contribute to learning of physical concepts, such as force-motion relationships as taught in high school physics courses. In collaboration with Stanford robotics and education experts, we will use a low-cost 1-dimensional haptic display to evaluate this question in an educational context – initially, students from high schools in a low-income neighbourhood in the Bay Area, eventually in controlled hypothesis-driven evaluations.

SPIN Lab’s contributionwill be graphical programming tools. Learners who are not expert programmers will be too deeply distracted by the arduous task of constructing haptic simulations to actually learn. Instead, we will build a visual programming interface to support the learning goals and create a transparent, hands-on connection to the underlying hardware experience. Thislargertask involves prototyping several variants of a front-end of a graphical programming environment, based on requirements that will be drawn from a set of team-designed lesson plans and a pool of target student users and their teachers; implementing one or more best candidates, in collaboration with programming language expert Dr. Ron Garcia, and evaluating them with students and with our Stanford team.

USRA: A one-term undergraduate project will involve a responsible role (as part of a team) in the larger task described above, with specifics somewhat dependent on individual strengths and the larger project’s stage when the project begins.

Requirements:
1. Programming:Strong and extendable abilities; experience in a variety of system
  - Experience with Arduino, and/or with introductory programming language principles (e.g. CPSC 311) a plus.
2.HCI: strong performance in CPSC 344 or equivalent. Interest and experience in user requirements gathering, prototype development, and prototype evaluation with users is essential.
3.Physics: A good grasp of basic concepts.

Other:
- Comfortable with hardware tinkering - can’t be afraid of it.
- Good work management and problem solving skills; able to handle working with a very strong, engaged but distributed team.

Ian Mitchell
Numerical Software Development for Differential Equations
Research on robotics and cyber-physical systems often involves approximating the solution of differential equations which model the physical system being studied.  The goal of this project would be to demonstrate on new example, improve the user interface of, validate the implementation of and/or add features to one of several software packages used in the lab; for example, the Toolbox of Level Set Methods [http://www.cs.ubc.ca/~mitchell/ToolboxLS] and the Ellipsoidal Toolbox [http://systemanalysisdpt-cmc-msu.github.io/ellipsoids/].

Applicants should be familiar with Matlab and numerical ODE solvers (for example, CPSC 303 or Math 405).

Collaborative control scheme design, testing and data publication for a smart wheelchair
Among the projects of the CanWheel collaboration [http://www.canwheel.ca] and AGE-WELL Network Center of Excellence [http://www.agewell-nce.ca] is investigating techniques which would allow elderly individuals with mild cognitive and/or sensory impairments to better use powered wheelchairs.  While it is relatively easy to implement a system in which either the user or the robotics chooses the motion of the wheelchair, it is much more challenging to blend these two inputs in real-time and in a manner which is both safe and non-threatening to a cognitively impaired user.  As part of this process, the team runs user studies with the target population and their therapists in long term care centers.  Goals for this summer's project include visualization and analysis of data from previous trials and ongoing prototype development and evaluation of collaboration and training interfaces and control policies.

Applicants should be familiar with C++ or Python, and will be expected to learn and use ROS (robot operating system) to program the wheelchair(s).

Serious Games for Wheelchair Training
Many older adults are prescribed manual wheelchairs due to mobility impairments, but few receive any training in basic wheelchair skills.

We have already designed an Android tablet app which provides training videos to novice wheelchair users and monitors their practice time; however, user motivation quickly deteriorates because of the repetitive nature of the training tasks.  In this project we would like to investigate how to "gamify" the training process: how could we take advantage of common tricks from the video game industry to increase motivation levels for participants, and what sensors might be needed to provide feedback from the physical environment?  Applicants should be familiar with an imperative language (eg: Python, Java, C/C++, Matlab) and will be expected to work on the Android mobile platform.

Summer 2014

Ivan Beschastnikh
Project 1

A major challenge when debugging distributed systems is analyzing execution logs generated at multiple hosts. In this project the student will work on a tool that automatically generates logs of distributed system activity with vector timestamps (a type of a logical clock). The current version of the tool works on Java applications and relies on the AspectJ compiler. The student will generalize the tool to work with Python and C programs.

Project 2
Logs generated by distributed systems are complex and unwieldy as it can be challenging to piece together logs generated at multiple hosts. Even if these logs contain ordering information, they are often still too complex for a developer to understand. In this project the student will contribute to a tool for visualizing distributed system logs that contain vector timestamps (based on the tool from project #1). The current tool visualizes a single execution as a time-space diagrams of multiple hosts. The student will extend this tool to visualize multiple executions (e.g., hundreds) in a concise and comprehensible manner.

Project 3
Test case generation is a program analysis technique that is used to generate new unit/integration tests of an application based on an existing test suite, the source code of the program, and other information. Recently, random test case generation has seen a resurgence in popularity. In this project, the student will explore ways of augmenting random test case generation with mined program invariants. For this, the student will extend Randoop, a popular random test case generation tool

Project 4
Model inference tools infer a model, like a finite state machine, from a set of executions of a program (i.e., positive examples). Many of these tools require the mining of the executions to extract temporal patterns that can be used to generalize the observations to derive a more general, and compact, model. In this project, the student will develop and implement a miner for a set of tertiary temporal patterns that will be added to an existing model inference framework.

Michael Friedlander
Linear operators are at the core of many of the most basic algorithms for signal and image processing. Matlab's high-level, matrix-based language allows us to express naturally many of the underlying matrix operations---e.g., computation of matrix-vector products and manipulation of matrices---and is thus a powerful platform on which to develop concrete implementations of these algorithms. Many of the most useful operators, however, don't lend themselves to the explicit matrix representations that Matlab provides.
This project intends to continue the development of the Spot Toolbox (http://www.cs.ubc.ca/labs/scl/spot/), which aims to bring the expressiveness of Matlab's built-in matrix notation to problems for which explicit matrices are not practical. It will involve adding online documentation, and adding features to the toolbox.

Kevin Leyton-Brown
Meta-algorithmic techniques for designing high-performance algorithms

Algorithms for solving difficult computational problems play a key role in many applications. In many cases, provably efficient algorithms are unlikely to exist, and heuristic methods are the key to solving these problems effectively. However, the design of effective heuristic algorithms, particularly algorithms for solving computationally hard problems, is a difficult task that requires considerable expertise. State-of-the-art heuristic algorithms are traditionally constructed in an iterative, manual process in which the designer gradually introduces or modifies components or mechanisms whose performance is then tested by empirical evaluation on one or more sets of benchmark problems. This design problem is difficult and requires considerable expertise. The end use of existing state-of-the-art algorithms is often complicated by the fact that these algorithms are highly parameterized; end users often need to experiment with various combinations of settings in order to achieve satisfactory performance. Our research aims to design tools for automating both of these processes. In particular, we have focused on automatic algorithm design, automatic parameter tuning, and the automatic construction of algorithm portfolios that outperform their constituents. A student joining our group needs a background in programming, machine learning, and statistics. Daily work involves writing code, running experiments, analyzing data, and modifying algorithm designs as a result to achieve desired objectives.

Karon MacLean
HCI Design Project:  Customization of Tactile Feedback Notifications for Applications in Sports Training, Physical Therapy and Emoticons
The Sensory Perception and Interaction (SPIN) Research Group is developing human-computer interaction (HCI) applications in which tactile notifications provide specific information to users. In collaboration with the startup Haptok Inc, we are investigating user customization techniques for several case studies.

These involve applications where, for example,
1) a 'smart system' with sensors, e.g. of realtime interpretation of motion (developed in our lab), assists a user to achieved desired physical behavior, such as sports interval training with fine-grained and usable feedback on e.g. pace, cadence, heartrate, and even finer details of omtion; or for parameters relating to accurate execution of physical therapy activity prescriptions.

2) visual medium need to be enriched with qualitiative elements, such as emoticons (haptically expressed) in communications.

The USRA project is to assist a PhD researcher in human-computer-interaction design activities relating to *customization* of these applications, to develop engaging and usable ways to choose from extensive alternatives to get results that work for a particular individuals preferences and needs.

The ideal candidatewill have taken CPSC 344 (Introduction to User Interface Design) or its equivalent. You will be  comfortable with a range of visual mockup tools and techniques, principles of HCI design, and running evaluations in support of design.

This work will be conducted in collaboration with Haptok Inc., a startup emerging from SPIN, which has interest in this problem. A student who does well on this project may have potential for further involvement with this emerging company.

Joanna McGrenere
The following projects are available with Joanna McGrenere’s research team. An undergrad student could work on one (possibly two) of these projects this summer. The ideal candidate would have knowledge of user interface design, as well as some experience running user studies (CPSC 344 or equivalent) and doing quantitative analysis (CPSC 444 or equivalent).

Project 1: Cognitive Testing on a Computer
Cognitive Testing on a Computer (C-TOC) is a computerized screening test for cognitive impairments that older individuals can take independently at home without the presence of a health professional. Currently in Canada, the average wait time for a consultation in a clinical setting regarding cognitive concerns ranges between 6 and 24 months during which cognitive performance can degrade further. C-TOC would assist in detecting early signs of cognitive impairments for test-takers at home so that they can acquire medical attention faster.

We are looking for a student to help with various aspects of C-TOC, which includes but is not limited to porting a desktop version of C-TOC (operated by the mouse) to one that runs on a tablet (touch based). We will be exploring touch interaction for older adults, both by reading the literature but also thinking towards user studies with older adults that evaluate touch-based gestures. The goal will be to redesign and re-implement C-TOC for this platform and interaction modality. We also have a number of ongoing user studies with older adults, including one that is looking at the impact of interruptions (e.g., a phone call) on C-TOC performance. A student would assist in running the study and analyzing the data collected.

This project involves working with a multi-disciplinary team from Computer Science and Medicine.

Project 2: Touch Interaction on Mobile Devices for Users Across the Adult Lifespan
As the use of mobile devices grows, there is a critical need to understand how users touch and type on touchscreens under common problematic physical scenarios such as walking or in a moving vehicle. This project's goal is to explore touch interaction on mobile devices with the hopes of creating adaptive interfaces that improve touch accuracy for users of all ages, skill and physical context. We are looking for a student that can help us design and run user studies that explore touch interaction for users spanning the adult lifespan. Additionally, the student would assist in data management and analysis as a necessary precursor to the design of interfaces that adapt to the user and their environment.

Project 3: Personalization in Personal Task Management
Personalizable systems provide mechanisms through which users can make changes to the system (customize it)  to better fit their purposes/needs. These mechanisms include choosing between a set of options, using a form of construction set to construct new functionality, and scripting or directly changing the source code. The first approach is limited mainly due to the difficulty of predicting alternative options that users might need in the future, at the design time. The last approach requires the user to have some knowledge of programming. We are exploring different aspects of the construction set approach in the task management domain to address questions such as: What elements should the construction set include? What are the mechanisms through which users can assemble these elements for creating new functionality? What communication mechanism should the system provide to facilitate sharing of personalizations that are performed with this approach? A student would assist in implementing some of the mechanisms that we have prototyped and/or in running a user study to assess how well users are able to use such mechanisms to make their desired changes to a task management system.

Ian Mitchell
Automated parameter discovery for the Toolbox of Level Set Methods

The Toolbox of Level Set Methods [www.cs.ubc.ca/~mitchell/ToolboxLS/] is a collection of Matlab routines for dynamic implicit surfaces and approximating the solution of the Hamilton-Jacobi partial differential equation (PDEs).  New users often have trouble running their first simulations because there are a large number of parameters that must be correctly set; for example, the extent and resolution of the computational domain.  The goal of this project is to automatically determine appropriate settings for these parameters and construct a simple graphical interface by which new users could propose systems, run simulations and see how the parameters are set.  Applicants should be familiar with Matlab and numerical integrators for ODEs; familiarity with PDEs is not necessary.

Control synthesis from nonsmooth interpolants under uncertainty
There are many approaches to solving path planning and related optimal control problems for robots that involve discretizations of the state space; for example, structured grids or rapidly exploring random trees.  Interpolation is required when it comes time to implement the resulting path because the robot's state never precisely aligns with a sample in the discretization.  Simplistic interpolation, such as nearest neighbour, is often used because more accurate techniques lead too easily to numerical instability.  The goal of this project is to construct an accurate but stable interpolation scheme for such problems, hopefully one which also takes into account cases where the robot's state is uncertain.  Applicants should be familiar with Matlab, Python and/or C++, and will learn a variety of path planning and simulation algorithms for robots.

Collaborative control scheme design, testing and data publication for a smart wheelchair
The CanWheel collaboration [http://www.canwheel.ca] is investigating techniques which would allow elderly individuals with mild cognitive and/or sensory impairments to better use powered wheelchairs.  As part of this process, the team ran a "Wizard of Oz" study in which such individuals interacted with a power wheelchair while a human (the wizard) simulated a variety of collaborative control schemes that the chair might eventually use -- such a study allows us to identify promising interface approaches without having to implement all the sensory and planning software infrastructure in advance.  The goal of this summer's project is to help implement and test automated prototypes of the most promising interfaces identified by the earlier trials, as well as organize and publish sensor data from those and newer trials.  Applicants should be familiar with C++ or Python, and will be expected to learn and use ROS (robot operating system) to program the wheelchair.

Serious Games for Wheelchair Training
Many older adults are prescribed manual wheelchairs due to mobility impairments, but few receive any training in basic wheelchair skills.  We have already designed an Android tablet app which provides training videos to novice wheelchair users and monitors their practice time; however, user motivation quickly deteriorates because of the repetitive nature of the training tasks.  In this project we would like to investigate how to "gamify" the training process: how could we take advantage of common tricks from the video game industry to increase motivation levels for participants, and what sensors might be needed to provide feedback from the physical environment?  Applicants should be familiar with an imperative language (eg: Python, Java, C/C++, Matlab) and will be expected to work on the Android mobile platform.

Raymond Ng
Topic segmentation and labeling of conversation data. The key milestones are: (i) the development of robust topic segmentation for multimodal conversations; and (ii) abstractive topic labeling for conversations.

Rachel Pottinger
IDEASS (http://ideass.civil.ubc.ca/) is a interdisciplinary project to support better building and community planning processes by understanding the interaction between the various processes and the data involved in each part of the process.  In this project, the student will work along with graduate students to help create a test suite of data that can help the researchers determine how to better help building designers and regional planners.

Desirable skills include the need to understand SQL.  Some understanding of spatial data is a plus but not required.


Summer 2013

Bill Aiello and Robert Bridson

Dynamic tetrahedral meshing with acute lattices
One of the most successful class of algorithms for generating quality tetrahedral meshes is to overlay a regular lattice (typically from a grid or octree) over the domain of interest, and with careful cutting and warping fit it to the boundary of the domain. We look to extend this approach in two ways. First, to robustly match both sharp and smooth parts of the domain boundary appropriately (as past methods have concentrated on just one or the other), and second to build an adaptive (octreee-like) extension of an existing acute tetrahedral tiling which offers significantly better quality output meshes in our preliminary results. Furthermore, we wish to exploit this capability by dynamically remeshing a simulated elastic solid undergoing fracture to precisely conform to the desired crack surfaces without compromising element quality, as previous methods have had to choose between. As the scope is fairly broad, the research will be in collaboration with an MSc student.

Giuseppe Carenini
The student will contribute to our work on mining, summarizing and visualizing written conversation (e.g., email, blog). An initial step may consist of improving the performance of our existing techniques for topic modeling, opinion mining and conversational analysis. Next, we will focus on developing a framework for integrating the different mining tasks, so that they can be performed simultaneously and interdependently. To achieve this goal, we will explore Markov Logics and possibly other AI formalisms.

Will Evans and David Kirkpatrick
Will Evans and David Kirkpatrick are interested in jointly sponsoring/supervising a highly motivated student interested in gaining research experience in algorithm design and analysis. We have a variety of concrete topics that would be suitable for a summer research project. However, we are also very willing to work out the details of a project that will incorporate the particular interests of the research student.

The following list is incomplete, but should provide an indication of the scope of possible research topics:
1) Design and analysis of algorithms whose inputs are imprecise; specifically competitive analysis under the assumption that input precision is an expensive resource.
2) Design and analysis of algorithms involving graph-theoretic and geometric models of sensor networks.
3) Graph theoretic characterization of geometric graphs such as visibility graphs.
4) Space-constrained computations and time-space tradeoffs.
5) Combinatorial aspects of certain coloured Escher tilings.
6) Algorithmic issues related to bounded-curvature motion planning.

Michael Friedlander
Linear operators are at the core of many of the most basic algorithms for signal and image processing. Matlab's high-level, matrix-based language allows us to express naturally many of the underlying matrix operations---e.g., computation of matrix-vector products and manipulation of matrices---and is thus a powerful platform on which to develop concrete implementations of these algorithms. Many of the most useful operators, however, don't lend themselves to the explicit matrix representations that Matlab provides.

This project intends to continue the development of the Spot Toolbox (http://www.cs.ubc.ca/labs/scl/spot/), which aims to bring the expressiveness of Matlab's built-in matrix notation to problems for which explicit matrices are not practical. It will involve adding online documentation, improving the installation and distribution mechanism, and adding features to the toolbox.

Karon MacLean
Over the past thirty years, robotic technology has been integrated into the manufacturing industry for the purpose of improving efficiency and reducing worker ergonomic stress and workload, but an evolving industry now requires more effective communication and collaboration between human and robot. The broad goal of our research is to develop methods of human-robot interaction (HRI) that will facilitate close cooperation between humans and robots on industrial tasks.

We are seeking an undergraduate researcher to assist with the development of HRI methods using multiple communication channels including visual signals, audio cues, and touch-based interaction. The student will design ways of communicating various ideas between a human and a robot, test these communication methods in user studies, and compare different communication methods in task-based experiments. Programming skills are required and experience with circuit design and human-robot interaction or human-computer interaction are desired.

Joanna McGrenere
The following projects are available with Joanna McGrenere’s research team. An undergrad student could work on one or more of these projects this summer. The ideal candidate would have knowledge of user interface design, as well as some experience running user studies (CPSC 344 or equivalent) and doing quantitative analysis (CPSC 444 or equivalent).

Cognitive Testing on a Computer (C-TOC) is a computerized screening test for cognitive impairments that older individuals can take independently at home without the presence of a health professional. Currently in Canada, the average wait time for a consultation in a clinical setting regarding cognitive concerns ranges between 6 and 24 months during which cognitive performance can degrade further. C-TOC would assist in detecting early signs of cognitive impairments for test-takers at home so that they can acquire medical attention faster.

In the first project, we are specifically looking into cross-cultural design in the context of C-TOC, given that it has the potential of becoming a cognitive assessment tool for older adults of various cultural backgrounds.  How should we change the interface to fit different cultural contexts? Would changing the interface culturally affect performance, satisfaction or anxiety of different cultural groups?  We have already run a study with 36 older adults in Vancouver from European and East Asian backgrounds. As a next step we are looking for a candidate to take charge of running an equivalent study on a larger scale using Amazon’s Mechanical Turk. Mechanical Turk is a crowdsourcing platform where a large pool of participants is accessible and can perform various tasks, including usability studies. The project will constitute of deploying the experiment prototype on Mechanical Turk, monitoring the experiment, collecting, organizing and analyzing data.  This will be a great opportunity to oversee the running of an HCI usability study from beginning to end as well as getting familiar with Amazon Mechanical Turk, a platform for usability studies that is burgeoning in the HCI community. We hope to gain insight to better understand the relationship between culture and HCI as well as think about how to change interface design across cultural boundaries.

In the second project, we are looking to port C-TOC from a desktop application (operated by the mouse) to one that runs on a tablet (touch based). We will be exploring touch interaction for older adults, both by reading the literature but also thinking towards user studies with older adults that evaluate touch-based gestures. The goal will be to redesign and re-implement C-TOC for this platform and interaction modality.

Students on these two projects will work with a multi-disciplinary team from Computer Science and Medicine.

Ian Mitchell
Project 1: Benchmarks for comparing optimal control and/or verification software

Research in optimal control studies the problem of finding the best way to guide a system, such as a robot, to accomplish a given task.
Verification is a related research area which seeks to demonstrate that a given system satisfies a given property.  The research literature is full of proposed algorithms in both domains, but all too often the authors use trivial and/or incomparable examples to demonstrate their techniques.  The goal of this project is to construct an online repository containing a variety of benchmark problems in one or both fields which researchers could use to compare their approaches more quantitatively.  Applicants should be familiar with Matlab, Python and/or C++, and will learn about optimal control, path planning and/or verification.

Project 2: Automated parameter discovery for the Toolbox of Level Set Methods
The Toolbox of Level Set Methods [www.cs.ubc.ca/~mitchell/ToolboxLS/] is a collection of Matlab routines for dynamic implicit surfaces and approximating the solution of the Hamilton-Jacobi partial differential equation (PDEs).  New users often have trouble running their first simulations because there are a large number of parameters that must be correctly set; for example, the extent and resolution of the computational domain.  The goal of this project is to automatically determine appropriate settings for these parameters and construct a simple graphical interface by which new users could propose systems, run simulations and see how the parameters are set.  Applicants should be familiar with Matlab, and will learn how to numerically approximate PDEs.

Project 3:  Control synthesis from nonsmooth interpolants
There are many approaches to solving path planning and related optimal control problems for robots that involve discretizations of the state space; for example, structured grids or rapidly exploring random trees.  Interpolation is required when it comes time to implement the resulting path because the robot's state never precisely aligns with a sample in the discretization.  Simplistic interpolation, such as nearest neighbour, is often used because more accurate techniques lead too easily to numerical instability.  The goal of this project is to construct an accurate but stable interpolation scheme for such problems, hopefully one which also takes into account cases where the robot's state is uncertain.  Applicants should be familiar with Matlab, Python and/or C++, and will learn a variety of path planning and simulation algorithms for robots.

Project 4:  Collaborative control scheme testing for a smart wheelchair
The CanWheel collaboration [http://www.canwheel.ca] is investigating techniques which would allow elderly individuals with mild cognitive and/or sensory impairments to better use powered wheelchairs.  As part of this process, the team is preparing a "Wizard of Oz" study in which such individuals will interact with a power wheelchair while a human (the wizard) simulates a variety of collaborative control schemes that the chair might eventually use -- such a study allows us to identify promising interface approaches without having to implement all the sensory and planning software infrastructure in advance.  The goal of this project is to help with development and debugging of the wizard's interface to control the robotic wheelchair, and then to help run the user trials (likely as the wizard) and collect and organize the resulting technical data from sensors like the joysticks, Kinect cameras, odometers, etc.  Applicants should be familiar with C++, and will be expected to learn and use ROS (robot operating system) to program the wheelchair.

Project 5:  Smartphone/Tablet Physical Activity Visualization and Classification
As part of the CanWheel collaboration [http://www.canwheel.ca] we are investigating methods of tracking the activity of study participants using smartphone technology.  We have access to a variety of data, including click logs, accelerometry, GPS and indoor localization.  The goal of this project is to help process, integrate, visualize and classify participant activity using these data streams.  The results would be used in publications and presentations for a number of related studies, and the software would be released publicly.
Applicants should be familiar with an imperative language (eg: Python, Java, C/C++, Matlab) and will be expected to learn and use Python packages for manipulation and visualization of the data on desktop computers and/or Java packages for data collection on android phones.

Andrew Warfield
Understanding Desktop Storage Workloads
Many organizations are in the process of deploying "virtual desktops"for their employees.  In this sort of environment, the computer on your desk is just a monitor, mouse, and keyboard, while the operating system and applications run in a central datacenter.  Virtual desktop (or VDI) deployments have had some fairly large uptake in industrial environments, with real-world deployments of more than ten thousand desktops.

VDI introduces some very big challenges for storage system design:humans tend to follow similar schedules, arriving at work and leaving for lunch at the same times of the day.  Worse, they are incredibly sensitive to latency and become irritated when their computers seem slow.  We are interested in understanding how much of a factor storage systems play in the performance of VDI workloads, and what changes can be made to improve them.  To help achieve this, this project will involve the analysis of storage trace data collected from a real-world VDI deployment.  The data analysis will aim to answer questions about the timing, interrelatedness, and content of information that is accessed from storage devices.

a place of mind, The University of British Columbia

 

ICICS/CS Building 201-2366 Main Mall
Vancouver, B.C. V6T 1Z4 Canada
Tel: 604-822-3061 | Fax: 604-822-5485
General: help@cs.ubc.ca
Undergrad program: undergrad-info@cs.ubc.ca
Graduate program: grad-info@cs.ubc.ca

Emergency Procedures | Accessibility | Contact UBC | © Copyright The University of British Columbia