600.226: Data Structures

Fall Semester 2005: September 8, 2005 - December 12, 2005

Assignment 12: Free For All

Out on: December 2, 2005
Due by: December 12, 2005 by 5:59 pm for full credit (11:59 pm for 10% off, hard deadline)
Collaboration: Teams
Grading: Packaging 10%, Style 10%, Performance 20%, Design 20%, Functionality 40%

Overview

The twelfth assignment for 600.226: Data Structures once again deals with maps of Baltimore. This is the final assignment in which you work on the "big project," and it's completely up to you what you spend your time on. You must have all the features that were required for Assignments 10 and 11 of course, but what you do beyond those features... Surprise us! :-) And if your assignment didn't work before, now is the time to get all those bugs fixed...

This is a team assignment, and all of you should know which team you're in (I hope). Each team hands in one assignment only, but please make sure to include the relevant information (who is in the team!) in your README file. All members of a team will receive the same score for the product you submit together.

Deliverables

Please turn in a gzip compressed tarball of your assignment (the extension should be .tar.gz). The tarball should uncompress into a directory cs226-assignment-12-teamcode with teamcode replaced by the code assigned to your team for your repository and your mailing list; uncompressing should not create any other files in the current directory. The tarball should contain no derived files whatsoever (i.e. no .class files), but allow building all derived files. And your tarball should definitely not contain copies of the data files, but instructions of where we have to put them for your code to find them. Include a README file that briefly explains what your programs do and contains any other notes you want us to check out before grading.

Grading

For reference, here is a short explanation of the grading criteria. Packaging refers to the proper organization of the stuff you hand in, following the guidelines for Deliverables above. Style refers to Java programming style, including things like consistent indentation, appropriate identifiers, useful comments, suitable javadoc documentation, etc. Simple, clean, readable code is what you should be aiming for. Performance refers to how fast your program can produce the required results compared to other submissions. Design refers to proper modularization and the proper choice of algorithms and data structures. Functionality refers to your programs being able to do what they should according to the specification given above; if the specification is ambiguous and you had to make a certain choice, defend that choice in your README file.

If your programs cannot be built you will get no points whatsoever. If your programs cannot be built without warnings using javac -Xlint we will take off 10% (except if you document a very good reason). If your programs fail miserably even once, i.e. terminate with an exception of any kind, we will take off 10%.

Kudos

This project is based on a similar assignment by Prof. Dr. Jason Eisner; thanks a bunch for the inspiration! You are free to read Jason's assignment which contains a lot of advice and background information; however, remember that you are doing this version, not Jason's version; if you use any of Jason's ideas, please give proper credit in your README file.

Updated: $Id: assignment-12.html 259 2005-12-04 10:43:46Z phf $ Validate: XHTML CSS
Copyright © 2005 Peter H. Fröhlich. All rights reserved.