University of Maryland

CMSC 420 Data Structures, Fall 2003

History of Specification Changes

Back to Main page

DISCLAIMER
This history has been compiled by diffing the previous version of the specification with the updated version. This history is NOT guaranteed to be complete. That is, if something in the spec changed between versions but was not listed in this history, you are still responsible for adhering to the specification! In short, the specification is final. This history is merely meant as a public service to highlight the major changes between versions. If you find something that should be on this list that is not, e-mail Kevin Conroy at kmconroy at wam.

Version 4.01 (html) (pdf) (ps) to Version 4.02 (html) (pdf) (ps) on 12/5/03.
  • Clarified CREATE_ROAD explaination to more accurately reflect the <SpatialIntersection> error.
  • Clarified "*_WITH_MAP" commands; You should only draw a map on a <success> message.
  • Added <LocationNotMapped> check to FIND_IN_CITY
  • Fixed typo in FIND_IN_CITY: <CityDoesNotExist> -> <LocationDoesNotExist>
  • Added "Point Breakdown" section for Part 4.
Version 3.04 (html) (pdf) (ps) to Version 4.01 (html) (pdf) (ps) on 11/26/03.
  • Added ANNOTATED_ROUTE, UNMAP_LOCATION, UNMAP_ROAD commands.
  • Expanded explanation of Part 4 requirements to include details on ANNOTATED_ROUTE.
  • Added unchanged commands from Part 3 to Part 4.
Version 3.03 (html) (pdf) (ps) to Version 3.04 (html) (pdf) (ps) on 11/14/03.
  • Changed second to last line in the long example in PRINT_MAP to accurately reflect <OneWayRoad> BNF.
  • Added section "Point Breakdown" to Part 3.
  • Added O(E*lgV) runtime requirement for shortest route/adjacency list to Part 4 Preview.
  • Nov. 17: Changed due date to reflect part 3 extension. New due date is Mon. Nov 24, 2003 10pm.
Version 3.02 (html) (pdf) (ps) to Version 3.03 (html) (pdf) (ps) on 11/7/03.
  • Changed <black_node> in PRINT_MAP to use <Location> rather than <City>
  • Clarified CREATE_CITY: Radius will be a non-negative integer (i.e. 0 is a valid radius).
  • Changed <success> on CREATE_CITY to say "Created city" rather than "Created location" and changed from <Location> to <City> (just to clarify).
  • Added BNF for <LocationType>
  • Added a new Location type: Intersection. This should allow you to create data sets that have intersecting roads!
  • Added "Please note that you should use a single B+ tree to store all Cities and Locations!" to CREATE_CITY, CREATE_LOCATION, DELETE_LOCATION, LIST_LOCATIONS, and PRINT_BPTREE. This rule applies to all commands, but those were the ones most directly affected.
  • Changed CREATE_LOCATION to match the ordering of latitude/longitude of CREATE_CITY. Also change <GenericLocation> to reflect this.
  • Noted that the FIND_IN_CITY command should use Euclidean geometry.
  • Clarified that 20 levels means that the root is one level. (Let's make sure we get our definitions straight folks!)
  • Clarified CREATE_ROAD command: You may only have one road with the same name connecting two cities. That is, you can't have two I95's connecting DC and Baltimore even if one is a TwoWay road and the other is a OneWay road. The name, startcity, and destinationcity are the unique key!
  • Changed the <success> BNF for FIND_IN_CITY. You will now print the locations in sorted order based on the distance from the city center and should print this distance after the <Location>.
  • Corrected <SpatialIntersection> typo.
Version 3.01 (html) (pdf) (ps) to Version 3.02 (html) (pdf) (ps) on 10/31/03.
  • Added command specification. Each commands notes if it has changed or not.
  • The range for valid coordinates is now fully inclusive, [0, 1024].
  • Road objects now represented with OneWayRoad or TwoWayRoad
  • City objects are now considered to be a Location. Other types of points are also Locations.
  • See each command's description as numerous things have changed.
Version 2.04 (html) (pdf) (ps) to Version 3.01 (html) (pdf) (ps) on 10/29/03.
  • Added general requirements for part 3. This should be enough to allow anyone to start work on the project as you should spend at least several days planning your PM1 quadtree.
Version 2.03 (html) (pdf) (ps) to Version 2.04 (html) (pdf) (ps) on 10/17/03.
  • Added additional error checking to DELETE_ROAD. Be sure that you check to make sure that each city exists (otherwise print <CityDoesNotExist>). I am not including <StartAndDestinationSame> because I think it makes more sense to let CREATE_ROAD determine this policy. If CREATE_ROAD were changed to allow self-loops, then DELETE_ROAD would have to be changed as well. By not checking for this error we minimize the dependence of DELETE_ROAD on the behavior of CREATE_ROAD.
  • Corrected spelling/grammar error in B+ tree requirements section.
  • Added a paragraph to B+ tree requirements noting that we won't try to insert multiple types into your B+ tree at the same time. That is, your key will be a String and all objects in the leaves will have the same type.
  • Added clarification to CLEAR_ALL: Should clear the data structures of their values but in the case of the B+ tree, it should not clear the order or the Comparator that was passed to the constructor. (You could still create a brand new B+ tree, but make sure that the new B+ tree has the same order and Comparator as the old tree.)
  • Modified the behavior of MAP_CITY. Rather than checking to see if the specified city has already been mapped, you must look at the spatial data structure and determine if there is a city already mapped at the specified coordinates. It could be the same city or it could be city with a different name but the same coordinates. Regardless, a simple boolean flag on your city will no longer suffice to determine if there is already a city mapped.
  • Changed the <CityAlreadyMapped> error message. Make sure that you match the new text.
  • Added "Code Sharing Rules" subsection (under "Integrity Policy"). Make sure that you comply!!!
Version 2.02 (html) (pdf) (ps) to Version 2.03 (html) (pdf) (ps) on 10/11/03.
  • Modified <success> BNF of PRINT_MAP to correct a minor new line issue. Now should accurately reflect the fact that a grey node is the base case.
  • Defined behavior of UNMAP_CITY command when the specified city has roads connected to it. Added a new error message to support this behavior: <CityInUse>.
  • Added missing equal sign to <CityNotMapped> BNF definition.
  • Added O(log n) runtime complexity restriction to MAP_CITY and UNMAP_CITY commands (see command description for details).
  • Noted that the B+ tree does not have to support null key or value parameters. It is acceptable to throw a NullPointerException. See "B+ Tree Design Requirements" for more information.
  • Spell checked the specification. INIT_BPTREE <success> now contains the correct spelling for "Initialized" as does the <BPTreeAlreadyInitialized> error message. Other highlights include "drasitically" and "seperately."
Version 2.01 (html) (pdf) (ps) to Version 2.02 (html) (pdf) (ps) on 10/7/03.
  • Removed “\” from string regular expression for input format specs.
  • Fixed typo in “B+ Tree Design Requirements”
  • Added clarification on requirements for SortedMap key/value parameter types to “B+ Tree Design Requirements”
  • Added <InvalidBPTreeOrder> error message
  • Added “inclusive” to guide/key value requirements.
  • Updated wording of “B+ Tree Design Requirements” to reflect use of the terms “guide” and “key” in lecture.
  • Added clarification to the <CityAlreadyExists> error message in CREATE_CITY.
  • Updated B+ tree requirements in PRINT_BPTREE to match updated to INIT_BPTREE.
  • Change instructions of UNMAP_CITY to suggest an implementation with a faster runtime.
  • Added <CityNotMapped> to UNMAP_CITY
  • Clarified <NoRouteExists> error message in SHORTEST_ROUTE command.
Version 1.03 (html) (pdf) (ps) to Version 2.01 (html) (pdf) (ps) on 10/3/03.
  • “Cought” and fixed minor typos/spelling errors throughout specification.
  • Added “Interfaces” tutorial.
  • Moved Part 1 BNF from “Output” to “Part 1 -> BNF”
  • Added Part 2 specifications.
  • Many of the error messages have changed slightly since Part 1. Double checked that all of your error messages follow the Part 2 BNF now!
  • Doubles should ALWAYS be printed with 3 decimal places rather than 2. Integers should not have any decimal places. Neither doubles nor integers should have commas.

Back to Main page