Write-up Guidelines
Each assignment will require a written report in addition to
programming the solution. Each report will consist of some, maybe
all, of the following forms of documentation. The required sections
for each assignment will be available on the assignment
specification. Why have lab reports?
- Technical writing is a skill that takes practice.
- Most people that use your code will never see your code,
thus your documentation is the best way to learn the programs
functionality, bugs, etc.
- Writing a report helps you think deeper into a problem.
Reports are REQUIRED on all assignments starting with program 2.
Reports are due ON or BEFORE the due date.
Reports make up 10% of your grade for each program.
1) General Information
Name,Date,Course/Section,Instructor,Assignment Number, Email
Address
Example:
Billy Bob (bob@students.wisc.edu)
CompSci 302 - Section xx Instructor: Colby O'Donnell
February 29, 2040
Program 13: Grader program.
2) Problem Statement
State, in your own words, what the program does. (One
paragraph maximum)
Example:
This program will compute the grades and class standing for
students in Underwater Basket Weaving 101.
3) Input / Output
Describe the input / output functionality of the program.
Example:
Input to the program will come from a data file which contains
the names, ID numbers, and grades of each student. The file
will also contain information on the course title, number of
assignments, and the maximum score for each assignment.
Format of the input file:
CLASS_NAME NUM_ASSIGN MAX_ASSGN_1 MAX_ASSIGN_2 ...
STUDENT_NAME STUDENT_ID SCORE_1 SCORE_2 ...
Sample Input File:
cs302 5 10 10 10 20 20
sally 123321 9 8 10 16 19
joe 393982 5 10 6 19 16
...
The program will output the final grade, sorted by class
standing, of each student.
Sample output:
Name Grade Class Standing
---------------------------------------
Fred A [1/32]
Barney A [2/32]
Wilma A- [3/32]
...
Dino F [32/32]
4) Variables / Data Structures
Describe any important variables here. What important
means is up to you, but definitely any globals or often used
variables should be included. Also, if you have created any
data structures, e.g. classes or structs, make sure you
describe the interfaces here.
Example:
Global Variables:
NUM_STUDENTS: The number of students in the class
NUM_ASSIGN : The number of assignments in the class
Data Structures
Class Student: Contains student information
Data members:
Name : The students name
ID : The students ID number
Grades[] : An array of the student's grades
Member Functions:
getGrade(): Returns the student's final grade
print() : Print the student information
5) Algorithm Description
Briefly describe your algorithm here. Remember that an algorithm
is not C++ code, but more of an abstraction of
the sequence of steps the program uses to solve the
problem. It is OK to use pseudo-code, a combination of
code and text, when you feel it necessary. This will
usually be the longest part of your report.
Example: (some function algorithms left out to save space)
Main
Input : Nothing
Output : Nothing
Returns: int (Error code to operating system)
Method :
1) Print a greeting message
2) Read in the data file. (Call function readData()
3) Calculate the grade of each student
4) Print the results. (Call function printResults()
printResults()
Input : List of student names and grades
Output : Prints the final grade, sorted by class
standing, of each student.
Returns: Nothing
Method :
1) Sort the list by class standing
2) For each student:
a) Print out student information
6) Testing Method / Results
Describe how you tested your program and what results you
got. Programs should be tested one more than the sample data
we provide, expecially since they will be graded as such. (A
couple of sentences is usually enough here.)
Example:
I tested my program with a variety of inputs. My sample
input files can be found at U:\public\samples\.
7) Known Bugs
Describe the circumstances under which your program doesn't
work correctly. This may include things out of your control,
or errors that you didn't know how to fix. In the real world,
this is probably the most important part of a programs
documentation.
Example:
* Crashes when the input file isn't in the correct format
* If a student scores a seven on every assignment, gold tokens
come shooting out of the disk drive.
8) Future Improvements
How could you improve this program? Give some suggestions.
Example:
* Would be nice to add the instructor name to output
* Calculate the mean and standard deviation
* Distribute grades via. Email
9) Comments
Tell me what you thought of the assignment. Was it too easy? Too
hard? Any suggestions on making it better?
10) Answers to Questions / Exercises
Answer any questions posed in the assignment specification (the
assignment web page) here.
Last Modified 02/08/98