Smart contracts are programs that run entirely on the Ethereum blockchain. Anyone can use their computer to join the network. Anyone can write and deploy code to it and once the program is on the blockchain it is run simultaneously on thousands of computers around the world. The properties and capabilities of the program are decided beforehand by whomever coded it.
Although smart contracts are capable of implementing any sort of program, they are commonly used to issue and keep track of their own cryptocurrencies (e.g. Ethereum tokens), that may be used as part of a greater ecosystem. Other examples of smart contract usage include: keeping immutable registries of information, facilitating escrow services, or operating betting and banking services.