An expert system is a computer program that uses knowledge and inference procedures to solve problems that ordinarily require human expertise. It attempts to reason about problems like a human expert in a specific domain. The key components are a knowledge base that contains the expert knowledge in the form of rules, and an inference engine that applies the rules to deduce solutions. Expert systems have advantages like quick availability and reliability, but also disadvantages like difficulty collecting and interpreting expert knowledge into rules. They are applied in fields like medical diagnosis, process control, and education.