G is for genetic algorithm. This is a technique used for creating software that will be well-adapted for a particular task by letting old programs "breed" - that is, provide components of themselves - in competition with other similarly bred programs. The resulting programs can be devastatingly good - better than humans - at picking good times to make investments or spotting suspicious financial transactions.

Genetic algorithms rely on two elements: a means of combining programs to produce new ones, and a means of measuring those new programs' fitness for their intended tasks. From the starting point, with a collection of programs, crossbreeds are generated that randomly incorporate separate routines from their parents. This new program is related to, but unlike, its parents. Then "survival of the fittest" takes over, and the new generation is weeded out so that only the best-suited to the task may reproduce. Eventually, you stop the process, and the survivors can be used as the final program.

The origins of the term are hazy, but the first clear reference seems to be in 1957, in a paper in the Australian Journal of Biological Sciences titled "Simulation of genetic systems by automatic digital computers". That was almost a century after Charles Darwin's seminal work on real genetic selection. Nowadays it is a thriving field.

Where might genetic algorithms go next? Though not ideal for creating word-processing programs (though nothing is impossible), it is an exciting and forward-looking field of research that could affect us in ways we never notice. A few years ago, a Scottish university set up a genetic algorithm to create a program to timetable its exams, aiming to reduce conflicts. The computer outdid the humans - so successfully that it has been adopted full-time.