Expert Systems are computer programs that use knowledge and inference procedures to solve problems that normally require human expertise. They are designed to solve problems at an expert level by accessing a substantial knowledge base and applying reasoning mechanisms. Typical tasks for expert systems include data interpretation, diagnosis, structural analysis, planning, and prediction. Expert systems consist of a knowledge base, inference engine, user interface, knowledge acquisition system, and explanation facility. The inference engine applies rules and reasoning to the knowledge base to solve problems. Knowledge acquisition involves eliciting expertise from human experts to build the knowledge base.