The course introduces the basic concepts and techniques associated with natural language processing, the starting point for the design of information exploitation and dialogue environments based on human language, both at the lexical and syntactic, semantic and pragmatic levels. The objective is to introduce the student to the complexity inherent to the analysis of human natural language, mainly associated to the ambiguity and
contextual dependencies it presents, and to the design of data structures and algorithms that allow its practical treatment.