A contract is “a voluntary arrangement between two or more parties”
A smart contract is “a computer protocol intended to facilitate, verify, or enforce the negotiation or performance of a contract”
Cryptographer Nick Szabo first proposed the idea of smart contracts way back in the 90s and they have recently been employed in blockchain projects, most notably Ethereum.
Smart contracts in the context of Ethereum are scripts that are executed on a global network of public nodes — the EVM (Ethereum Virtual Machine) — and can read/write transactions from/to the blockchain.
A smart contract can be used to programmatically and autonomously enforce agreements. The implication of this is, of course, the removal of centralised intermediaries. Hence the usefulness in decentralised software.