COMP364 Final Project
Introduction
The objective of the final project is to implement, write up, and present an AI-related experiment involving creativity, research, experimentation, and programming. Students may work individually or in teams of two or three people. Any suitable AI-related topic may be selected for the project. A number of suggested topics are provided below, but other topics are also possible — please consult with the instructor to ensure the suitability of your proposed topic. The main requirements for a good topic are:
- It provides potential for substantial programming, and
- It provides potential for conducting interesting experiments.
The time allocated for work on the final project includes three class meetings spread over the last three weeks of the semester. The total amount of effort expected for the project is equivalent to about 1.5 weeks of work for this course, or roughly 12 hours of work outside of class time.
Grading
Grading will be structured as follows:
- Code (25 points): The project must involve a substantial programming component. Any programming language may be used. The programming may build on an existing code base from a previous assignment or downloaded from any suitable source. Unlimited use of AI tools is permitted provided they are clearly acknowledged. At a minimum, every submitted code file must include a top-level header comment describing the authorship of the code and the extent to which AI tools were used in its creation.
- Written report (35 points): The objectives, methods, and results of the project should be described in a formal written report. The overall style of the report should resemble that of a scientific publication, similar to the papers studied in this course. The audience for the report consists of the instructor and fellow students. Thus, concepts covered in the course may be assumed without definition, but other notions should be clearly defined and explained. As with any college-level writing, suitable citations should be used wherever appropriate, and a complete bibliography must be included. Any reasonable structure for the document may be used. One recommended structure includes the following section headings:
- Introduction: Describe the goals of your project, along with any necessary context or background.
- Methods: Describe the design of your code and experimental setup.
- Results: Present the results of your experiments, including tables and charts where appropriate.
- Conclusions: Summarize what you learned from the experiments; optionally, discuss alternative approaches and potential future work.
- Bibliography: List all sources cited.
- Contributions of Team Members: This required section is described in detail below.
Any reasonable spacing and formatting conventions may be used. The suggested length of the report is 3–5 pages, though longer reports will not be penalized. Typically, all members of a team will receive the same grade for the project. The report will be graded on standard writing criteria (clarity, grammatical correctness, logical structure, and completeness in addressing the requirements above), as well as the overall intellectual merit of the project.
Unlimited AI use is permitted in writing the report; however, human authors must take full responsibility for ensuring that all content is original and accurate. At the end of your report, you must include a section titled “Contributions of Team Members” describing the contributions of each human team member. The purpose of this section is to document that the human effort invested in the project is at least 10 to 12 hours per student. Please specify the number of hours spent on each task, detailing which tasks were accomplished using AI and which required human input and effort.
- Presentation and/or Poster (40 points): During the final exam slot, the project and its results must be exhibited via a presentation and/or poster session. Presentations should be approximately 10 minutes in duration. Students are permitted to nominate their preferred presentation format (oral presentation or poster), though the instructor reserves the right to assign a specific mode if necessary. Unlimited AI use is permitted in preparing presentation materials, but human authors remain fully responsible for the accuracy and originality of all presented content.
Milestones
The project consists of three milestones: FP1, FP2, and FP3. FP1 and FP2 are ungraded checkpoints designed to help keep your project on schedule. FP3 constitutes the final submission of code, report, and presentation/poster. The specific requirements for each milestone are as follows:
- FP1: In the
READMEof your project repository, create a new section labeled with the heading FP1 describing in 100-300 words:- The topic of your project.
- A minimal coding milestone that is either already completed or achievable within one week of work, which will allow basic experiments to be conducted and analyzed.
- A brief description of the proposed experiments.
- FP2: In the
READMEof your project repository, update your progress relative to the plan outlined in FP1. Retain the FP1 section, and add a new section labeled FP2 describing:- The coding milestone that has been achieved.
- A brief description of any experiments conducted so far and their preliminary results.
- A brief description of any additional planned experiments.
- A timeline for completing the written report and presentation/poster.
- FP3: Your repository should contain all source code, the written report, and presentation slides or poster materials.
Potential Project Topics
Below is a list of suggested project topics:
- Homework Extensions: Select an optional extension from one of the course homework assignments and thoroughly analyze and report on the results.
- Landmark-Based Search: Implement A* search with a landmark-based heuristic, and compare its performance against other search algorithms on real road network data.
- Model Comparison: Compare the performance of a decision tree and a neural network on a classification dataset of your choice.
- Decision Tree Enhancements: Extend your decision tree implementation from HW2 to handle missing values and numeric data, and implement tree pruning. Conduct experiments to quantify whether and by how much pruning improves performance.
- Backpropagation Implementation: Manually implement the backpropagation learning algorithm for a feedforward neural network from scratch, and conduct experiments to demonstrate its efficacy.
- Convolutional Neural Networks: Implement a convolutional neural network (CNN) for image classification, and experiment with how varying key hyperparameters impacts model performance.
- Choose your own topic: You are free to suggest any other topic to the instructor. It will likely be approved provided it builds on material studied in this course.
Final Remarks
- Your project must not have significant overlap with any work previously or currently submitted for college credit at Dickinson.
- Late days may not be used for the final presentation/poster, but may be applied toward the code and written report submissions.