It is the purpose of this course to provide a coherent description of the theoretical and practical aspects of Petri Nets by showing how Petri Nets have been developed – from being a promising theoretical model to being a full-fledged language for the design, specification, simulation, validation and implementation of large discrete event systems.