The main lesson of thirty-five years of AI research is that the hard problems are easy and the easy problems are hard. The mental abilities of a four-year-old that we take for granted — recognizing a face, lifting a pencil, walking across a room, answering a question — in fact solve some of the hardest engineering problems ever conceived …. As the new generation of intelligent devices appears, it will be the stock analysts and petrochemical engineers and parole board members who are in danger of being replaced by machines. The gardeners, receptionists, and cooks are secure in their jobs for decades to come. — S. Pinker, The Language Instinct, 1994.

This course requires a substantive final project.


Your final project deliverable must:

We reserve the right to limit the number of applications proposed for each project area or technology.


There will be four “deliverables” for this project, to be submitted in your course repo in the directory project and due according to the following schedule:

  1. Proposal (two drafts, 5% each) — Propose a project and develop the idea. Submit this as a Jupyter notebook (proposal.ipynb).
  2. Walkthrough (10%) — Meet with us one-on-one to talk through your domain, theory and prototype. Be prepared to discuss the key elements of your work, your poster, and to give a demo of your system. We’ll identify the key work you still need to do and prepare you for the final showcase.

  3. Showcase (10%) — Attend the final project showcase in which you can see everyone’s project. Be prepared to demo your system and to explain its key points using a Jupyter notebook (either a separate showcase.ipynb or your final report.ipynb, see below).

  4. Submission (70%) — Submit your final project deliverable, including:

See the policies page for the project due-dates and times. The points for these deliverables will be combined to compute your score for the final project.