Emergence is when complex systems result from simple rules or interactions. It is a
beautiful
and awe-inspiring occurence in both the physical and computational worlds. For programmers, especially embedded systems programmers, who know all too well the simplicity of a CPU's actual capabilities (basically CPU's can add, check, and remember), emergence represents a ray of hope. It is the observation that even simple rules or behaviors when juxtaposed in the correct way can create mysterious, and intricate patters.
Cellular Automata
are a wonderful mathematical example of this. Our
autonomous bots
all use some kind of emergent properties to navigate.