Final Project
CS-31 | Tufts University | Fall 2026 · Tu · Th 12:00 PM – 1:15 PM
Project Goal
Throughout this class, I've been giving you workflows that get you familiar with tools as well as give you an
example of how it's used in practice to allow you to explore different scenarios. For your final project
you'll be making a workflow of your own. The outcome of the project isn't a specific
result of a workflow, it's the workflow itself. You are building a tool to solve a
type of problem and make someone's day easier. The goal is to get hands-on experience with the
types of scripts that scientists, engineers, and analysts use in their day to day work and how to design
them well. This is your opportunity to research how AI may (or already) show up in an area you are
interested in.
The project has three hard constraints:
- The workflow must be in a JupyterNotebook and use at least one of the methods or algorithms that
we discussed (or will discuss) in class.
- The workflow must be situated within a genuine task that needs doing that doesn't have any
existing "out of the box" solutions.
- AKA: This is something that someone would really use in their day-to-day life or work and
currently no easy tool exists to do so.
- The workflow is designed such that it can be followed and executed with minimal external
intervention.
- AKA: Your workflow should follow good coding and documentation practices that you've see in class.
Someone who is familiar with Python (like you) and knowledgeable about the domain should be
able to run the workflow and make changes to fit their specific needs with minor clarification
to understand what it's doing.
| Not What I'm Looking For |
What I'm Looking For |
| We built a notebook that uses constraint satisfaction
to find the optimal schedule for student workers triaging support tickets. |
We built a scheduler that allows student workers to
augment support tickets with existing on-the-ground knowledge and automatically
reprioritizes the schedule. |
| We used reinforcement learning to generate new drum
sequences on a drum machine. |
We built a tool that offers variations on a drum sequence
a producer inputs, and tweaks the variations based on what variations they accept and what
they reject. |
| We ran an agent-based simulation of passenger flow on a
large hotel's elevator system to find the optimal dispatch rules. |
We built a workflow where a building manager can change
various elevator dispatch rules and see how the waiting experience changes for certain
individuals. |
Notice how what I'm NOT looking for centers a method and a result, while what I'm
looking for centers a user and the broader context of the result.
Deliverable Schedule
| Deliverable |
|
Description |
Due |
| Scaffolding |
Topic Exploration / Groups Formed |
A one page document that details a few potential projects that you
would be interested in exploring. |
10/15 |
| Project Proposal |
A more formal project proposal that lays out the specific goal of the
proposal, a survey of prior technologies and the gap within them, and your planned approach.
|
10/29 |
| Preliminary Workflow and Document |
A working workflow that contains the minimum viable amount of code
needed to solve your problem. A corresponding document that details the stakeholders and design
process of the workflow. |
11/19 |
| Peer Review |
A peer review of another group's preliminary workflow and document,
giving feedback for them to incorporate into their final deliverables. |
12/1 |
| Final Submission |
Project Presentations |
A presentation to other students that gives context on the problem
that's being solved and your design process, a reflection of what you learned, and a demo of
your workflow. |
12/8 and 12/10 |
| Final Report |
A full report that gives context on the problem that's being solved,
what makes yours unique, your stakeholders and design, and a retrospective of what you learned.
|
12/15 |
| Final Workflow |
An extensible workflow that runs end to end on someone else's machine
and completes stated project goals. |
12/15 |
| Presentation Feedback |
|
You'll be giving feedback on other students' presentations. |
|
Logistics and Grading
Groups: You are allowed to work individually or in a group of two students. Especially
ambitious projects are allowed to have groups of three, but you will need to reach out to me separately to
discuss why you feel that your project necessitates a triad and how you will manage logistics for a large
project.
External Resource and AI Usage:
- For code:
- You may use such technologies to "automate the boring stuff" in terms of code development, but
the high-level plan and vision for the project should be yours. You can use AI to generate as
much code as you want, however you are expected to fully understand any code you use
and be able to answer questions on it if asked.
- This is not to discourage you from being ambitious. This is why we have
multiple milestones in the project. If by the preliminary workflow you feel like you bit
off more than you can chew - be honest about that in your final report and final
presentation. This is why we have the preliminary workflow and peer
reviews! Recognize when you are overstepping your current knowledge and your
project's complexity is escaping you and try to rein it back. I would rather you submit
something with one working feature than a dozen broken features.
- Your final report should disclose all steps that involve AI assistance. If any
code was pulled from sources online, those should be cited as well.
- For writing and presentation:
- You should write every word of your report and your presentation yourself (no AI-assisted
writing).
- You may use AI to brainstorm ideas, do preliminary research, or get high-level feedback on
drafts you've written yourself (even though I'd prefer you'd get those directly from the
source). But just like in cases with normal plagiarism do not use the AIs output
verbatim or minimal edits. Be mindful of AI leaking into your words and making
decisions for you.
- Remember, citing an AI's response is not the same as citing an authoritative
source.
- I understand that some students, especially those with English as a second language, use AI
tools as a grammar and translation aid. If you are one of these students, please reach
out to me so I can keep that in mind when reviewing your writing.
TL;DR - Please do not submit something you do not understand. If it becomes evident that your
project seems to be beyond your understanding (e.g. we start asking questions that we believe you should
know and you can't answer, your code and your report don't line up, etc), that will be reflected in your
evaluation. If the misunderstanding is severe, and we feel that you used someone else's code without
documenting it or used AI without disclosing it, we will treat that as unauthorized collaboration and refer
the case to the appropriate disciplinary authorities at Tufts.
Notes
There are a few hard constraints to this project.
- If your code does not execute end-to-end on our machines after installing the required packages
your entire project grade will be capped at 60%.
- Please submit working code that does what you say it does!
If you submit and we see there's easily correctable mistakes that we notice or there was a mix
up in the files you submitted, we'll reach out to you and ask you to fix it ASAP. Double check
your workflow from a new kernel and on different machines before you submit.
- Your project must use a method we discussed or will discuss in class.
- Your project should be based off of, or extend the topics discussed in this class. I'd encourage
you to do your own research as there are many variations on the topics we discuss that we
didn't have time to cover (e.g. adversarial search for game playing, dynamic bayesian networks,
specific algorithms for collaboration in multi-agent systems). If you're
familiar at all or interested in exploring machine learning, many of these topics are often
augmented with machine learning techniques (e.g. deep reinforcement learning, game playing
algorithms such as AlphaGo that blend machine learning and tree search). You are welcome to explore building
something that involves a LLM-based agent,
however your project has to be more novel than "we wired up a chatbot to call this API".
- We will hopefully catch this at the project proposal phase, so I don't imagine this being an
issue!