Warning: This website has not yet been updated to Fall 2025.
For any administrative questions, email the senior course staff.

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 electronically via TigerFile. Use your Princeton NetID and password for Princeton CAS authentication.

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