Computational Linguistics
Winter Semester 2023/24
Prof. Dr. Alexander Koller
Tutors: Sarah Breckner; William Lacroix
Tue, Fri 10-12; Building C72, Room -1.05 (go down the stairs around the elevator)
Core Course, Area CL
Required course for MSc with specializations CL and LT
First class: Friday, October 27
The course “Computational Linguistics” is the introductory course to computational linguistics for MSc students. It covers a wide range of techniques for tagging, parsing, and semantics, including symbolic (classical statistical NLP, e.g. PCFGs), neural, and neurosymbolic models.
Online learning platform. We will make heavy use of Moodle 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 Moodle for this course as soon as you can. You will need a university account for this.
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 in 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 at the LST department 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).