Warning: This website has not yet been updated to Spring 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.

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 Spring 2025.
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/21
Fraud Detection
Predict credit card fraud using algorithms for machine learning.
partner Checklist
Project
Submit!