Date: Tue, 14 Jan 1997 22:51:36 GMT
Server: Apache/1.1.1
Content-type: text/html
Content-length: 7928
Last-modified: Fri, 22 Nov 1996 22:40:16 GMT
CS122 Programming Assignment #4
CS122 - Computer Science II
Fall, 1996
Programming Assignment #4
Assigned: Friday, November 22nd, 1996
E-mail Proposal Due: Wednesday, November 27th, 1996
External Documentation Due: Tuesday, December 3nd, 1996
Program Listing Due: Tuesday, December 10th, 1996
Scheduled Demonstrations: Tuesday, December 13th, 1996, and following
** NOTE: Standard late penalties will apply after these dates;
however, no work will be accepted after the last day of classes,
Friday, December 13th, 1996. **
Your last programming assignment this semester is to design and
implement a C++ program that visually demonstrates the ideas underlying
one of the advanced sorting techniques we are studying in class.
Here are the requirements:
- Your program must be written in C++.
- You are not required to use the SAC computers, but rather
can use any of the computer systems that are readily available on
campus, including (but not limited to) the SAC computers, the
IBM PC's or Macintoshes in the Library Microlabs, or the NeXT
computers. (If you would like to use a computer system other than one
of these 4, check with me first.) Whatever system you choose, it must
have some way of proving to me that it was able to compile your C++
program (for example, by creating a program listing), and must be
available on-campus for you to demonstrate your program for me.
- You must choose one of the advanced sorts we are studying in class,
namely Quicksort, Heapsort, or Shellsort, to show in your program.
- You must design some method of visually demonstrating, through your
C++ program, the ideas that underlie your chosen sort. There are
*many* possible different designs -- here are just three ideas:
- I encourage you to come up with your own design, or you may use one
of the two listed above. Your goals should be to:
- Be creative and innovative.
- Show off your knowledge of programming in C++ and of your chosen
sort.
- Produce an attractive and informative demonstration program.
- Your program must actually implement your chosen sort; that is to
say, it must be capable of applying your chosen sort to *many*
different lists of numbers, not just the same old list over and over.
Your program must have some means of acquiring diverse lists of
numbers: by allowing the user to enter the list, or by creating the
list randomly and in a different fashion each time it is run, etc. You
can, however, place some reasonable constraints on the size of the list
and on the range of the values in the list.
- Your program must also teach the sort by indicating *both* the strategy
used by the sort to order the entire list, and also the strategy used
by the sort in a single sort pass.
- Here is what you'll need to submit to complete the assignment:
- You must e-mail me a proposal which specifies:
- which computer system you have chosen to use
- which make/version of C++ compiler software you will be using
- which of the three sorts you have chosen to work with
- how you are going to visually demonstrate the way your chosen sort works
- You must turn in standard External Documentation, including
Specifications, Algorithm, and Justification. In the place of Proposed
Testcases, you *must* include some extensive visual samples (hand-drawn
are OK here) of how your demonstration program will look when it is
run.
- You must turn in listing for your program, and have some method of
indicating that your program compiled with no errors.
- In the place of program executions, you must schedule a 15 minute
demonstration of your program with me. You must have submitted your
proposal, external documentation, and program listing prior to your
demonstration. I'll talk more during class about how to go about
scheduling a demonstration with me.
- For extra credit, you can add demonstrations of additional sorts to
your program, so that the interesting aspects of more than one sort can
be seen and studied.
Good luck!