Computer Science Lab Report Format

  1. BASIC INFORMATION. State your name, class, section, instructor's name, assignment number, and date.
  2. PROBLEM STATEMENT. Write a short paragraph describing the purpose of the program. This statement should become your main program header comment.
  3. INPUT AND OUTPUT FORMAT. Describe how the input is going to be given to the program and the format of the output the program produces. Present how a typical run of the program should look.
  4. VARIABLE DESCRIPTION. Describe the important variables in your program. For each of these variables give its type and a description of the variable's usage in the program. This description will become a comment in your program. Do not describe less important variables such as subscripts and loop control variables. Advanced students should describe in detail the data structures used in the program.
  5. ALGORITHM DESCRIPTION. Give a description of your algorithm, making effective use of the principles of top-down design and modularity. Start by deciding what procedures and functions will be called from the main program and then describe the main program algorithm using pseudo-code. Show how all the main program variables and the procedures and functions you've declared so far are used in the main program. For each procedure and function you've declared, decide what it will do, and what the parameters will be. Then give a concise statement of what the procedure will do, written in terms of its parameters. Think of this as a contract between the program and the procedure. This statement will become the procedure header comment in your program. Next decide whether your procedure needs to be broken down into further subprocedures. Write a pseudo-code algorithm for your procedure. Now repeat this process for all procedures and functions until everything is clearly described.
  6. STRUCTURE DIAGRAM. Draw a structure diagram to reflect the procedural organization of the program as you have designed it in the previous step, and to display how information is transmitted between procedures. It should have one box for each procedure or function, and it should list each input, output, and input-output parameter that is used to pass information to or from a procedure or function.
  7. ERROR INDICATIONS. Describe the situations in which your program detects an error condition and what action the program takes. Decisions about error handling must be made in parallel with the algorithm design.
  8. HAND TRACE. Include a hand trace of the piece or pieces of your program that your instructor indicates.
  9. EXTRA CREDIT. Indicate whether any extra credit features have been implemented in this lab. You should describe these extensions in this section, but be sure you include adequate tests of these features in the test description and test typescripts below to qualify for extra credit points.
  10. CORRECTNESS ARGUMENT. Carefully explain _why_ your algorithm solves the problem correctly. This is not the same as explaining _how_ your algorithm works all over again.
  11. LISTINGS. Give computer listings of all files used in the assignment, including source files, include files, and makefiles. Label each one clearly. Appropriate program comments must be included in the code, not written in afterward by hand. Highlight important information when appropriate (such as file names), and even add handwritten notes if helpful. Note: the file name should always be in a comment at the top of each file.
  12. COMPILATION TYPESCRIPT. Turn in a typescript demonstrating the steps in compiling your program. This should show clearly that your program compiles correctly. Your instructor will give you specific instructions about how this is to be done in each individual class. Again, label and annotate to make this clear.
  13. TEST DESCRIPTION. Describe the tests you will perform to verify the correctness of your program. This should be a thorough and exhaustive list of test cases designed to show that your program does everything it is supposed to do. The combined tests should exercise every line of code in your program. For each test case, give sample test data and state what you are checking. If test data is provided by your instructor, include that as well, and explain how it tests your program.
  14. DEMONSTRATIONS OR TEST TYPESCRIPTS. Do program demonstrations for your TA or instructor that show all the required features of your program(s). And/or turn in typescripts of tests that you ran. Place them in a logical order, highlight important information, and annotate them with handwritten notes to make them easier to understand.
  15. KNOWN BUGS. Describe any known problems with your program, if it does not work as it is supposed to. Include carefully labeled typescripts of tests that cause the program to work improperly. If you can, guess at what the underlying problem is and how you might solve it if you had more time. It is better to be honest about bugs than to conceal them.
  16. POSSIBLE IMPROVEMENTS. Describe how you could improve your program if you had more time. What improvements would make the program faster, more general, simpler, or easier to understand?
  17. COMMENTS. Evaluate the lab. What did you learn from it? Was it too hard? Too easy? Suggest improvements if you can.

Page URL: http://www.d.umn.edu /~ddunham/cs4521f09/assignments/labinfo/labformat.html
Page Author: Doug Dunham
Last Modified: Thursday, 03-Sep-2009 17:29:13 CDT
Comments to: ddunham@d.umn.edu