  The structure of events in high-energy collisions is complex and not
predictable from first principles. Event generators allow the problem to be
subdivided into more manageable pieces, some of which can be described from
first principles, while others need to be based on appropriate models with
parameters tuned to data. In these lectures we provide an overview, discuss how
matrix elements are used, introduce the machinery for initial- and final-state
parton showers, explain how matrix elements and parton showers can be combined
for optimal accuracy, introduce the concept of multiple parton--parton
interactions, comment briefly on the hadronization issue, and provide an
outlook for the future.
