1. Introduction; Part I. Pattern Recognition with Binary-output Neural Networks: 2. The pattern recognition problem; 3. The growth function and VC-dimension; 4. General upper bounds on sample complexity; 5. General lower bounds; 6. The VC-dimension of linear threshold networks; 7. Bounding the VC-dimension using geometric techniques; 8. VC-dimension bounds for neural networks; Part II. Pattern Recognition with Real-output Neural Networks: 9. Classification with real values; 10. Covering numbers and uniform convergence; 11. The pseudo-dimension and fat-shattering dimension; 12. Bounding covering numbers with dimensions; 13. The sample complexity of classification learning; 14. The dimensions of neural networks; 15. Model selection; Part III. Learning Real-Valued Functions: 16. Learning classes of real functions; 17. Uniform convergence results for real function classes; 18. Bounding covering numbers; 19. The sample complexity of learning function classes; 20. Convex classes; 21. Other learning problems; Part IV. Algorithmics: 22. Efficient learning; 23. Learning as optimisation; 24. The Boolean perceptron; 25. Hardness results for feed-forward networks; 26. Constructive learning algorithms for two-layered networks.