APS360 Fundamentals of AI

Winter 2019

Anonymous Feedback


The project in this course is an opportunity to develop a machine learning application in an area of your own choosing. It also provides the chance to do a full engineering project that is much closer to real-world engineering and research than most course assignments that you've done so far. While this project has some structure, you will be required to deal with the ambiguity and significant decision making that make up the life of a real engineering practitioner.

Completing an open-ended project comes with significant benefits:

  1. The only way to really become an engineer is to do what real engineers do, which includes understanding the difficulties of open-ended goals and projects. Even if it doesn't go well, and you spend time reflecting on why that was so, you will be taking an important step towards becoming a professional engineer.
  2. You will have an opportunity to practice the ever-crucial oral and written communication skills that an engineer needs to operate successfully. You might not think that communication is important, but if so, you're wrong!
  3. When I have interviewed people for full-time jobs, internships, and for graduate school, the most important question I ask is to have them tell me about a major project they did. This is such a project.
  4. If you were to have a video of yourself presenting your project, and you think that video has sufficient quality, you can put a link to it on your personal LinkedIn page. LinkedIn has taken the place of a personal CV or resume, and such a video would be a compelling statement of what you are capable of. Rather than the usual simple listings of skills and previous jobs, it brings who you are to life.

Project Rules

  1. Projects must be done in groups of 3. If there is an odd number of students, just one group of 2 or 4 will be permitted.
  2. The project must make use of machine learning, as taught in this course, and the training, validation and testing of some kind of ML system should form an important part of the project.
  3. The project topic is of your own choosing. It must be unique within the class. No two projects can be on the same topic, as determined by a "uniqueness approval" step in the project.
  4. There should be some data collection or cleaning that is a meaningful part of the training process. You will not be able to use a known data set for the initial purpose that the data set is used for. You can repurpose a data set, combine data sets, or collect your own data.
  5. University of Toronto rules on plagiarism apply. We are aware that there are many machine learning projects already posted on the internet, and these will be checked for plagiarism.

Timeline and Deliverables

The project has several steps and deliverables, listed in the table below. The following sections provide more detail.

Team Formation and Uniqueness Approval Feb 15, 9pm
Project Proposal3%Feb 24, 9pm
Progress Meeting with TA Mentor3%Mar 4-12 (schedule with TA)
Progress Report4%Mar 17, 9pm
Presentation SlidesMar 29, 9pm
Presentation10%Apr 1 and Apr 4
Project Report10%Apr 11, 9pm


Unless agreed upon otherwise with the instructor, your project code will be open-source and hosted on GitHub. If your team would like to use a different platform, or keep the code close-source, please speak to the instructor.

We will be using Microsoft PowerPoint as the standard presentation software for this course. You will be required to set up your slides to advance automatically without intervention, to avoid running over time. If you do not have MS PowerPoint, you can download the software from here.

All portions of the project must be completed as a group. Every student must participate in all parts of the group project in order to earn the marks. If a group member is not contributing, please contact the instructor immediately.

The Fine Print

You may have limited class time during tutorials to work on the group project. Your attendance to these classes will be recorded. Your attendance to these classes are a way that you demonstrate to the instructor that you are participating in your group work.

In the end, your primary responsibility is to your team members. If they report to me that you have not contributed to a part of the project, you may be removed from the group and receive a zero for all parts of this project.

Late group work will be assigned a grade of zero, so please submit early! The presentation slides must be submitted on time so that the TAs has time to review and queue them for the presentation day.

Presentations must be delivered in class, and in random order. Please contact the instructor in advance if you require special considerations. In case of illness or other disasters, contact the instructor as soon as possible.

Project Uniquess

Once you have formed a team, you should brainstorm ideas for what your project topic should be. Once you have that idea, send an email to Lisa with a one to two sentence description of the topic. I will either respond with "you have uniqueness approval" (meaning no-one else has proposed a similar topic) or "please try again, that topic is taken." You must have received uniqueness approval by the deadline above.

Project Proposal

This is a document with a maximum of 1200 words that contains the following sections:

  1. Introduction – The goal of the project, why it is interesting or important, and why machine learning is a good approach.
  2. Source of Data – Where you will obtain the data, how you will clean the data, and which part of it you will collect and/or label yourself.
  3. Overall Structure of your software – provide a top-level block diagram of the software as you forsee it, and give a short description of the individual blocks.
  4. Plan – provide list of tasks and time you estimate for each.
  5. Risks – what can you forsee that might go wrong in the project?
  6. Things to Learn – what, if anything you need to learn to proceed?
  7. Ethical Issues – very briefly, describe any ethical issues you see around the general topic.
  8. References

The word limit is hard: There is a 1% penalty for every word in excess of the 1200 limit. Please count the words in your document, compute the penalty, and put it on the front page. These are not included in the word count, nor are pictures or references.

If you can present your ideas in much less than 1200 words, please do so. Succinctness is preferred over wordiness.

Progress meeting with TA Mentor

Each team is assigned to meet with a TA mentor, and must schedule a 45 minute meeting with the TA. Teams should use this time to ask questions, report progress, and brainstorm with a more experienced machine learning researcher.

Here is the table of TA mentor assignments:

TAemailProject Groups
Andrew Jungandrewjung [at] psi [dot] toronto [dot] edu2, 3, 5, 6, 16
Bibin Sebastianbibin [dot] sebastian [at] mail [dot] utoronto [dot] c4, 10, 12, 14, 17
Hojjat Salehinejadhojjat [dot] salehinejad [at] gmail [dot] com1, 7, 9, 11, 15
Kingsley Changkingsley [at] cs [dot] toronto [dot] edu8, 13, 18, 19, 20


Please reach out to your TA as soon as possible, and by March 7th, 9pm. Make sure that all your team members are included (cc'd) in the email. Provide the TA several meeting times when *all* your team members are available. Also, provide the TA a link to your public github repository.

Your meeting with your TA mentor should take place on or before March 12th.


You will be graded on:

Scheduling3Contact your TA by March 7th, 9pm, with every team member included (cc'd) in the email, and a link to your public github repository.
Punctuality3Were you on time at the right location for the progress meeting? (Graded individually)
Project Understanding8How well do you understand your project? (Graded individually)
Preparedness8How prepared were you for the meeting? Did you have good questions and identified areas the TA can help you with?
Progress8Did you make progress towards your project, including data collection and cleaning, and implementing a first model?

Additionally, in your progress report, you will be graded on how well did you took advantage of the meeting to further your project.

Progress Report

Teams will report the progress they have made towards the project. Your progress report should have the following information:

  1. Describe how you learned from the meeting with your TA, and what you are doing differently as a result.
  2. Describe what data you have collected so far.
  3. Describe your model(s) and at least one result from training.
  4. Demonstrate how the model you're going to train will be used.
  5. Describe what work remains to be done together with your plan to achieve it, including any deadlines you are setting for yourself.


You will be graded on:

Learning5Describe how you learned from the meeting with your TA, and what you are doing differently as a result.
Data Collection5Describe the data you have collected so far, and how you cleaned the data.
Model and Result7Describe your model(s) and at least one result from training. How will your model be used?
Planning3Describe what work remains to be done together with your plan to achieve it. List deadlines you are setting for yourself.

Use full sentences, proper grammar, and standard terminology. Points will be deducted if the grader cannot understand what you are saying.

Project Presentation

The team will make a six minute final presentation, with the following:

  • Goal and Motivation (what & why)
  • Description of Overall software structure
  • Describe the machine learning model
  • Give the results of Training
  • Demonstration of the complete project
  • Key Learnings – what would you do differently?

Each group will present their work to the class. Each group will have 6 minutes to present their work, and each team member must speak for at least 1.5 minutes. To ensure proper timing, your presentation slides must be set up to advance autoamtically without human intervention. Improper setup or presentations that runs over time will result in a 10% penalty.

Project Report

Each group will submit a final project report. The report will be structured somewhat like a research paper.

The report must have a maximum of 2000 words, and the following sections:

  • Goal and Motivation (what & why)
  • Description of Overall software structure
  • Sources of Data (where you collected, how you made it usable)
  • Training, Validation and Test (a description of how your (models) were trained and how well they work)
  • Ethical Issues (Describe at least one ethical issue that arises in the project or the field that the project resides in)
  • Key Learnings – what would you do differently?

The word limit is hard: There is a 1% penalty for every word in excess of the 2000 limit. Please count the words in your document, compute the penalty, and put it on the front page. These are not included in the word count, nor are pictures or references.

Along with the final report, every group member must submit a maximum 500-word addendum that describes their personal contribution to the project. The word limit is hard.