Heuristics
Heuristics is a term that denotes the use of common-sense rules, gleaned from experience, to solve problems. In computer science, heuristics is the basis of heuristic programming, a branch of artificial intelligence and computer science concerned with programming computers to perform in a human-like fashion.
Heuristic programs are self-learning, meaning that with use they acquire characteristics that improve their performance. The improvement may not always be the best attainable, but it is usually beneficial. Such programs often form the basis of so-called expert systems--computer applications that perform tasks that would otherwise be done by a human expert. Examples of where heuristic programming is used include expert systems for diagnosing human illness, financial forecasting, and scheduling deliveries.
The use of heuristics in computer science involves what have been termed usability heuristics. Jakob Neilsen and Rolf Molich developed these heuristics in 1990. There are generally considered to be ten usability heuristics:
- 1. User knowledge of system status: The system should keep users apprised of what is going on ("Where am I? and "Where do I go next?") through regular feedback.
- 2. A "real world" system: The system should communicate with the user in language the user understands, including natural expressions and order of logic, rather than using system-related terminology. The diversity of user backgrounds in the Internet environment can make a common language of understanding a challenge to achieve.
- 3. User control and freedom: The system should allow user to easily undo or redo inadvertent actions. Providing emergency exits or a home button are ways of addressing this heuristic.
- 4. Consistency and standards: If several different words or actions can have the same meaning, the actual meaning should be clear to the user. The conventions followed should mirror that of the operating platform on which the system is running.
- 5. Errors: A system design should concentrate on eliminating errors.
- 6. Recognition, not recall: Objects, actions, and options should be visible and well labeled, or should easily retrievable so that the user does not have to retain information in their memory. If users can recognize where they are by looking at the current page, they are less likely to get lost.
- 7. Flexibility and ease of use: The system should be capable of adjusting the interaction speed to the level of familiarity of the user, so that a user does not feel rushed or slowed down. Bookmarking should be possible.
- 8. Presentation of information to user: communication with the user should be brief and to the point, with irrelevant or rarely used information excluded.
- 9. Recognition, diagnosis and recovery from errors: If an error occurs, the error message should be clear, should precisely indicate the problem, and should suggest a reasonable solution. If a solution is not forthcoming, the message should provide a link for the user to continue a search for a solution.
- 10. Help and documentation: system should be useable without the need for help functions, but, if required, assistance should be easy to locate and understand.
This is the complete article, containing 485 words
(approx. 2 pages at 300 words per page).