Cellular Automata and Discrete Complex Systems