NOTE: Part of this lab (the test plan part) must be completed IN LAB this week. It is a part of the lab where you may collaborate, but it must be completed IN LAB before you leave lab if you are to be assured of being able to complete the lab on time. If you leave lab without that part done, neither I nor the TAs can be responsible for any delays that may result.
In the lab06 directory, there is a program called "tables.c". Your instructor will review this program in lecture (if he/she hasn't already). A list of items to be reviewed appears in the top of this program.
Look over that list of items, and make sure you are comfortable with each of the items indicated there. If not, ask your instructor or TA any questions you have.
Once you are comfortable with the code that is there, you will copy the program to a file called "lab06.c", and make the following modifications:
However, before you get started on that, look at the next step. You really need to get this next step done BEFORE you leave lab today.
Before scripting your results for this program, write a "test plan". A test plan is a essentially the "users" side of the script, and a rough description of what you expect the results of the program to be. That is, you will essentially write a "mock up" of what you expect the final script file to look like, using the text editor (emacs or vi) to create it. You do not have to produce the output exactly in your mock up; a rough description is enough. For example, here's a start for your test plan.
Your test plan should continue in this fashion until tests for all program features have been included. When you submit your test plan to the TA, he/she will tell you either that it is "complete", or that it is "incomplete". If it is incomplete, you should figure out which feature has not yet been included and add new tests.
If you get the feedback that your test plan is "incomplete", your TA might
or might not give you a hint about which feature is not being tested. Note
that he/she can't
just "tell
you"
what's
missing...
your
TA would be writing the test plan for you if your TA did that. So, as frustrating
as it may be, you'll just have to figure it out. But if you ask nicely for
a hint, one might be provided if you are really stuck.
You must work independently on the actual assignment, but you are permitted to collaborate on the test plan part only. You may work in groups of up to four students: indicate in your submission who you worked with. My advice is that you each write your own test plan independentl first, then discuss your plans as a group and merge them into one. Another way is to write the plan as a group, in "brainstorming mode", with one group member acting as secretary. In any case, you must ultimately each submit a copy of your test plan to WebCT along with your submission for this assignment.
Use emacs to create a text file called lab06_test.txt and put your test plan in that file (in plain english). Your test plan should indicate exactly what items you think need to be tested to ensure that all the functionality of your program has been demonstrated—not just your modificaitons, but the basic functionality given in the sample code as well.
Before proceeding to the final script of your work, get your TA or instructor to approve your test plan. At your TAs discretion, one of two methods may be used (follow your TAs instructions as to which one is acceptable:)
Only one email or print out per group please; use "cc" to include the names of the other folks in your group on the email or printout.
To be sure of being able to complete the lab on time, you should get your test plan approved during the lab session where this assignment is made. If you don't complete the test plan during the lab session, you need to get it done within 48 hours of when the lab is first given out. Your TA is not responsible for any delays that may result from your submitting a test plan for approval later in the week. You should expect anywhere from 24 hours up to 72 hours turnaround time from submission of a test plan to a "yes/no" decision.
Once your test plan is written and approved, you are now ready to start coding. See Step 0 above for instructions on what do to.
The following is a list of additional options that one could consider adding to this program to make it more useful. As your second project, we may assign some or all of the following as additional enhancements. Think about how you would implement each of these, and also about what other features might be useful.
Now its your turn. Think of a least three other features that would be nice to have in a program of this sort. Then, create a directory ~/public_html/cisc105/lab06, and create a file in that directory called tableIdeas.txt. In that file, describe your three proposed new features. (This is another part of the lab where you may collaborate with up to three other students; if you do, list their names in your tableIdeas.txt file.)
If they are feasible, I'll consider the best ideas for incorporation into the project.