Project

This course will culminate in a semester project. Successful projects will demonstrate that you can:

Projects should generally be done in pairs, though allowances may be made on request.

Grading

Projects will count for 5 Mastery grades. You will include a brief summary at the end of your report of how the project demonstrates mastery of various components.

All projects must demonstrate mastery of the following objectives:

Successful projects will also demonstrate mastery of various other skills, but the specific skills will vary between people and projects. Some options include:

You are encouraged to try to demonstrate mastery of several of these topics even before the final project submission. Please either write a note or arrange a brief meeting.

Milestones

Proposal

First, read the Project Guidelines for a description of what sort of projects are expected in this class.

Then, think of two or three potential project ideas. (Note that there are three types of projects; you might perhaps try to think of an idea for each type.)

For each idea, write a paragraph (or informative bullet points) to address:

Mention whom you might work with (the ideal team size is probably 2, but 1 or 3 is ok too). It may be different for different projects. Submit individually, though.

Updated Proposal

Submit (as a Jupyter notebook, proposal.ipynb), an enhanced version of your vision statement. It should include:

  1. Who is working on this project. (One person submits the document, other teammates just submit a note about who submitted the document.) Describe how you plan to work together so that everyone feels ownership of the result.

  2. Very preliminary drafts of all of the sections of your final report (leave clearly marked placeholders as necessary):

    • Vision: Overview of your project and its purpose. What are you trying to do? Why is it important or interesting? What does a successful project outcome look like?
    • Background:
      • What data are you using? Describe what you chose and why. Include a “backup” dataset in case the primary one doesn’t work out (or give specific evidence for your confidence in the primary dataset).
      • What technologies are you using? Briefly describe a few options you’re considering and what criteria you’ll use to evaluate them.
      • Your final report will describe the technologies you’re using and why you chose to use them. Include citations of the work on which you’ve based your system, both what we’ve used in class and new technologies you’ve experimented with (include descriptions of these if applicable).
    • Implementation:
      • What prior code can you build on?
      • Your final report will summarize your implementation and, if appropriate, how it extends the work you’ve reverenced.
    • Results: Include quantitative (tables, plots) and qualitative (examples) results, including comparisons with similar work if applicable.
    • Implications: Discuss the social and ethical implications of using the technologies you’ve chosen for your project.
  3. A description of what concrete steps you’ve taken towards the project, typically trying out an example of some related system. Some concrete step is expected; it could be “I tried out this example notebook (URL). It worked on Colab but failed on the lab machines …”

  4. What help you think you’ll need from the course staff? (If this is substantial, follow up in person or on Teams).

Final Deliverables

By the end of the day of final presentations, submit the following:

The following sections provide additional detail about each component.

Technical Report

The report should be at the level of polish and formality of a blog post (more than a class homework assignment, less than an academic paper). Precise technical language should be used in descriptions of methods.

Here are some elements that would generally be expected in a report. Not all reports need to have all elements, and reports may include other elements. The following table is formatted in a way that should be useful as a checklist to include in your submission; see the source code for this page for how to include it in your report.

Reports should generally include:

Artistic or exploratory projects may need other elements.

Nontechnical explanation

Include a short explanation of the technology you build on for a nontechnical audience.

Aim for a description that would fit on one page or less, including a carefully selected supporting image or two.

Presentation

The final course meeting (during the designated final exam period) will be devoted to final project presentations. Feedback on others’ projects is expected, so attendance is mandatory.

Be prepared to demo your system and to explain its key points. Presentations are informal, so slides are not required (but may be helpful if your notebook is large or your results don’t easily fit in a notebook.)

Aim for about 5 minutes of content. All team members should participate.

Supporting Material

Submit code needed to replicate the visual and quantitative results in your report.

Picking a Project

Your project should be one of the following 3 types. The criteria for success differ by type:

  1. Application of a specific technique that we studied in class to a different situation. For example, you might train an image classifier on a new set of images, or a text classification model on a new domain.

  2. Replication of a quantitative result that you find in a research paper, blog post, etc.

  3. Research along one of the directions listed on this page.

General Advice

Technically: keep it simple. A thoughtful analysis of a technically simple thing is much better than a hasty analysis of a technically fancy thing.

See the Resources page here, especially Tools.

Contents