This chapter is an introduction to the basic concepts and advances of a new field, that of Computational (or Algorithmic) Game Theory. We study the computational complexity of Nash equilibria and review the related algorithms proposed in the literature. Then, given the apparent difficulty of computing exact Nash equilibria, we study the efficient computation of approximate notions of Nash equilibria. Next we deal with several computational issues related to the class of congestion games, which model the selfish behavior of individuals when competing on the usage of a common set of resources. Finally, we study the price of anarchy (in the context of congestion games), which is defined as a measure of the performance degradation due to the the lack of coordination among the involved players.