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
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!