Cluster algebras are a class of commutative rings discovered by Sergey Fomin and the speaker about a decade ago. A cluster algebra of rank n has a distinguished set of generators (cluster variables) grouped into (possibly overlapping) n-subsets called clusters. These generators and relations among them are constructed recursively and can be viewed as discrete dynamical systems on a n-regular tree. The interest to cluster algebras is caused by their surprising appearance in a variety of settings, including quiver representations,
Poisson geometry, Teichmuller theory, non-commutative geometry, integrable systems, quantum field theory, etc. We will discuss the foundations of the theory of cluster algebras, with the focus on their algebraic and combinatorial structural properties.