Com S 228 --- Introduction to Data Structures HOMEWORK 7: Test Preparation (File $Date: 1995/03/06 03:58:28 $) Due: problem 1, in your discussion section the week of March 9. (You'll probably want to do some of the other problems before March 10, but these problems are not to be handed in.) This homework is a review for the test on Friday, March. 10. The readings are those from the syllabus in the units: Modules & Information Hiding, Data Abstraction and Classes, and the Client View of Data Structures. The collected readings are thus as follows. (The DD readings are only recommended, the HR readings are the essential ones.) HEADINGTON & RILEY: Appendix 2, 3, 4, 12.1-3, 12.9, and DEITEL & DEITEL: 3.10, 18.5, 17.1-2, 6, 7.1-4, 7.8, 8 In addition, you might want to review HEADINGTON & RILEY appendix D, as well as /home/cs228/public/doc/assertion-notation.txt for ability to read our comments. This material about assertions will be one important thing on the test. 1. (50 points) Take 50 minutes, and write out the practice test by hand on paper. Do *not* use a computer for this, this is to be handwritten only! Hand in your handwritten work on paper, a printout is *not* acceptable. (You can save a photocopy of your work, or type it in as part of problem 2.) You will receive full credit for handing in a paper copy of the test. We will not grade this, except to see that you wrote something out by hand. In your discussion section, you'll see what the answers are, and will have an opportunity to ask questions and discuss solutions with the class as a whole. We won't check the details of your work, as that will be the subject of the discussion. You will get full credit for handing in a handwritten version of the test. NOTE: the real test will be *DIFFERENT* than this test in several ways: it may emphasize different topics that are in the material covered by this test (see problem 4 below), and may use different types. It might will be a bit shorter. It will certainly contain different problems. It may not test exactly the same concepts or have them in the same order. 2. (suggested practice) Time estimate: about 2 hours. Check your answers to the practice test on the computer. You will have to write test harnesses for some of the problems. 3. (suggested practice) If you haven't done the suggested practice problems from homeworks 4-6, now is the time to do them. They will make good practice for the test. 4. (suggested practice) For really good test prepartion try this: read the material in the book over again, note any topics you think are important that are not covered on the practice test, make up your own test which includes some of these topics. Then try taking it by hand, and then check on the computer. You might try to include test items on the following topics: - specification notation for functions - top-down design - stubs and top-down testing - how to use modules from a library (e.g., in a makefile) - specification of modules (abstract and concrete views) - implementation of modules - specification of classes (abstract and concrete views) - implementation of classes - overloading of operators - friend functions - writing client code for a class - types of structured ADTs (linear, homogeneous, etc.) - big-O notation