Functional analysis is mainly concerned with the study of vector spaces and operators acting upon them. It provides powerful tools in handling several problems in applied mathematics and theoretical physics. It is also basic for the understanding and development of very many other mathematical theories like the Theory of Partial Differential Equations and the Theory of Operators. The first part of the course is devoted to a short introduction in the theory of metric spaces and to a detailed study of normed and Banach spaces and in particular to the analysis of linear operators acting upon them. The second part of the course deals with Hilbert spaces and linear operators upon them, since they play a fundamental role in applied mathematics. Finally, we look at some fundamental theorems for normed and Banach spaces such as the Hahn-Banach theorem for complex vector spaces and normed spaces and its application to bounded linear functionals; the uniform boundedness theorem, and the closed Graph theorem.