Simon Thompson:
Haskell. The craft of functional programming.
Third edition 2011.
Chapters 1-8, 11, 13, 18 are core syllabus.
Stephen Marsland:
Machine Learning.
An Algorithmic Perspective.
Second Edition 2015.
Chapters 1-4, 6.1-6.2 (including chapter introduction), and
10 are core syllabus
(Chapter 6.3-6.6 and 14 is removed from the syllabus.)
Books on Functional Programming
Simon Thompson:
Haskell. The craft of functional programming.
Third edition 2011.
This a very popular academic textbook, including suitable exercises,
and highly recommended as such.
It covers pure functional programming in general as much as Haskell
in particular.
It is a little shallow when it comes to monads, which is an important
topic to be able to solve practical problems in Haskell.
This book has a very different focus than Simon Thompson, focusing on
how to write useful programs for real-world problems in Haskell.
It is not a textbook and offers no exercises, but it starts with the
basics and appears to be suitable as a beginner's text.
Another book for Haskell beginners, this text takes a tutorial approach
with very detailed examples.
Like Real World Haskell, it covers relatively
advanced topics like monads as well.
This book is beyond the syllabus and is a very useful and
comprehensive source on parallellising Haskell programs.
Books on Intelligent Algorithms
Stephen Marsland:
Machine Learning.
An Algorithmic Perspective.
Second Edition 2015.
This book has about the right coverage of our two algorithms,
genetic algorithms and artificial neural networks.
The algorithmic perspective makes it suitable for a practical
approach, focusing on implementation of the algorithms.
The curriculum is largely based on this book.
Stuart Russell and Peter Norvig:
Artificial Intelligence: A Modern Approach
Third edition 2010.
This is a comprehensive reference which is widely used as a
textbook across the world.
It is a probable choice for anyone who wants to dig deeply into
artificial intelligence, but may be daunting in view of this
particular module.
It is also the textbook for a subsequent course called Topics in AI.
Hans Georg Schaathun:
Machine Learning in Image Steganalysis
(Chapters 10-13 + Section 1.2)
This book is about a particular application of Machine Learning
(or AI), and as such, it can illustrate some of the practical
challenges involved in using Machine Learning.
Randy L. Haupt & Sue Ellen Haupt:
Practical Genetic Algorithms.
Second Edition 2004.
The lecture notes for the GA component of the course are mainly based
on this book.
David E. Goldberg:
Genetic Algorithms in Search, Optimization, & Machine Learning.
1989.
The gold standard for books on GA.
Reference literature
The following books are good references, if you are missing
prerequisite skills from your undergraduate studies.
Richard A. Johnson and Gouri K. Bhattacharyya
Statistics : principles and methods
This is a classic textbook in elementary statistics.
Other documents
Hans Georg Schaathun.
Evaluation of splittable pseudo-random generators.
Journal of Functional Programming, 25, May 2015.
Preprint/Publisher's version
UC Irvine Machine Learning Repository
is a repository of sample data sets.
These will be very useful to test learning algorithms,
and we will use some of the data sets for testing in the
exercises.