Abstract: Consensus is a fundamental problem in the theory of distributed computing. Research about consensus and its generalization, set agreement, has helped the theory of distributed computing community understand issues of computability and complexity, the power of randomness, and the importance of different termination conditions. This talk will survey a collection of classical and recent results about consensus in shared-memory systems.