CSE 250 - Spring 2009 - Banner
UB -
University at Buffalo, The State University of New York Computer Science and Engineering
  • CSE 250 - Spring 2009
CSE 250 - Spring 2009 - Navigation

Data Structures 3
Last modified: February 21 2009 02:23:12 PM

CSE 250 - Spring 2009 - Data Structures 3

The Data Structures Exercises will be completed in groups assigned by the instructor. If you are experiencing group problems, please seek out the advice of your instructor.

Group Assignments - Same as Data Structures 1 Assignment

Assignment

In the course of the next four weeks, each group member will complete each of the following tasks:

  • Creating an implementation for a particular data structure
  • Writing a program that can test the functionality of a particular data structure
  • Combine the results above and ensure that the implementation and testing of the data structure is complete

Each week, there is a new part of the assignment to be completed. Assume that you have one week for each part of the assignment. That is, do your assignment as though it is due the following week in recitation. Use recitation time to discuss issues and concerns related to the part you just completed or the part upcoming this week, and then use the last week of the assignment due dates to clean things up and submit. All of the submissions are due the Friday before spring break. However, you could realistically be finished almost a week before that if you complete the assignments on the schedule I'm suggesting.

Week 2 Assignment

There are three members of your group listed in the charts in a particular order, consider that group member 1 is the first member, group member 2 the second and group member 3 is the third. (If you only have two members, then you only have group member 1 and group member 2 - you do not need to complete the work for group member three). The assigments for each group member this week are as follows.

 

Group Member 1 (if group has 3 members)

You are to collect the implementation code for the stack/queue and the testing program for the stack/queue and run the testing program on the implementation. You will attempt to fix the problems reported by the testing program.

Throughout this process, you will create a document named StackTesting.txt or QueueTesting.txt in which you will describe the following:

  • The results of running the testing program (mainly failures in the program, but if the testing program does not report errors with the implementation, you need to discuss this).
  • If there were problems with the implementation, what you needed to do to fix the problems.
  • If you felt the testing program was adequate for testing the data structures. If not, what test cases did you think were missing. You are not required to fix the testing program to add your suggestions.
  • A critique of the code from your groupmates. Discuss things like commenting, indentation, variable naming, function naming, and other style elements (like how if's and loops were used). Was there logic in the code that was confusing. For a testing program, was it clear both from the code and from the output what testing was happening and which tests passed or failed? Point out both good and bad points about the code. This part should take between 300-500 words.

A not-so-secret piece of advice. It would be extremely odd for all of the code from all group members to be perfect. Since the implementer of the data structures was instructed not to do significant testing, it makes sense that there will be errors in the implementation especially in special cases for the data structure. Also, most testing programs will be missing something. If all reports from all the group members talk about how wonderful the implementations and testing programs were, your grade will be lowered. Code (even professional code) has mistakes that are uncovered in testing and corrected. Creating good testing programs is also an art that I would expect most people are not experts at yet at this point in your career. The purpose of this whole assignment was not perfection, but rather to experience all parts of this process.

You will create a directory named StackFinished or QueueFinished and put in the directory your fixed code, the testing program, and your paper. Zip up the directory to create StackFinished.zip or QueueFinished.zip and submit by the due date. You are responsible for submission of this part of the data structures project.

Group Member 1 (if group has 2 members)

You are to collect the implementation code for the binary search tree and the testing program for the binary search tree and run the testing program on the implementation. You will attempt to fix the problems reported by the testing program.

Throughout this process, you will create a document named BinarySearchTreeTesting.txt in which you will describe the following:

  • The results of running the testing program (mainly failures in the program, but if the testing program does not report errors with the implementation, you need to discuss this).
  • If there were problems with the implementation, what you needed to do to fix the problems.
  • If you felt the testing program was adequate for testing the data structures. If not, what test cases did you think were missing. You are not required to fix the testing program to add your suggestions.
  • A critique of the code from your groupmates. Discuss things like commenting, indentation, variable naming, function naming, and other style elements (like how if's and loops were used). Was there logic in the code that was confusing. For a testing program, was it clear both from the code and from the output what testing was happening and which tests passed or failed? Point out both good and bad points about the code. This part should take between 300-500 words.

A not-so-secret piece of advice. It would be extremely odd for all of the code from all group members to be perfect. Since the implementer of the data structures was instructed not to do significant testing, it makes sense that there will be errors in the implementation especially in special cases for the data structure. Also, most testing programs will be missing something. If all reports from all the group members talk about how wonderful the implementations and testing programs were, your grade will be lowered. Code (even professional code) has mistakes that are uncovered in testing and corrected. Creating good testing programs is also an art that I would expect most people are not experts at yet at this point in your career. The purpose of this whole assignment was not perfection, but rather to experience all parts of this process.

You will create a directory named BinarySearchTreeFinished and put in the directory your fixed code, the testing program, and your paper. Zip up the directory to create BinarySearchTreeFinished.zipand submit by the due date. You are responsible for submission of this part of the data structures project.

 

Group Member 2 (if group has 2 or 3 members)

You are to collect the implementation code for the circular doubly-linked list and the testing program for the circular doubly-linked list and run the testing program on the implementation. You will attempt to fix the problems reported by the testing program.

Throughout this process, you will create a document named CircleDoubleListTesting.txt in which you will describe the following:

  • The results of running the testing program (mainly failures in the program, but if the testing program does not report errors with the implementation, you need to discuss this).
  • If there were problems with the implementation, what you needed to do to fix the problems.
  • If you felt the testing program was adequate for testing the data structures. If not, what test cases did you think were missing. You are not required to fix the testing program to add your suggestions.
  • A critique of the code from your groupmates. Discuss things like commenting, indentation, variable naming, function naming, and other style elements (like how if's and loops were used). Was there logic in the code that was confusing. For a testing program, was it clear both from the code and from the output what testing was happening and which tests passed or failed? Point out both good and bad points about the code. This part should take between 300-500 words.

A not-so-secret piece of advice. It would be extremely odd for all of the code from all group members to be perfect. Since the implementer of the data structures was instructed not to do significant testing, it makes sense that there will be errors in the implementation especially in special cases for the data structure. Also, most testing programs will be missing something. If all reports from all the group members talk about how wonderful the implementations and testing programs were, your grade will be lowered. Code (even professional code) has mistakes that are uncovered in testing and corrected. Creating good testing programs is also an art that I would expect most people are not experts at yet at this point in your career. The purpose of this whole assignment was not perfection, but rather to experience all parts of this process.

You will create a directory named CircleDoubleListFinished and put in the directory your fixed code, the testing program, and your paper. Zip up the directory to create CircleDoubleListFinished.zip and submit by the due date. You are responsible for submission of this part of the data structures project.

 

Group Member 3

You are to collect the implementation code for the binary search tree and the testing program for the binary search tree and run the testing program on the implementation. You will attempt to fix the problems reported by the testing program.

Throughout this process, you will create a document named BinarySearchTreeTesting.txt in which you will describe the following:

  • The results of running the testing program (mainly failures in the program, but if the testing program does not report errors with the implementation, you need to discuss this).
  • If there were problems with the implementation, what you needed to do to fix the problems.
  • If you felt the testing program was adequate for testing the data structures. If not, what test cases did you think were missing. You are not required to fix the testing program to add your suggestions.
  • A critique of the code from your groupmates. Discuss things like commenting, indentation, variable naming, function naming, and other style elements (like how if's and loops were used). Was there logic in the code that was confusing. For a testing program, was it clear both from the code and from the output what testing was happening and which tests passed or failed? Point out both good and bad points about the code. This part should take between 300-500 words.

A not-so-secret piece of advice. It would be extremely odd for all of the code from all group members to be perfect. Since the implementer of the data structures was instructed not to do significant testing, it makes sense that there will be errors in the implementation especially in special cases for the data structure. Also, most testing programs will be missing something. If all reports from all the group members talk about how wonderful the implementations and testing programs were, your grade will be lowered. Code (even professional code) has mistakes that are uncovered in testing and corrected. Creating good testing programs is also an art that I would expect most people are not experts at yet at this point in your career. The purpose of this whole assignment was not perfection, but rather to experience all parts of this process.

You will create a directory named BinarySearchTreeFinished and put in the directory your fixed code, the testing program, and your paper. Zip up the directory to create BinarySearchTreeFinished.zipand submit by the due date. You are responsible for submission of this part of the data structures project.


What to submit

For each member of the group, what needs to be submitted is outlined in the description above. Make sure that the submissions contain the appropriate files.

You need to submit your files using the Web-CAT system. For more information about using Web-CAT, please see: http://www.cse.buffalo.edu/faculty/adrienne/SP2009/cse250/Lectures/SubmissionUsingWeb-CAT.ppt


Due Date

All three data structures assignments are due to be turned in by 11:59:59pm on Friday, March 6th.

CSE 250 - Spring 2009 - Footer

Page maintained by Adrienne Decker

Contact: adrienne@cse.buffalo.edu | 130 Bell Hall | (716)645-3180 x 161