This course includes four programming assignments. All assignments must be completed individually unless otherwise specified.

Assignment 1: Language ID

Released: January 29, 2026

Due: February 19, 2026 at 11:59 PM

Weight: 10% of final grade

Overview

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.

Learning Objectives

  • Implement Multinomial Logistic Regression from scratch
  • Work with character-level n-gram features
  • Evaluate classification performance using confusion matrices
  • Analyze feature importance in text classification

Tasks

  1. Implement a training loop for Multinomial Logistic Regression
  2. Implement inference for Multinomial Logistic Regression
  3. Determine the optimal order of n for character n-grams
  4. Generate and analyze a confusion matrix for model evaluation
  5. Identify and display the most predictive features for each language

Assignment 2: Language Modeling

Released: February 19, 2026

Due: March 12, 2026 at 11:59 PM

Weight: 10% of final grade

Overview

In this assignment, you will build your first language models, exploring both classical and neural approaches to language modeling.

Learning Objectives

  • Implement n-gram language models with smoothing
  • Build recurrent neural network language models
  • Compare different approaches to language modeling
  • Handle out-of-vocabulary words effectively

Tasks

  1. Implement n-gram language models with Laplace smoothing
  2. Build Transformer-based language models
  3. Evaluate perplexity across different model architectures
  4. Analyze model performance on various text domains

Assignment 3: Neural Machine Translation

Released: March 12, 2026

Due: April 02, 2026 at 11:59 PM

Weight: 10% of final grade

Status

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 4: TBA

Released: April 02, 2026

Due: April 23, 2026 at 11:59 PM

Weight: 20% of final grade

Status

Assignment details will be announced later in the semester.

Exams

Midterm: February 26, 2026 (in-class)

Final: May 04, 2026 1 PM - 4 PM Eastern (in-person)

Weight: 25% each (50% total)

Exam Format

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.

Topics Covered

  • Midterm: Language modeling, classification, neural networks, word embeddings
  • Final: Comprehensive, with emphasis on sequence modeling, attention, transformers, and applications

Preparation

Review lecture materials, complete practice problems, and ensure you understand the conceptual foundations behind each technique covered in class.

Submission Guidelines

Platform

All assignments will be submitted via Gradescope. You will receive an invitation to join the course at the beginning of the semester.

Late Policy

Each student receives 5 late days for the semester. Use them wisely! After exhausting late days, assignments will not be accepted for credit.

Academic Integrity

All work must be completed individually. High-level conceptual discussions are encouraged, but code and specific solutions must be your own.

Getting Help

  • Post questions on Piazza for quick responses
  • Attend office hours for one-on-one help
  • Form study groups for conceptual discussions