This course includes four programming assignments. All assignments must be completed individually unless otherwise specified.
In this assignment, you will build a language identification classifier that distinguishes between six languages:
These six languages use the same (Latin) script with minimal diacritics, making it challenging to distinguish them without sophisticated NLP techniques.
In this assignment, you will build your first language models, exploring both classical and neural approaches to language modeling.
In this homework, you will be experimenting with Neural Machine Translation (NMT) using sequence-to-sequence transformer models. You will fine-tune pre-trained MarianMT models to translate English sentences into French, compare model architectures, and tune hyperparameters to improve translation quality. You will also perform an in-depth error analysis on your model's outputs using BLEU score as your evaluation metric.
In this assignment, you will be fine-tuning pre-trained translation models using two different MarianMT configurations.
Assignment details will be announced later in the semester.
Both exams will consist of 3-4 multipart questions designed to test conceptual understanding rather than memorization. The exams are open book and open notes but non-collaborative.
Review lecture materials, complete practice problems, and ensure you understand the conceptual foundations behind each technique covered in class.
All assignments will be submitted via Gradescope. You will receive an invitation to join the course at the beginning of the semester.
Each student receives 5 late days for the semester. Use them wisely! After exhausting late days, assignments will not be accepted for credit.
All work must be completed individually. High-level conceptual discussions are encouraged, but code and specific solutions must be your own.