Write a program to solve the problem given below. Use whatever programming language you are comfortable with. Before you start, estimate how long each phase will take. As you are working, maintain detailed records of your time spent on each phase, and of all the defects you encounter. After you are finsihed, complete a project summary, give statistics on your completed program, and write a brief (< 1 page) experience report. Use the forms indicated below.
initial -> |
| -> solved -> |
|
For consistency, divide your programming effort into the phases given at http://www.cs.toronto.edu/~penny/teaching/csc2123/phases.html. In performing these phases, you will need to circle back, or you may wish to jump ahead. This is fine. Record time into the most approrpiate phase. For example, if you start coding and realize that your design is bad. Re-think the design, charging that time to the design phase, and then continue coding, charging that time to the coding phase. If you discover design and significant coding errors during testing, charge time back to those phases (do not double-count into testing as well, though).
Hand in the completed forms, the program source code, and a brief (1 page) experience report discussing how and why your estimates diverged from the actuals. Also, e-mail me a tar file with the Makefiles and source code so that I can try out your program myself.
BE HONEST (sometimes great managers are poor coders!).
Only I will see your results
(I will only display aggregates to the class).