$24
Goals and Background
There are two goals of this lab: (1) to help you avoid waiting until the last minute to work on your PA5 and (2) to encourage you to use incremental development and a more thorough decomposition of the problem. The milestone is the one described in the Milestone section of PA5.
Note: it is possible to complete your assignment without doing this milestone. However, this lab concerns a specific test program; no lab credit will be given for a completed PA5.
Because this involves code you will be turning in for a programming assignment this lab must be completed individually (i.e., not as part of a partnership) and because of the size of the problem you will ideally spend significant effort on it before your lab section (See Advanced Preparation section below for more details.)
Advanced preparation
You will need to read over the whole assignment before starting the work for the milestone.
This milestone is too large to do start to finish during one lab period. Ideally you'll have the milestone code pretty much written and tested before the lab period to get all the lab points: your lab period serves as a deadline for having this code working.
However, even if you don't have much chance to work on the assignment before the lab, you can use the lab session as a pre-scheduled 2-hour block of time to work on your assignment with TA help available. If you are behind, you should still be able to get Exercise 1 completed during the lab period.
Reading and reference material
PA5
4/11 and 4/16 lectures on pointers and linked lists in C++
3/26 and 3/28 lectures on hash tables
General instructions
The detailed description of this milestone appears in the Milestone section of PA5. The files you will be modifying, mentioned below, can be found in the PA5 workspace on Vocareum.
To help avoid version control problems, there are no separate starter files for this lab: complete it in your Vocareum PA5 workspace, unless you are using some outside IDE. There is a Lab 13 workspace, but it is solely for DEN students to submit their lab. This means DEN students will need to do a little extra at the end to submit it (details at the end of the lab).
The Makefile for the programming assignment will also work to compile the milestone. Use the command
make pa5list
to compile your milestone code.
Exercise 1 (1 checkoff point)
bytes.usc.edu/cs455/curr/labs/lab13/lab13.html 1/2
Lab 13 CS 455
For this check-off point, you will only need to have stub versions of all of the operations (involves changes to listFuncs.cpp and listFuncs.h , plus a main function that tests all of them thoroughly with hard-coded data in pa5list.cpp. That means, of course, thinking through what the interesting boundary and "normal" cases are for each of these functions. To help organize your code, you may want helper functions for main that test each list function separately, e.g., testRemove would contain all the tests of listRemove.
For check-off show the TA your "working" program running and explain the various test cases. You do not have to get this part checked off before starting on Exercise 2.
Exercise 2 (1-3 checkoff points)
You'll get one point for every two ListType functions you have working (we'll round up) for a total of up to 3 checkoff points. We aren't counting a trivial function to initialize an empty linked list as part of this.
For checkoff show the t.a. your working complete or partial pa5list program.
Checkoff for DEN students
Note: No README required for this lab.
If you did your work using the Vocareum IDE you should have completed your work in the PA5 workspace. When you are ready to submit your lab, you will need to copy this work to the Lab 13 workspace. You can do this by selecting work folder in the file list in PA5 on Vocareum and choosing Copy (menu above that list). Then going to Lab 13 and choosing Paste (same menu). It will create another subdirectory called work with the new files. You can then use Linux to move the files into your home directory (that's where the Submit script will expect them). If you worked outside of the Vocareum IDE, you should upload your Milestone into the Lab 13 workspace, compile and test it there, and then submit it.
When you click the Submit button in the Lab 13 workspace, it will be looking for and compiling the files pa5list.cpp, listFuncs.h, and listFuncs.cpp. Make sure you put your name and loginid in all the files you submit.
bytes.usc.edu/cs455/curr/labs/lab13/lab13.html 2/2