Project: Proposal

You will start work on the class project by preparing a proposal with your project group. We will spend time in class discussion possible project topics.

Your project proposal should be written with your project group, and must include:

Goals
What are you planning to build, and why? What will this project add to the basic kernel we’ve implemented so far?
Design
At a high level, how do you plan to implement the project you are proposing? Describe any key algorithms and data structures, as well as the interface by which others will access the functionality you add to the kernel. For most projects, a list of C function declarations or system calls would be an appropriate way to describe the interface as long as you document each function/system call.
Challenges
All projects should include some problems that you are not yet sure how to solve. For example, if your plan to imlement an on-disk filesystem you would need to determine how you access a storage device from your kernel. Include at least two specific challenges/questions and discuss your plans for resolving them.
Schedule
How will you divide up the work for this project, and when do you expect to have each piece completed? Make sure each group member has a clear responsibility during each of our remaining weeks. Try to set major milestones each week so you can revise project goals if you fall behind.

I expect your proposal will be about four pages long, possibly longer if you include diagrams or a complex interface. You should submit your project proposal by email to the instructor; please just send the proposal once for each group, and CC all group memebrs on the email.

Grading

A project proposal that addresses all of the areas above should receive full credit, provided the proposal includes sufficient detail. I may offer suggestions or encourage you to adjust the scope of your project, but that will not impact your proposal grade.

You should not think of the proposal as a contract for the project implementation. I expect many projects will turn out to be more challenging than we expect at first, so you will have the option to adjust the scope of your project before the end of the semester. Just do your best to propose an interesting project that you believe will be achievable in the six remaining weeks, but keep in mind that you may need to skip elements of the project if you run into unexpected issues.