Table of Contents: 1. Introduction; 2. Representation, Initialisation and Operators in Tree-based; 3. Getting Ready to Run Genetic Programming; 4. Example Genetic Programming Run; 5. Alternative Initialisations and Operators in Tree-based GP; 6. Modular, Grammatical and Developmental Tree-based GP; 7. Linear and Graph Genetic Programming; 8. Probabilistic Genetic Programming; 9. Multi-objective Genetic Programming; 10. Fast and Distributed Genetic Programming; 11. GP Theory and its Applications; 12. Applications; 13. Troubleshooting GP; 14. Conclusions.