How
To Write a Program
(revised 01/11/2008)
·
solve
the problem using real data (i.e. generate and solve a simple "test
case")
·
explain
to someone how to solve the problem
2. Specification:
Describe “what” the task is
·
this is sometimes combined with the Analysis step above
3. Design: Describe “how”
to solve the problem
·
Create an IPO Table with three columns: Input, Processes
(calculations), Output
·
" Pseudo-Code
the Solution": Pseudo-coding
allows you concentrate on the logic of the program before dealing with
the details of language syntax (step 3).
o
execute
the pseudo-code by hand using a simple “test case” (see Analysis)
4. Implement the Design
·
Translate Pseudo-Code into Python (or C++)
·
Edit, Compile/Run, and Debug your Python (or C++) Code to
obtain a "clean compile"
5. Test the Code:
·
use
good data "test cases" - data that should work
·
use
test cases that "test the boundaries" - data covers special cases or
·
use
bad data "test cases" - data that would cause the program to crash or
return a wrong answer - unless the program is robust enough to take special
action.
6. Maintain the
Program:
continue to develop the program fixing hidden bugs and adding new and better
features
Using Trace Statements: One way to debug a program is to have it display intermediate results. This can be accomplished by inserting output statements that display intermediate values of computations. For example, the following code computes the compound interest for an "amount" for "n" time periods at "interestRate" percent. Each iteration of the loop computes the interest then adds the interest into the amount.
for i in range(n):
interest = amount * interestRate
amount = amount + interest
Suppose you wanted to see the amount of interest for each iteration of the loop. You could add the following print statement to display interest which could be used to check that the proper interest was being computed.
for
i in range(n):
interest = amount * interestRate
amount = amount + interest
print i, interest
When done, you could go back into the source code and remove the "trace" statement. However, if you inserted a number of these trace statements in the code, it is more work to go back and physically remove the trace statements. Nevertheless, there is a better way, a trick that allows you to insert trace statements like the above then "turn them off" by changing the value of one constant in the program.
First assign the variable DEBUG equal to the Boolean value True recalling Python is case-sensitive
DEBUG = True;
Then make each trace statement subordinate to an if statement controlled by the boolean variable DEBUG
for i in range(n):
interest = amount * interestRate
amount = amount + interest
if (DEBUG):
print i, interest
To turn off the trace statements reset DEBUG to False
DEBUG = False;