Grammatical Evolution is an automatic programming system that is a form of Genetic Programming that uses grammars to evolve structures. These structures can be in any form that can be specified using a grammar, including computer languages, graphs and neural networks. When evolving computer languages, multiple types can be handled in a completely transparent manner. This tutorial gives a brief introduction to Backus Naur Form grammars and a background into the use of grammars with Genetic Programming, before describing the inner workings of Grammatical Evolution and some of the more commonly used extensions.