The following disclaimer applies, and is copied into the start of each relevant page, in case they are taken out of context.
This is just a brief overview of some techniques presented in an entirely informal way, to give an appreciation of the basic principles by cutting away all the confusing details, and therefore is not to be taken as an exact comprehensive summary, but merely indicative of the underlying principles in the general case.
Evolutionary Computing.
Like neural networks, evolutionary algorithms, may appear forbidding and mathematical, but the basic principles are simple and there are reasonably good facilities out there for experimentation. Although the basic idea is analogous to 'survival of the fittest', or more accurately, or perhaps more, sensitively in this case 'picking the best', it has a sound mathematical foundation called 'directed stochastic search' and biological metaphors are better ignored since they often lead to groundless assumptions and expectations.
A simple example may help. If you were asked to find the highest peak on a contour map, but could not see the entire map at once, but could only see the map through a paper mask which you could perforate, then you would initially take a random sample of points across the map in the first round. If certain sections of the map gave a good result, in this case, they indicate high points, then you would naturally search between and around these points in an attempt to find higher points in the next round. The biological terms: 'generation' refers to a round of samples; 'crossover' refers to searching between good samples, and 'mutation' refers to searching around good sample points, in an attempt to 'breed' good stock for the next generation, but it all seems needlessly biological to me, when a perfectly adequate analogy of 'blind-man's bluff' is clearly adequate.
Obviously, if you search between points on the same upwardy convex ridge or peak, then you will get a better solution, but if you search between points on different hills in an upwardly concave valley then you will get a worse solution; which naturally leads to the isolated population approach - search on separate hills separately, rather than in the valleys in between; unless you expect to find peaks in the valleys, but you never know! That is the problem with finding global optima with genetic search, but enough for now.
That describes the basics of a genetic search algorithm, but of course it can be applied to any multi-dimensional search space which can be transformed to fit this scheme.
It can also be used to search in a program or algorithm space, in an attempt to search for novel solutions, and this is known as genetic programming. In this case, program (or algorithm) segments are rearranged, constrained by sensible semantic & parse-rules to generate new solutions which are then run on test cases to evaluate their performance.
The main drawback with genetic search is that it takes an awful amount of time to converge, which is due to it's relatively random and unintelligent breadth-first search technique. So despite the title 'directed stochastic' search, it is reminiscent of a multi-player game of 'blind man's bluff! But after all, searching in most random fields is basically that!
Evolutionary computation can be used to identify systems, and generate algorithms and programs, which allows much scope for projects.