|
CSE Home | 326 Home | About Us | Search | Contact Info |
Project 2 - The Search for a-MAZE-ing Donuts!Phase AImportant Deadlines:
Outline
I. IntroductionIt is an incredibly serendipitous day for you at the Paul Allen Center. A mysterious bearded benefactor has appeared during the night and has left behind donuts for the entire CSE 326 class! You've managed to get out of bed at a yawningly-early 10 AM, meaning you have first dibs on all the yummy goodness of fresh-baked donuts if you can get to them in time (and the always hungry grad students from the night before haven't beat you there). Unfortunately, the Allen Center space czars just happened to have decided to rearrange all the furniture during the night (as part of their experimentation with different settings in the new building), turning the entire building into one complex and mystifying maze. You haven't had your morning coffee yet, and you just don't feel like running around looking for donuts-- but you're so hungry! Why not let your computer solve the maze and find the donuts FOR you?II. Learning ObjectivesIn this assignment, you will:
III. Assignment and Algorithm OverviewFor the complete assignment, you are required to write several new maze-solving MazeRunner classes. There should be one MazeRunner class for each of the following algorithms (subject to change in Phase B instructions):
IIIa. Phase A: Stacks, Queues, and Priority QueuesDescriptionIn Phase A of this assignment, you will be writing code that implements a given (new) interface for a stack, queue, and priority queue (2 implementations). You should test these implementations to be sure they are correct before proceeding to Phase B (posted in a few days).Code RequirementsYour task for Phase A is to:
README.TXT QuestionsSurprise! There are no readme questions for Phase A. Don't worry - the README file will return for Phase B.IIIb. Phase B: Running the Maze (more later)Phase B will involve implementing the above tree traversal algorithms (they will be implemented as MazeRunner classes), understanding operations on a maze as a graph, and analyzing and extending the maze code which we will provide.IV. Logistics: TeamsYou are encouraged (although not required) to work with a partner of your own choosing for this project. You may choose how to divide the work between the two of you under three conditions:
V. Phase A Provided CodeTo facilitate understanding of this rather complex project, and to encourage good modular decomposition and "unit testing" (testing small pieces of code instead of testing the entire program all at once), this project is broken into two Phases. For Phase A, we suggest improving and testing your basic "helper" data structures (i.e. Stack, Queue, BinaryHeap, ThreeHeap) without worrying about the Maze-related code. For this first Phase, we are providing the interface for a Stack, a Queue, and a PriorityQueue. You must write an implementation of the Stack and Queue interface as described above. In addition, you must write two implementations of the PriorityQueue interface: a BinaryHeap and a ThreeHeap. (For the ThreeHeap we suggest starting with a copy of your BinaryHeap code and making changes as necessary). Java code: The base code is located in the directory /projects/cse/courses/cse326/06au/projects/project2/code-phaseA/. You can copy the java files from this directory when logged on to the instructional unix server attu. It is also linked to on this website. Here is a brief description of the code:
VI. Phase A TurninPhases A and B will be graded together when your entire assignment is turned in with Phase B. However, 10% of your grade will be based upon the "in-progress" checkin for Phase A. Although 10% is a small fraction, you are highly encouraged to successfully complete all of Phase A by this deadline, as there is much more work to do in Phase B. Only one person from each team should submit. The same person should submit both Phases A and B. You should submit:
|
Computer Science & Engineering University of Washington Box 352350 Seattle, WA 98195-2350 (206) 543-1695 voice, (206) 543-2969 FAX [comments to brianngo] |