Department of Computer Science


This course will introduce you to some popular nature-inspired computing methods. You'll learn the concepts and practically apply them through a series of coding assignments.

A sample outline can be found here.


It's life, Jim, but not as we know it

Geek points if you get the reference. During this course we encounter several different forms of nature-inspired computing, including cellular automata, ant colony optimization, artificial neural networks and artificial life. But our main focus is on evolutionary algorithms, where we explore in detail how we use techniques inspired by natural selection to find good solutions for intractable problems.


Other useful information

The required course text is Introduction to Evolutionary Computing, 2nd Edition, by Eiben & Smith.

All programming on this course will be in Java, and the assignments will primarily be practical application of some of the techniques covered during the course.

For this course you will need to know how to create and manipulate data structures, such as 1D and 2D arrays, graphs and trees.

These structures underpin many techniques used in nature inspired computing. It is expected that you already know how to work with them, and that is why COMP2002 - Data Structures and Algorithms is a pre-requisite.

Data structures are not taught as part of the course, so anyone needing to refresh their knowledge will need to do some independent study. Go online and find tutorials, read APIs, and so on. Being able to learn by yourself about features of a programming language is a vital - and frequently useful - study skill!