Fractals were popularised by Mandelbrot in 1975 in his book Les Objets Fractals: Forme, Hasard et Dimension. In this book, Mandelbrot used the term fractal to describe a number of mathematical phenomena that seemed to exhibit chaotic or surprising behaviour. All of these phenomena involved the definition of some curve or set through the use of some recursive functions or algorithms. The Mandelbrot set is one such phenomena that is named after its discoverer.
Java/C versions of algorithms in Computation Beauty of Nature:
Fractals Unleashed!
Create your own fractal tree
Another L-System demonstration
How particles moving with simple rules can form complex patterns: The Mandelbrot example
interesting examples:
Fractal Clock
Fractal Music
uses of fractals
L-system based fractals
The fractal applet
Java fractal
Fractal extreme!

and more links:
Fractals and the mathmatics of chaos
Chaos, fractals and attractors

L-systems are sets of rules and symbols (also known as "formal grammars") that model growth processes. The name "L-system" is short for "Lindenmayer System", after Aristid Lindenmayer, who was one of the first people to use syntactic methods to model growth. A simple L-system contains four elements:

1. VARIABLES are symbols denoting elements that can are replaced.
2. CONSTANTS are symbols denoting elements that remain fixed.
e.g. The expression <subject> <verb> <predicate> consists of grammatical variables. Each variable may replaced by constants (english words or phrases) to produce sentences in english, such as "The cat sat on the mat" or "The dog ate the bone".
3. RULES ("syntax") define how the variables are to be replaced by constants or other variables. e.g. in above example <subject> -> the cat would be one such rule.
4. START words are expressions defining how the system begins. e.g. the above examples from english might start from the single variable <sentence>


Code examples:

random walk 1
random walk 2
random walk 3
random walk 4

Pendulum