1. A computer system comprising, in combination, means for receiving a specification of a problem from a user, a memory having stored therein predefined knowledge about methods of solving problems relating to a certain problem area including knowledge about methods of employing certain capabilities of a target computer system to solve problems relating to said problem area, and means for using said predefined knowledge to determine whether it is impractical to design a computer program for said target computer system that uses said capabilities of said target computer system to solve the problem specified by said user, so that said problem specified by said user is rejected as inappropriate when it is impractical to design a computer program for using the capabilities of said target computer system to solve said problem.