Skip to main navigationSkip to main content
The University of Southampton

COMP6202 Evolution of Complexity

Module Overview

Evolution by natural selection has created amazingly complex and sophisticated solutions to some very difficult problems - how exactly does it achieve this, and how can we harness this capability for engineering artificial systems and computational problem solving? The content includes key concepts, tools and approaches in: - Basic aspects of evolutionary biology, - Techniques in artificial evolutionary computation, - Scientific exchange between the two disciplines: e.g. how artificial evolutionary algorithms help us understand the capabilities and limitations of biological evolution, and how current topics in evolutionary biology inspire new solutions to evolvability and scalability in engineering. This module is intended as an optional module for appropriate part 4 undergraduates and MSc students. Prior completion of specific modules is not a prerequisite for enrolment. This unit introduces basic biological topics to a computer science/numerate audience and assumes no biological background/pre-requisites. However, the module does involve considerable biological as well as computational material, and would suit students with an interest in the theory of evolution and competence in programming.

Aims and Objectives

Learning Outcomes

Knowledge and Understanding

Having successfully completed this module, you will be able to demonstrate knowledge and understanding of:

  • The theory, mechanisms and processes of evolution, and the factors affecting evolvability of complex systems, with a focus on the algorithmic assumptions underlying different aspects of the models and theory
  • Computational methods inspired by natural evolution and population dynamics
Subject Specific Intellectual and Research Skills

Having successfully completed this module you will be able to:

  • Place computational methods inspired by natural evolution and population dynamics within the broader framework of general computational optimization techniques
Subject Specific Practical Skills

Having successfully completed this module you will be able to:

  • Experience with computational methods inspired by natural evolution and population dynamics


Introduction to algorithmic concepts of evolution - What is evolution? - Natural selection and adaptation - Evolutionary algorithms - Algorithm variants (genetic algorithms, evolutionary strategies, etc.) Computational optimisation methods - Combinatorial optimisation (e.g. TSP, graph-colouring) - Heuristic techniques (e.g., Simulated Annealing, gradient ascent) Evolvability of Complex Systems - Concepts of evolutionary difficulty (fitness landscapes, epistasis, adaptation and constraint) - Modularity - Sexual recombination and evolvability - Algorithmic possibilities for evolution - Artificial Life models, open-ended evolution - Developmental representations Advanced topics - Wright versus Fisher (mass selection, shifting balance theory) - Units of selection - Interactions among species (coevolution, coadaptation) - Compositional evolution (hybridisation, major evolutionary transitions) - Macro-evolution (saltations, gradualism, extinction, trends, diversity, species and speciation)

Learning and Teaching

Follow-up work18
Preparation for scheduled sessions18
Wider reading or practice38.5
Completion of assessment task29.5
Total study time150

Resources & Reading list


Richard Dawkins (1976). The Selfish Gene. 

Z. Michalewicz and D. B. Fogel (2004). Combinatorial optimisation: How to Solve It: Modern Heuristics. 

De Jong, KA, (2006). Evolutionary Computation: A Unified Approach. 

Kauffman, SA (1993). The Origins of Order. 





MethodPercentage contribution
Continuous Assessment 50%
Final Assessment  50%


MethodPercentage contribution
Set Task 100%


MethodPercentage contribution
Set Task 100%

Repeat Information

Repeat type: Internal & External

Share this module Share this on Facebook Share this on Twitter Share this on Weibo
Privacy Settings