Projects (2020-2021)

2021-2022 | 2020-2021 | 2019-2020 | 2018-2019


UTMIST is involved in several projects; some are in collaboration with professors, developers, organizations, and/or other students. Project developers work in the Academics or Engineering Department.

Academic Machine Intelligence Projects

An academic project can be a analysis, reproduction, or exploration project in the machine intelligence research space. They can be self-directed or under the supervision of graduate students and professors. Generally, strong academic performance and mathmatical/technical skills and essential. See the courses offered at UofT or MIST101/102 to prepare!

Out-Of-Distribution Detection (OoDD)

A Research Project on Benchmarking the Latest Generative Model Based OoOD Methods.

Rust for Machine Learning: Benchmarking Performance in One-shot

‘Reproducing “Siamese Neural Networks for One-shot Image Recognition” and benchmarking implementation performance and results.’

Applied Machine Intelligence Projects

These projects are applications of machine learning concepts, techniques, frameworks or methodologies. Usually open-ended

Hand Gestures and Hand Tracking for Web Browsing

Developing hand gesture detection for controlling web browsing.

The Humerus Bot

An applied ML NLP project designed to win Cards Against Humanity, a popular humor-based party game. [Full]

Musical Style Transfer

Transfer learning in the domain of musical styles.

Real Estate Price Prediction

Real estate price prediction and transfer learning with CNNs.

Stock Price Prediction

Predicting stock prices.

Infrastructure Projects

Infrastructure projects include our website, Discord bot, and our upcoming cluster.

MISTR

The UofT Machine Intelligence Student Team Runner (MISTR) is a Discord bot serving the UTMIST Discord server.

Scheduler

Wrapper written around SchedJulia to schedule interviews.

utmist.gitlab.io

GitLab Pages Website for UTMIST.


Notes on Projects and Teams

  • Projects and codebases should generally be open-source. This is not a strict rule but a preference.
  • Teams should have a minimum of two (2) members; three (3) or more is highly recommended.
  • If we originally offered you a position in both departments, the one you’ll ultimately be a part of will depend on the project you join.
  • If for any reason you would like to switch your department to work on the other type of project, we’re happy to discuss that with you and help you fit in.

Starting a Project

Some developers will have their own ideas, and we want to provide leadership opportunities as well. Projects will be selected from proposals submitted by developers, and if we accept your proposal after discussing it with you, you will serve as the Director, and we’ll help you with your team-forming process. See Leading A Project.

Suggested Proposal Structure

Please submit your proposal in some common document format (PDF, Markdown, etc.). It will be fairly open-ended but we suggest one to two pages including the following points.

  • Abstract (background, precedent, general motivations).
  • List of resources (papers, articles, and advisors, as applicable).
  • Summary of specific goals.
  • Expectations for teammates (team size, expertise, availability, etc.) and advising.

Working on a Project

These projects are meant to be a collaborative learning experience. While the Director will lead the discourse and groupwork, every member of the team should be involved in decision-making. In addition to the expected project work, each team is also responsible for

  • Clarifying the scope and context of the project;
  • Setting the timeline, goals, and team expectations (such as commitment, meetings, self-learning);
  • Communicating progress, effort, issues, and concerns to each other and their VP; and
  • Preparing a final presentation in some form, such as a talk, video, infographic, technical article, or documented codebase.

Communication

  • You should follow either #academics or #engineering (whichever is applicable) on Discord and use them to discuss notable updates with your VP and department.
  • Bug fixing, meeting arrangements and other team-level discussions can happen in any private medium the team agrees on. This could be a Discord, Weixin (WeChat), or Facebook Messenger group chat, or something else.

Documentation

It’s important to have not just good ideas and working code but also documentation. For whatever is applicable to you, ensure you write

  • Descriptive annotations and commentary;
  • Complete package and internal documentation; and/or
  • Meaningful but concise commit messages.

Presentation

For most, if not all projects, we would like to see a final presentation of some form, to be ready near the end of the school year in March*. This could be a talk, video, infographic, technical article, or documented codebase. Teams can also present work-in-progress (WIP) material or interesting milestones or resources at earlier times if appropriate.