The goal is to have each person review two other programs and to have their program reviewed by two peers. You are not required to indicate your name in the review.
You should have two other students homework 3 directories copied into your hw4 directory. Spend 2 minutes double-checking that you can read all the files and compile the program. If you have any trouble, let me know ASAP.
Does the MANPAGE give a clear description of how to run their program?
Do they give examples of use? Do you know how to designate the input file? Do you know where the output will be placed? Do you know how to use the various options (total words, distinct words, word frequency list, etc?
Do you have criticisms of their use interface? Would it be easy to automate use of this program through a script?
Do they give examples of valid/invalid words?
Do they point out any limitations or known bugs? (Keep this in mind in case you run into some later!)
Is there anything else you would have liked to see in their MANPAGE file?
Are you able compile the program according to their instructions? Do you have to do more than type make?
Do they clearly define a word? Do you think their definition is a good/useful one?
Do they give you a clear sense of the purpose of each source code file?
Do they clearly indicate the basic data structures used? Do you agree with their choice?
Can you compile and run the program according to their directions?
What happens if you make a mistake with the inputs you choose? Do they point out the error in a reasonable way?
What happens if you specify a file that does not exist? What happens if you run the executable with no arguements?
Do you see any errors in the output of their program? We will be doing a more exhaustive testing phase later, but for right now run their program on some of the files you have used to test your own program. Do you get the same answers? If not, try to explain the discrepancies. Do they appear to be following the definition they gave?
If you wanted to automate a comparision between the output of your program and the other student's program, what would you need to do?
For each file in the testFiles directory, run their program asking it to report the most common word, report the running time and the most common word.
FOOD FOR THOUGHT: What other things would you want to report in order to make these performance numbers really useful?
When you open a file, are there comments at the top to aid the reader - who wrote this code, what is the purpose of this file?
Is it easy to find the major code path? What is it?
If you didn't already know what this code was doing would it be obvious from the accompanying documentation and by reading the code itself?
In the README, do they mention any limitations on their program (e.g. limits on types of files, size of files, length of words, etc.)? Even if they don't mention it, can you discover any unreasonable limits they have placed in their code?
Did you garner any advice from reading their code about how you could do things more efficiently?
Do you have any other comments?
As you review someone elses work, you may very well realize changes you would like to make to your own. If so, don't submit the changes with this assignment; simply make the changes to a personal copy of your own program and related documenation, and then save them until you turn in the next round of the homework.