Natural Language Processing - Notebooks
This course provides a structured introduction to the foundations of Natural Language Processing (NLP) using Jupyter notebooks as the main learning environment. The material is organized as a sequence of interactive notebooks that combine explanations, mathematical derivations, and executable Python code. Students begin with basic text handling, tokenization, and statistical language models such as n-grams, smoothing, and perplexity. The course then introduces distributed word representations and embeddings, followed by sequence models and attention mechanisms. Finally, it covers the transformer architecture and its role as the standard framework for modern NLP.
Each notebook is designed to be self-contained, gradually building conceptual understanding while providing step-by-step implementations from first principles. Exercises and coding tasks are embedded throughout the notebooks to reinforce both theoretical knowledge and programming skills. By the end of the course, students will have developed a solid understanding of the main building blocks of NLP and the ability to experiment with and extend the provided implementations.