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

Assignment 1: Language ID

Released: September 11, 2025

Due: October 2, 2025 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: October 2, 2025

Due: October 23, 2025 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 RNN-based language models
  3. Evaluate perplexity across different model architectures
  4. Analyze model performance on various text domains

Assignment 3: TBA

Released: October 23, 2025

Due: November 13, 2025 at 11:59 PM

Weight: 10% of final grade

Status

Assignment details are currently being finalized for the Fall 2025 offering. Check back soon for updates!

Assignment 4: TBA

Released: November 13, 2025

Due: December 4, 2025 at 11:59 PM

Weight: 20% of final grade

Status

Assignment details will be announced later in the semester.

Exams

Midterm: October 9, 2025 (in-class)

Final: TBD (during finals week)

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