There are no strict rules for what your project proposal must contain or how long it should be. It is primarily a planning document for your team to help you solidify your plans for your final project. Still, there are several important topics it should cover. Below are some ideas about what to write in your project proposal and how to write it.
2. General Guidelines
As you are writing your proposal, thinking about the following considerations will help you set the tone and decide what information is important to include:
- Who is your audience? Course instructor and TA.
- What problem are you trying to solve?
- What does your audeince know about the problem? We are technically knowledgable, but we don't know anything about what you are planning to do for your final project. You don't need to go into detail about your audience already knows about, but it is always helpful to provide some high-level overview or background to help motivate the problem and remind your audience about why it is an interesting one.
- What does your audience not know? This should be the main focus of your proposal. Spend a couple paragraphs talking about how you intend to solve the problem you've laid out.
It's ok if you don't know exactly how your solution will work — most of the time when we are trying to solve hard problems, we don't know exactly how the solution will look in the end. If we did, the problem wouldn't be very interesting. The important thing is to lay out (a) some kind of general idea of what the process will be and (b) sketch what the solution will look like. The understanding is that things are likely not to work out as planned, and you will have to pivot to adapt to unexpected outcomes. Sketching a strategy up front will help you think about what could go wrong and how you might adapt.
3. Timeline & Deliverables
You should discuss a bit about what you will produce at the end of your project. If you're making a thing, what will the thing look like and what will it do? If you are writing software, what will the user interface be and what features will it have?
You should also put together a timeline for your project, either in a table or a Gantt chart. This will help you break down the problem into pieces and figure out what can be parallized among group members.
Finally, it would be helpful for the instruction team to know how the group plans to collaborate and where you will archive your code. This can be as simple as just providing a link to your project's GitHub repo.