nl en

Natural Language Processing


Admission requirements

  • Recommended prior knowledge

The below list indicates useful prior knowledge for this course, and undergraduate courses where you may have obtained it:

  • Working knowledge of Python (Introduction to Programming)

  • Linear algebra (Linear Algebra for Computer Scientists 1 & 2)

  • Some knowledge of grammars and tree structures (Automata theory, Algorithms and Data structures)

  • Basic knowledge of machine learning (Machine Learning)


Natural Language Processing (NLP) is a rapidly evolving field at the intersection of computer science, linguistics, and artificial intelligence. This undergraduate course provides an in-depth exploration of NLP techniques and methodologies.

The course focusses on the fundamental concepts and tools of NLP, distinguishing between theoretical concepts and their implementation. On the theoretical side the students will learn about parts-of-speech, constituency and dependency parsing, distributional and compositional semantics. On the implementation side the course covers statistical and neural approaches to language modelling, sequence labelling and parsing, and selected applications. The course additionally discusses recurrent neural network architectures for NLP, as well as transformer models that form the basis for large language models, where encoder models like BERT and decoder models like GPT-n are detailed.

In the course, students get acquainted with the material by means of theoretical exercises combined with practical programming challenges.

Course objectives

Upon completion of the course, students will have a theoretical understanding of the broad field of Natural Language Processing. Students understand the distinction and use of formal, statistical and neural approaches in NLP, and can describe technical details of common NLP techniques. Students are able to implement (some) NLP techniques in Python.


You will find the timetables for all courses and degree programmes of Leiden University in the tool MyTimetable (login). Any teaching activities that you have sucessfully registered for in MyStudymap will automatically be displayed in MyTimetable. Any timetables that you add manually, will be saved and automatically displayed the next time you sign in.

MyTimetable allows you to integrate your timetable with your calendar apps such as Outlook, Google Calendar, Apple Calendar and other calendar apps on your smartphone. Any timetable changes will be automatically synced with your calendar. If you wish, you can also receive an email notification of the change. You can turn notifications on in ‘Settings’ (after login).

For more information, watch the video or go the the 'help-page' in MyTimetable. Pleas note: Joint Degree students Leiden/Delft have to merge their two different timetables into one. This video explains how to do this.

Mode of instruction

Lectures, background reading, assignments and preparatory exercises.

Assessment method

  • a written individual exam, closed book (50% of course grade)

  • practical assignments (50% of course grade)

    • two assignments of 15%
    • one assignment of 20%

The grade for the written exam should be 5.5 or higher in order to complete the course. The average grade for the practical assignments should be 5.5 or higher in order to complete the course. If one of the tasks is not submitted the grade for that task is 0. Each assignment has a re-sit opportunity (a later submission). The maximum grade for a re-sit assignment is 6.

The teacher will inform the students how the inspection of and follow-up discussion of the exams will take place.

Reading list

The majority of the course literature comes from Dan Jurafsky and James H. Martin, Speech and Language Processing (3rd ed), [freely available online][].
For a few lectures, additional material will be made available through the course webpage.


From the academic year 2022-2023 on every student has to register for courses with the new enrollment tool MyStudymap. There are two registration periods per year: registration for the fall semester opens in July and registration for the spring semester opens in December. Please see this page for more information.

Please note that it is compulsory to register for every exam and retake. Not being registered for a course means that you are not allowed to participate in the final exam of the course.

Extensive FAQ on MyStudymap can be found here.


Lecturer: [dr. G. J. Wijnholds][]
Course website: TBD