Course Home | Course Policies | Assignments | Schedule & Lecture Notes

CS 5930: Advanced Data Structures
Spring 2020


HOMEWORK ASSIGNMENTS

I expect to assign about 3-4 homework assignments during this course.

Please make sure you understand the policy towards Academic Integrity.

Homework assignments are due to the instructor by the start of class on the date specified, unless other arrangements have been made with the instructor.

The table below gives the assignments, and associated dates. All future dates/topics are tentative until such assignments are made available.
Assignment Topic Due Date How to submit
Homework 1 Union-Find, Skip lists, and trees Feb. 14 Due by the start of class, either via email or in person submission
Homework 2 ALL the trees March 6 Due by the start of class, either via email or in person submission


Final project proposals

(Note that these have been shared with permission of the individual students. If you prefer not to share, let me know and I'll remove!)

Final project

Grades for this class will be based primarily on a final project. Projects may be submitted by teams of up to three students, or may be done individually. However, if possible, students are strongly encouraged to collaborate outside their teams, with anyone in or out of class (with proper credit, of course). Each team will submit a written document (expect about 10-15 pages, although that's flexible) and give a short presentation or poster display in the final week of class. Projects can take one of many forms:

Students are strongly encouraged to work on projects motivated by their primary research/development interests. In particular, project topics need not be limited to the specific topics covered in class, as long as they focus on data structures. Especially for theoretical projects, you should work on problems whose solution you want to know but don't.

One month before the end of the semester, each student will submit a project proposal. Project proposals are due Friday, April 2; I'll give feedback on each the following week. (Note that this is a hard deadline - no extentions!) Proposals should be 2-3 pages in length, and should include a brief and self-contained statement of the proposed topic or work, a brief survey of known results (which I'll double check), a potential plan of attack, and one or two half-baked ideas that probably won't work but what the heck you might get lucky. After everything is submitted, I will post all submitted proposals to this web page as inspiration for final projects, and we'll spend time in class discussing groups and which projects to pursue.

The ideal result of the project is something that can be polished into a publishable paper. This ideal is meant to be an attractive goal, not an absolute requirement - most research is not immediately successful, after all! If you do not find a complete solution, your writeup and presentation should describe partial results (for example, incremental improvements for some interesting special cases), promising approaches for ongoing work, what you did and where you got stuck in implementation, remaining questions where you're still stumped, and most importantly, ideas that initially looked promising but weren't (and why). Of course, this will vary slightly depending on what type of project you have, so plan to come discuss this with me after proposals are submitted. As a standing rule, I will give any student who publishes in a peer-reviewed conference or journal as a direct result of work in this class an A+. I can and will apply this rule retroactively even after the semester ends (at least until the university won't let me anymore - eventually these freeze).

Hey, wait! How do we find good problems?

Excellent question! Here are a few hopefully useful suggestions, and I'm happy to discuss with you further as needed: