When working my students through the problem solving process I ask them to evaluate their plans and programs against five adjectives:
Unambiguous – This is most essential for the plan stage of the problem solving process. Plans for a program must be clear, concise, readable and understandable by those following the plan.
Efficient – Are there extra steps? Can the same goal be accomplished in less time or using less code?
Documented – This ties in and helps support unambiguous. Does the program have notes in each section of the program? Can a reader of your code understand it with out having to execute it? Are the variable names descriptive?
Modular – Are sections of code repeated or are they packaged into recallable blocks? Can the code sections be used in other parts of the program or other programs? Are the variable names so descriptive that they only make sense in this program?
Elegant – This is tying together of all the other adjectives. Have the right coding choices been made? Sometimes things like modularity trump efficiency. Is the program beautiful to look at? Are indentation and spacing used appropriately to make the program easy to read? Here experience helps to inform the evaluation.
I keep trying to work these together into an acronym but nothing seems to work MUDEE, MEEDU, DEEMU?