Final Project
- Proposal Due:
- 11:00pm, Friday October 29, 2021
- Progress Report Due:
- 11:00pm, Friday November 19, 2021
- Final Due:
- 11:00pm, Wednesday December 15, 2021
Description
In the final project, you are to apply the techniques that you’ve learned in this class to a new setting that you’re interested in. You will make a system to solve a well-defined task. Which task you choose is completely open-ended, but the methods you use should draw on the ones from the course.
The final project should consist of the following:
Task definition: What does your system do (what is its input and output)? What real-world problem does this system try to solve?
Make sure that the scope of the project is not too narrow or broad. This is probably the most important part of the project, but is also the part that you will not get practice from doing homeworks.
An important part of defining the task is the evaluation. That is, how will you measure the success of your system?
Infrastructure: In order to do something interesting, you have to set up the infrastructure. For example, a game-based task, involves building the game engine/simulator. While infrastructure is necessary, try not to spend too much time on it.
Approach: Identify the challenges of building the system. How should you model the task (for example, using search, constraint satisfaction, logic, etc.)? There will be many ways to do this, but you should pick one or two and explain how the methods address the challenges as well as any pros and cons. What algorithms are appropriate for handling the models that you came up with, and what are the trade-offs between accuracy and efficiency? Are there any implementation choices specific to your problem?
Literature review: Have there been other attempts to build such a system? Compare and contrast your approach with existing work, citing the relevant papers. The comparison should be more than just high-level descriptions. You should try to fit your work and other work into the same framework. Are the two approaches complementary, orthogonal, or contradictory?
Milestones
There will be several milestones so that you can get adequate feedback on the project.
Proposal (20%) (2 pages max): Define the input-output behavior of the system and the scope of the project. What is your evaluation metric for success? Give concrete examples of inputs and outputs. What are the challenges? Which topics (for example, search, logic, etc.) might be able to address those challenges (at a high-level, since we haven’t covered all techniques in detail at this point)? Search the Internet for similar projects and mention the related work. Note that you can still adjust your project topic after submitting the proposal, but your progress report should be the same topic as your final report.
Progress report (30% Points): Propose a model and an algorithm for tackling your task. You should describe the model and algorithm in detail and use a concrete example to demonstrate how the model and algorithm work. Do not describe methods in general; describe precisely how they apply to your problem. You should also have finished implementing a preliminary version of your algorithm (maybe it’s not fully optimized yet and it doesn’t have all the features you want).
Final report and code (50% Points): You should have completed everything (task definition, infrastructure, approach, literature review).
Submission
Submit the milestones to the appropriate folders on D2L. The following list indicates what to submit for each milestone.
Proposal: submit a PDF file named
proposal.pdf
Progress Report: submit a PDF file named
progress.pdf
Final submission: submit a zip file named
final.zip
that contains a PDF file namedfinal.pdf
that is your final write-up and your code. As part of the code submission you must include a README file that contains any instructions needed to build and run your project.
Grading Criteria
Grading rubric Your project will be graded on the following dimensions:
Task definition: is the task precisely defined and is the motivation for the task clear?
Approach: was the method described clearly, well justified, and tested?