The course gives an overview of various methods for automatic processing of natural language in both text and speech forms. The course covers some classical rule-based methods, methods based on classical statistical learning and very modern deep learning based methods. The course also gives students practical hands-on experience with applying those methods for various tasks.