Natural Language Processing

Undergraduate Course, CuCEng, 2026

Course Objectives

The primary objective of this course is to introduce classical Natural Language Processing (NLP) problems and explore their evolution. Students will learn the theoretical foundations of traditional approaches, follow the path from n-gram language models to Transformers, and transition to solving these problems using modern, locally-hosted Large Language Models (LLMs) via the Ollama ecosystem. The course heavily emphasizes engineering practices, strict structured output generation (JSON), evaluating model performance using standard metrics (BLEU, METEOR, chrF, ROUGE), and analyzing model limitations such as hallucinations and context window boundaries.

Course Materials

Assessment

There is no written midterm or final exam in this course.

Prerequisites

Basic knowledge of Python programming and Machine Learning fundamentals is strongly recommended.

Weekly Schedule

WeekSubjectsNote
1Introduction to NLP & Text Preprocessing: Tokens vs. Words 
2Word Representation: From BoW & TF-IDF to Dense Vectors 
3Language Models: From N-grams to Transformers & Attention 
4Local LLMs (Ollama): Setup, Hardware Limits, Quantization (GGUF) & Generation Parameters 
5Text Classification & Prompt Engineering Fundamentals: Classical ML vs. LLM Prompting 
6Structured Generation: Forcing LLMs to Output JSON 
7Information Extraction: Traditional NER vs. LLM ParsingProject I due
8Midterm Week — no exam for this course 
9Hallucinations: Confabulation Analysis & Prompt Traps 
10Closed-Domain QA & Groundedness Tests 
11Machine Translation & Paraphrasing: Evaluation (BLEU, METEOR, chrF) 
12Text Summarization: Extractive vs. Abstractive (ROUGE Metrics)Project II due
13Processing Large Documents: Chunking & Context Window Limits 
14Open Source Ecosystem: Model Families, Licenses & Benchmarks 
15Project PresentationsProject III due