By completing the course, participants will obtain the knowledge and skills to solve a wide range of applied problems in Natural Language Processing. To achieve this goal, the participants will get to know successful methods for solving sub-problems, such as text representation, information extraction, text mining, word sense disambiguation, language modeling, similarity detection, and text summarization. The participants will understand the conceptual requirements of specific NLP tasks and be able to devise approaches to address these tasks in practice. The approaches studied in this course are centered on neural network architectures such as recurrent neural networks, sequence-to-sequence, and transformers. The participants will be able to assess the strengths and limitations of state-of-the-art NLP approaches and propose solutions for interdisciplinary NLP problems.