Assignments

This page contains the programming assignments for this course. The assignment specification describes the technical requirements of the programming assignment; the checklist answers FAQs and provides advice for testing and getting started. The assignment FAQ also contains important information common to all programming assignments.

Assignment submission platform. Submit your solutions via TigerFile. Use your NetID and password for Princeton CAS authentication.

Due dates. Assignments are due at 11:59pm ET on Mondays.
# DUE LOGO ASSIGNMENT COLLABORATION LINKS
1 Monday
9/14
Percolation
Estimate the percolation threshold
using union–find.
individual Checklist
Project
Submit!
2 Monday
9/21
Queues
Implement two collections
using arrays and linked lists.
individual Checklist
Project
Submit!
The assignments below have not yet been updated for Fall 2026.
3 Monday
10/5
Autocomplete
Find all terms beginning with a given prefix,
sorted by weight.
partner Checklist
Project
Submit!
4 Monday
11/2
K-d Trees
Implement K-d trees with
nearest-neighbor search.
partner Checklist
Project
Submit!
Leaderboard
5 Monday
11/9
WordNet
Measure the relatedness of two nouns
using the WordNet digraph.
partner Checklist
Project
Submit!
Leaderboard
6 Monday
11/16
Seam Carving
Implement a content-aware
image resizing algorithm.
partner Checklist
Project
Submit!
Leaderboard
7 Monday
12/7
Fraud Detection
Predict credit card fraud using
machine learning algorithms.
partner Checklist
Project
Submit!