You must form 3 to 4 person groups. We generally suggest forming 4 person groups in case one member decides to drop the class, but the workload is just fine for a 3 person group too. If you are coming into the class without a group, please use the pinned Piazza thread to find group members. It is your responsibility to find a group by the group signup date. If you do not find a group, you will not be able to take the class.
Once you have formed a group, do the following things:
- Make sure everyone has an account form and has registered the account by signing in.
- Exchange necessary contact information (email, phone number, etc).
- Share your GitHub usernames (or create an account if you don't have one yet).
You will complete four projects throughout the semester. Each project follows the same format:
- [20 pts] Initial design and design review
- [60 pts] Code (2 checkpoints)
- [20 pts] Final design
- [0 pts] Peer Evaluation
Notice that your code is only worth 60% of your project grade!
In the first phase of the project, you will create and submit a design document to be reviewed by your TA.
- You have not made any egregious mistakes or misunderstanding of the project
- You have a reasonable mastery of the skeleton code and the concepts of the project you are attempting to implement.
The initial document must be no longer than 7 pages maximum, in a readble font size (no less than 11, please.) If you violate this parameter, your TAs will go blind, and you will be penalized.Sample initial design doc
To make sure that you have a sane design, you should meet with a TA to review your design. These meetings will be held around 4 days after the project is released, and should take around 20-25 minutes. In addition you will turn in your final design document reflecting the actual implementation along with your final code handin (might not change from the design review document if you design well).
As these projects are fairly open-ended, we'll have one checkpoint to ensure that you don't leave everything to the last minute. Each checkpoint will be a increasingly large chunk of the code.
We will grade code primarily based on the final code submission. If functionality is missing from your checkpoint submission, you will still receive 80% of the credit for that functionality if it passes tests in the final submission.
Almost all of your `code' grade will be fully determined by an autograder. For projects 1 and 2 the majority of the test cases will be provided to you, this is because writing test cases for an actual operating system are really really hard, and we don't want you to go crazy trying to figure it out.
Your final design will be worth 20 points of your total project grade. Please note that this is a significant portion of your grade and this is not just an evaluation of your final design document, for more information please visit the design page
We ask you to fill out a quick survey after each project describing each project member's contribution to the project. This ensures accountability within the group.