A Crash Course on

Natural Language Processing

(Special Topic in Computers 2)

Course Objectives

Natural Language Processing (NLP) is the art of teaching a computer how to understand (human) language. It is a type of AI technology that allows an automated system to understand human needs through natural language. Anything that deals with human languages (texts or speeches), such as web search, recommendation systems, chatbots, language translation, and social media, comes under the realm of NLP. 

Due to the success of deep learning, in the last decade, NLP has witnessed a massive change in how a computer perceives a language. The blend of classical NLP with neural networks has shown promising performance in almost every application. This crash course intends to provide a holistic view of modern NLP techniques. It will start with two introductory sections -- basics of NLP and introduction to deep learning, following which it will broadly focus on deep learning methods for NLP. The course is designed for senior undergraduate and graduate students of any discipline, who carry introductory knowledge of machine learning and a strong Python programming skill. The students are not expected to carry any prior knowledge of NLP at the start of the course. We will cover foundational architectures, different training protocols, and several downstream NLP tasks. The course will include programming assignments (in Python), quizzes, course projects, research paper reading, and three written exams (minor-1, minor-2 and major).

Course contents

Introduction to classical NLP, introduction to deep learning, unsupervised word vectors, recurrent models, attention and self-attention, Tranformers and thair variants, transfer learning, prompt-based learning, in-context learning, multilingual NLP, ethics in NLP.

Instructor

Teaching Assistants

Class Schedule and Location

Assessment Plan (tentative)


Max (Assignment 1, Assignment 2)  + Assignment 3

Evaluations Timeline (Tentative)

Suggested Textbooks

For neural networks and deep learning:

For classical NLP:

Related Courses (Non-exhaustive)