ⓘ Due to COVID-19, CANOSP will operate virtually for the Fall 2020 semester, including an online Code Sprint.
Code Sprint - Fall 2019

Code Sprint - Fall 2019

This semester, we have 3 amazing projects from Mozilla, BeanBag, and IBM:



Federated Learning with Privacy Protection (Mozilla)

It is desirable to provide a personalized experience to users by training a model based on sensitive user data. However, this entails the centralized collection of user data. Federated Learning (FL) offers a compromise in which users submit an aggregated summary of their data encoding their contribution to the model which is less revealing of the original records. However, this still does not offer a provable, quantitative privacy guarantee. The goal is to investigate the improvements to privacy that can be obtained by incorporating differential privacy (DP) into a FL model. The project will explore performance/privacy trade-offs incurred when locally trained model parameters are noisified before transmission to a centralized aggregation point.

Participating Students

  • Maharsh Patel (University of Alberta)
  • Yuxuan Zhao (University of Alberta)
  • Brendan Gluth (University of Alberta)

Project Mentors

  • David Zeber
  • Martin Lopatka

OMR-WALA Linkage (IBM)

The Eclipse OMR project is an open-source and reusable toolkit implemented in C/C++ for building runtimes. It includes code for important language-agnostic runtime components, such as a JIT compiler and garbage collector as well as diagnostic tooling and platform abstraction technologies. There have been successful proof-of-concept projects leveraging OMR to enable JIT compilation for languages such as Lua, WebAssembly, and Python and it is also used to build the Eclipse OpenJ9 JVM. WALA is a static program analysis framework for Java, JavaScript and several other languages. As a static program analysis framework, WALA provides the ability to gain deep insight on a program as a whole. These capabilities can help us find potential security vulnerabilities, discover better program optimizations, create informative development tooling, and more. The primary goal of this project is to be able to generate WALA’s IR directly from OMR’s IR—this means that when a language is connected to the OMR compiler component you get both a compiler and a static analysis tool for your effort!

Participating Students

  • Cijie Xia (University of Alberta)

Project Mentors

  • Andrew Craik
  • Julian Dolby

Review Board (Beanbag)

Review Board is a powerful web-based code review tool that helps developers do peer review as they write code. Code review is a standard industry practice used to find bugs, improve quality, and mentor junior engineers. Review Board is used by thousands of software companies including Twitter, Yahoo, and VMware, as well as many open-source projects like Apache and KDE. Students working on Review Board will have the opportunity to learn about back-end web development using Python and Django, as well as front-end development using HTML, CSS, Javascript, jQuery, and Backbone.js. Source control is managed via Git on GitHub. All patches are reviewed using Review Board, and students will be participating in the code review process.

Participating Students

  • Qin Zhang (University of Alberta)
  • Adil Malik (University of Alberta)
  • Nicole Hagerman (University of Alberta)
  • Ceegan Hale (University of Alberta)

Project Mentors

  • Mike Conley
  • Barret Rennie
  • David Trowbridge
  • Christian Hammond