This is an exercise in being able to read and make sense of someone else’s code, cleaning up and documenting that code, and writing up both a guide for a user and a guide for a later programmer who would need to modify the code.
You are to work in groups. Groups will be assigned.
The code as it is actually does compile and execute correctly. I didn’t make any modifications to break the code. I did, however, remove most of the comments.
This code is the code I used for simulating wait times at the polling place. That should give you some strong indicators for what the code does, and I have not changed any of the variable names. So this is genuine code. I have also uploaded the 240 assignment from the summer that was the simplified version of this code.
You might notice that there is dead code that is never executed. You could indicate that. You might also notice that there are input values or internal values that are never used. You could indicate that. This happens a lot with code that is developed for a purpose, under a deadline, and then the developer moves on to something else rather than taking the time to clean things up after the fact.
The user guide should read as directions to a naive user who will use the code. This should tell the user what input data is needed, what format the input needs to have, and so forth. The user guide should also explain what the output is and how it could/should be used.
The system guide should read as directions to a competent potential maintenance programmer who might need to modify this code six months or a year from now after everyone else on the project has moved on to a different job. This should be written as high level documentation of what modules exist, what part they play in the overall code, what input they need and output they produce, and such. Reading the system guide, a competent programmer should be able to sketch out what the big pieces of the program are, so that she/he will know better how to make sense of the more detailed documentation you will write for each of those modules.
You are strongly encouraged to keep your own personal log of group meetings and communications. This will document your participation in your group in case there is any dispute at the end.
You are to submit a group bundle of your work for this assignment. This
can come from anyone in the group; I don’t need a separate copy from each person in the group. The code part should come as would any of your pro- gramming assignments. The user and system guide can be a text file, a doc file, or pdf.
You are also to submit to me personally by email a summary of how the group functioned, addressing the question of what your part was, what other people did, how well the group functioned, whether all members contributed or not, and so forth. If you wish, you can submit your personal log as an addendum, but the primary document is your written self evaluation and the evaluation of the other members of your group.
Everyone in the group will get the same grade for this assignment unless it is totally clear from your individual self-evaluations that one or more people in your group were total deadbeats. If I have to, I will look at the logs that are submitted in order to try to adjudicate discrepancies or disputes.