Systems wherein strategic agents compete for limited resources are ubiquitous. For example, the economy, computer networks, social networks, congestion networks, nature, and so on. Assuming the agents' preferences are drawn from a distribution, a reasonable assumption for small mechanisms in a large system, Bayesian mechanism design governs the design and analysis of these systems. This monograph surveys the classical economic theory of Bayesian mechanism design and recent advances from the perspective of algorithms and approximation. Classical economics gives simple characterizations of Bayes-Nash equilibrium and optimal mechanisms when the agents' preferences are linear and single-dimensional. The mechanisms it predicts are often complex and overly dependent on details of the model. Approximation complements this theory and suggests that simple and less-detail-dependent mechanisms can be nearly optimal. Furthermore, techniques from approximation and algorithms can describe good mechanisms beyond the single-dimensional, linear model of agent preferences. This text is an ideal reference for researchers and students working in the area as it presents over a decade of recent work on algorithmic aspects of mechanism design in the context of the classical economic theory of Bayesian mechanism design.