Assignment Information

Assignments: Pick any 2 of 3
Late Days: 3 late days (at most two per assignment)
Submission: Paperless

Assignment 3: KDTree

PDF

Due: Tuesday, March 13th, 11:59pm

This time around, you'll be writing a data structure to efficiently find points that are nearby a target point. Writing it will take an understanding of templates, constructors (including copy constructors), and operator overloading. Best of luck! If things go wrong, don't hesitate to email me.

There's no web demo with this one, but the starter files include test cases. If you have any trouble getting started, want any clarification, or spot any typos/errors, please email me!

Assignment 2 (Second Part): WikiRacer

PDF

Due: Tuesday, March 1st, 11:59pm

This is the final part of Assignment 2. The tasks are broken up into small manageable steps and I encourage you start early so that you can clarify any questions with me well before the deadline. The code for this assignment is not very long, but it can be dense in terms of the modern C++ concepts it employs. Ask lots of questions and have fun with it!

If you have any trouble getting started, want any clarification, or spot any typos/errors, please email me!

Assignment 2 (First Part): WikiRacer

PDF

Due: Saturday, Feb 10th, 11:59pm

In this assignment you'll be writing a completely novel program that finds link ladders between two Wikipedia pages by using an intelligent algorithm. In the process, you will hopefully develop a strong understanding of several core C++ features such as iterators, algorithms, and containers!

This is the first part of a two part assignment and shouldn't take more than 2 hours. There are two tasks to complete in this part and I really urge you to do the first task as soon as possible. The earlier you submit this task, the smoother the second part of this assignment will run.

Assignment 1: GraphViz

PDF

Due: Tuesday, January 30th, 11:59pm

In this assignment you'll be writing a graph visualization algorithm. For full details, click the PDF button above!

This year we have a live web demo! Unfortunately, JavaScript handles numbers a little differently than C++, so the web version behaves slightly differently. The end shape should be correct, though. doodad-3 is a notable exception; if you find others that you think are wrong, let me know! Some examples take a while to finish.