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 2/3 |
![]() |
Percolation Estimate the percolation threshold using union–find. |
individual |
Checklist Project Submit! |
2 | Monday 2/10 |
![]() |
Queues Implement two collections using arrays and linked lists. |
individual |
Checklist Project Submit! |
3 | Monday 2/24 |
![]() |
Autocomplete Find all terms beginning with a given prefix, sorted by weight. |
partner |
Checklist Project Submit! |
4 | Monday 3/24 |
![]() |
K-d Trees Implement k-d trees with nearest neighbor search. |
partner |
Checklist Project Submit! Leaderboard |
5 | Monday 3/31 |
![]() |
WordNet Measure the relatedness of two nouns using the WordNet digraph. |
partner |
Checklist Project Submit! Leaderboard |
6 | Monday 4/14 |
![]() |
Seam Carving Implement a content-aware image resizing algorithm. |
partner |
Checklist Project Submit! Leaderboard |
7 | Monday 4/28 |
![]() |
Fraud Detection Predict credit card fraud using algorithms for machine learning. |
partner |
Checklist Project Submit! |