IFT 3710/6759 - Projects

The chief learning objective of this course is to prepare students for tackling real-world machine learning projects. Therefore, all students will participate in teams in the development of one machine learning project. This page describes the general guidelines about this part of the course.

General information

The projects of the course are aimed to resemble as much as possible what real-world machine learning projects look like in either industry or research. Projects comprise the following stages:

  1. Literature review
  2. Planning
  3. Development
  4. Analysis of results
  5. Written report
  6. Oral presentation


The first four weeks of the course are devoted to introducing the course, reviewing the core aspects of machine learning and deep learning, and important tools for carrying out machine learning projects, such as Linux, git and PyTorch. After that, you are expected to work on the assigned project from week 5 to week 14. As part of the project, you will prepare a short (~8–10 pages) technical report and an oral presentation to be given in front of the teachers and the other students.

Project assignment

The projects will be developed in teams of 3–5 students. A set of projects will be proposed by the instructors, and you are also welcome to propose your own projects (see below. At some point during the introductory weeks, you will be asked to form teams and to provide your preferences about the suggested projects or proposed your own, in order to distribute the available projects among all teams the best possible way. Some projects may be easier than others, which will be taken into account in the evaluation. If a team (or a student) concludes one project before the end of the course, they will be able to work on a new project for extra points.

Project proposal

In order to foster creativity and allow you to work on projects of your interest, you are welcome to propose your own projects. Nonetheless, the project proposal must be accepted by the instructors and the decision will be based on the following criteria:

  • The project must involve the use of advanced machine learning methods.
  • Worked developed prior to this class will not be accepted.
  • It must be feasible in terms of computational resources and time constraints.
  • The data must be publicly available.
  • The project should not raise major ethical considerations.
  • Projects that tackle real-world problems with a potentially positive impact will be favoured.


Students will be evaluated entirely according to their work on projects and the final grade will be based on the following criteria, all with equivalent weight:

  • Difficulty of the project
  • Quality and performance of the developed algorithms: suitability of the chosen methods, technical rigour, results, etc.
  • Written report: completeness, clarity, technical soundness, analysis, etc.
  • Oral presentation: effectiveness, clarity of the presentation, etc.
  • Code: clarity, documentation, modularity, extendability, etc.

The evaluation will be at the project level, that is we will consider that the results, the report, the presentation, and the code are the output of the whole team. Nonetheless, the individual grades may be adjusted if necessary in the case of participation imbalance (see below).

Important note: The evaluation criteria will be slightly relaxed for undergraduate students (IFT 3710), specifically regarding the difficulty of the project.


Teamwork is an essential feature of machine learning projects, and engineering projects in general, both in research and industry. Therefore, it is a requirement of this class to work on the projects in groups of at least three students. We recommend to form teams of up to five people, but slightly larger teams may be allowed depending on the difficulty and characteristics of the project.

Working in teams does not necessarily mean that every teammate contributes equally to every part of the project. It is up to each team to design their most suitable distribution of the workload. However, we do expect every student to engage in all stages of the project (literature review, design, coding, analysis, writing, presentation, etc.).

In order to encourage effective teams, mitigate imbalances and ensure a degree of fairness in the evaluation, we will adopt several mechanisms, which include:

  • Students are free to organise themselves and propose teams to work on specific projects.
  • Otherwise, teams will be formed according to the preferences provided by the students.
  • During the development of the projects, we will carry out several team-wise meetings with one of the instructors, to not only assess the progress in the project, but also the functioning of the team.
  • At the end of the project, each team member will have the opportunity to fill a questionnaire about the functioning of the team and the contributions to each stage of the project.


During the project development phase, we will facilitate a weekly session (online, or in person) of each team with one of the instructor (main instructor or a teaching assistant). The goal of these meetings is to monitor the progress of the project, the smooth functioning of the team and to give you the opportunity to ask questions and get feedback. For daily communication, you are welcome to participate in a Discord server set up for this class. Please, do send me an email (alejandro.hernandez.garcia@umontreal.ca) if you do not have access to the Discord group. You are also welcome to set up a channel for your team within this Discord server, or use a different means of communication of your preference.

Finally, do not hesitate to contact the instructors if problems arise. We are here to help!

Expectations and potential publication

The goal of this course is learning. That is, you will be expected to work on a problem where machine learning can be applied, perform a literature review, analyse your results, write up a report and present it to the class. Doing all this will certainly guarantee that at the end of the process you will be better prepared for tackling other real-world machine learning projects. Doing all this in a sound way will also certainly guarantee a high grade. We definitely do not expect you to produce a research paper ready for publication. Nonetheless, if you are interested in pursuing a research career or in publishing your work for any other reason, note that this kind of project does resemble to a great extent a research project that could lead to a publication if the outcome can be of interest to a research community. Note that this would probably require extra work after the course is over. If publishing your work is something you would like to consider, feel free to discuss this with the instructors for feedback at any stage of the project.

Proposed projects

As explained above, you may propose your own project or work on one of the projects proposed by the instructors. Below is the list of available projects and the details may be found (soon) in the page of each project (clicking on the titles):