Discrete dynamical systems