Faculty member's name 
Department / School 
Project title 
Project description 
Must have skills/courses by a candidate to conduct the project 

N Sri Namachchivaya  Applied Math 
Development of Classification and Prediction Models using Deep Learning Techniques for Forestry Management Applications 
The goal of this project is to develop advanced deep learning algorithms to simulate and estimate seamless data and information (e.g., biomass, disturbance, species composition) to enhance both the spatial and temporal scales of forest stand attributes. The student will perform evaluations of deep learning algorithms, implement evaluation frameworks to run experiments on realworld datasets using python and other opensource tools, and help to prepare technical reports in collaboration with other researchers in the lab. 
Background in Statistics and experience with Python programming are required. Background in machine learning and some familiarity with deep learning algorithms (such as CNNs, LSTMs, etc.), and some knowledge of TensorFlow or Keras would be beneficial but not necessary. A USRA candidate should be eligible to apply for the NSERC USRA or MURA award and interested students should email Prof. Sri Namachchivaya at navam@uwaterloo.ca with the following in the title “Application for Data Science USRA Position”. 

N Sri Namachchivaya  Applied Math 
Predictive Analytics for Prognostics and Health Management (PHM) Aerospace Systems 
The goal of this project is to develop a data analytics framework using advanced deep learning algorithms to perform data processing, change/anomaly detection, classification, predictive analytics, and decision support to aid decisionmakers for PHM of aerospace systems. The student will perform evaluations of deep learning algorithms, implement evaluation frameworks to run experiments on realworld datasets using python and other opensource tools, and help to prepare technical reports in collaboration with other researchers in the lab. 
Background in Statistics and experience with Python programming are required. Background in machine learning and some familiarity with deep learning algorithms (such as CNNs, LSTMs, etc.), and some knowledge of TensorFlow or Keras would be beneficial but not necessary.


Mina Tahmasbi Arashloo  School of Computer Science  Programmable transport on highspeed network hardware 
As network speeds increase to 100s of Gbps, software network stacks are struggling to keep up without using up too many CPU resources. As such, there is a trend towards offloading (part of) the network stack to programmable Network Interface Cards (NICs). Tonic (Transport on NIC) is a hardware architecture for offloading transportlayer algorithms to the NIC. In this project, we will revisit the implementation of the senderside of the transport layer, and design a programmable architecture for the receiving side. 
Systemoriented courses such as operating systems, computer networks, or distributed systems. Comfortable with large codebases in programming languages like C/C++.  
Mina Tahmasbi Arashloo  School of Computer Science  Exploring the affect of network performance on distributed applications 
Most online services today are backed by distributed applications. These applications run on several machines and rely on computer networks to communicate and collectively compute responses to requests. As such, their performance depends on the performance of the underlying network. But, how much? In this project, we will explore the nature and extent of such dependency, both qualitatively and quantitatively, by analyzing and experimenting with commonlyused distributed applications. 
Systemoriented courses such as operating systems, computer networks, or distributed systems. Comfortable with large codebases in programming languages like C/C++. 

Chengnian Sun  School of Computer Science 
Improving Toolchain of CS241 and Visualization of Compiler Algorithms 
There are two goals of this project. The first is to improve the usability of toolchain such as mips.twoints, mips stepper). The second is to build a website for visualizing compiler algorithms, such as different parsing algorithms. 
CS241(required), CS444(optional), willing to learn web frontend technologies (HTML, CSS, etc)  
Jimmy Lin  School of Computer Science 
Natural Language Processing / Information Retrieval 
https://github.com/castorini/anserini 
Java 

Tim Brecht  Computer Science 
Advanced Hockey Analytics 
The goal of this research is to devise, compute and evaluate interesting and valuable new metrics that can be used by fans, hockey broadcasts, reporters and sports pool and betting sites to increase fan engagement. by players, coaches, agents and executives to provide new and deeper insights into player and team performance. A key component of this research will be to develop analytics and techniques for computing metrics in real time. Thus enabling augmented reality experiences that that could overlay statistics on video feeds and/or depict realtime animated visualizations showing and providing for live, ingame analysis. 
Statistics, Python (Pandas), a bit of JSON familiarity is helpful, network programming.  
Kevin Hare  Pure Math  Pure Product Polynomials 

Some programming backgrounds, and some background in number theory.  
Roberto Guglielmi 
Applied Math 
Mathematical modeling for pest management  The project will address analytical and numerical aspects of a mathematical model of pest in agriculture. The goal is to investigate optimal pest management strategies by means of a biological intervention. The model describes the interaction between the environment, the species at risk (usually trees or plants), and the pest (either a species of insects or a virus transmitted by a species of insects that plays the role of the transmission vector).  Required background in mathematics, physics or engineering, with a focus on differential equations and mathematical modelling. The student is expected to be familiar with either theoretical or numerical aspects of ordinary differential equations. Suitable programming skills in either Matlab or Python language are beneficial. Previous exposure to problems in control theory, mathematical modelling, and application to environmental science would be a plus.  
Roberto Guglielmi  Applied Math  Mathematical modelling of power energy systems  The goal of the project is to investigate and optimize a mathematical model of power grids, taking into account different generation and storage settings. This framework would output an optimal solution tailored to various geographical regions with varying climate, infrastructure and load profiles. By combining modeling, analysis and control of differential equations over networks, the framework shall also allow constraints to be applied to the theoretical power system  Required background in mathematics or physics (with a focus on differential equations and mathematical modelling), or electrical or systems engineering. The student is expected to be familiar with either Matlab or Python, and to be familiar with dynamical systems on networks or with electrical power systems.  
Roberto Guglielmi  Applied Math  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, goaloriented, 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.  
Matthew Scott  Applied Math  Mathematical models of bacterial metabolism  Mathematical models of bacterial metabolism, with experimental validation in the lab.  100level CHEM or BIOL, 100level MATH  
Marek Stastna & David Del Ray Fernandez 
Applied Math  Data analytics for combined qualitative and quantitative data.  This is a collaborative project with Dr. Warren Dodd, School of Public Health Sciences. The successful applicant will carry out data analysis and data scientific tool development for an anonymized data set gathered by Dr. Dodd’s group. Their broader project examines daily income and consumption (e.g., food, health) data among households experiencing extreme poverty in Iloilo, Philippines from data generated through daily financial diaries. Key needs include addressing missing data, data visualization, and communicating analyses to interdisciplinary audiences. 
Some experience with scientific computing/data science. An interest in data visualization. Strong communication skills, especially to nonmathematical disciplines. 

Peter Buhr  School of Computer Science  C∀ (Cforall) Programming Language and Runtime System.  The C∀ project is an opensource 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 featureset based closely on the C programming paradigm (nonobjectoriented) and these features can be added incrementally to an existing C codebase allowing programmers to learn C∀ on an asneeded basis. In many ways, C∀ is to C as Scala is to Java, providing a research vehicle for new typing and controlflow 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.  Interested students need some programminglanguage/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.  
Lilia Krivodonova  Applied Mathematics  Scientific computing, machine learning  Scientific computing, machine learning  An intro into pdes and numerics  
Henry Shum  Applied Math  Microhydrodynamics  Some potential topics include modelling the fluid flow generated by dissolving liquid crystal droplets, studying the hydrodynamic controllability of particles in a suspension, and inferring patterns of motor activity in microorganism flagella from videos. More details here: https://uwaterloo.ca/scholar/ph3shum/researchtopics  Proficiency with programming (e.g., Python, MATLAB) is required. Courses in physics, differential equations, and computational methods are beneficial. 