Computational Linguistics
Winter Semester 2021/22
Prof. Dr. Alexander Koller
Tutors: Isidora Jeknic; Katharina Stein
Tue, Fri 10-12; mostly online (see below)
Core Course, Area CL
Required course for MSc with specializations CL and LT
First class: Friday, October 22
Information on COVID-19: With the vaccination rate in the Saarland currently (early October 2021) just over 70%, I do not think we are quite ready to go back to meeting in person for this class. Because I am not allowed to enforce or check the 3G rules, I cannot guarantee that my classroom will be a safe and healthy environment for you. Therefore I will teach this class online for now.
I will track the development of the covid-19 incidence closely. If it remains stable despite the successively lifting of the restrictions, we may switch to physical teaching in January. I would very much like to meet you all in person, and I’m sure university is more fun for you as well when you get to meet each other, but I want to ensure we can do this safely.
You will have the option to meet in person for the voluntary tutorials. We will discuss details in class.
The course “Computational Linguistics” is the introductory course to computational linguistics for MSc students. It covers a wide range of techniques for natural language processing. The focus will be on structured statistical models; we will only touch upon neural methods occasionally.
Online learning platform. We will make heavy use of Google Classroom for all course activities. I will upload the slides, assignments, and additional materials there, and will link to video recordings of the classes and to reading materials. You will also upload your solutions to the assignments here, and I urge you to use the discussion forum.
Please join the Google Classroom for this course as soon as you can. You will need a free Google account to join Google Classroom.
Structure of the course. We will meet twice a week for lectures and to discuss the assignments. I will assign some reading material for each lecture, and will assume that you have read this material before the lecture. This will allow us to cover more ground in the lectures, and allow you to identify questions that you’d like to ask.
Furthermore, I will hand out six assignments over the course of the semester. Assignments will mostly be programming projects that are designed to give you a deeper understanding of the course material. I will prepare the assignments under the assumption that you will use Python and NLTK to solve them.
After you turn in each assignment, the tutors will score it, and we will then discuss your solutions in class. You should be prepared to explain your own solution to the other students. In addition, the tutors will offer regular tutorial sessions, in which you can ask us questions about the current assignment or anything else pertaining to the course. Attending the tutorials is voluntary, but strongly recommended.
Prerequisites. As an introductory class, this course does not assume any prior knowledge in computational linguistics. However, the programming assignments will start the first week of the course, and you will need to either have or develop solid programming skills to pass the course (roughly at the level of the Coursera course “Principles of Computing, Part 2”).
We will give you a one-lecture crash course in Python as part of this course, and you can attend the Python programming course in parallel. (Note that this is a course for our first-year BSc students, and it is taught in German.) However, if you have never programmed before, Computational Linguistics may not be an ideal course for you; consider taking only the Python course in your first semester, and then taking Computational Linguistics in your third semester.
Grading. This class is worth 6 credit points, which translates into 180 hours of work. Please schedule your semester accordingly.
The grade for the course is determined based on 50% grade for the assignments and 50% grade for your final project. Towards the end of the semester, you will propose a topic for a small final project that applies or extends the techniques from the course. Generally speaking, the workload for a final project should be similar to that of an assignment. You will then work on your project in the term break, and submit a working system together with a short paper that explains what problem your system solves and how it does this. We will grade the project on the difficulty of the task, the quality of your solution, and the clarity of the presentation.
In addition, you must successfully complete the assignments for the course. You must submit solutions to at least five of the six assignments. We will then add up your two best scores from Assignments 1-3 and your two best scores from Assignments 4-6. To pass the course, you must obtain at least 250 points (out of 400).