CS 455 Lab 13: PA5 Milestone

Spring 2024 [Bono]


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.

All students should use their PA5 workspace to complete this milestone. The Lab 13 workspace is only for DEN students to submit the lab (similar to how Lab 5 worked): they will also use the PA5 workspace for working on the lab. More information for DEN students at the end of this document.

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 programming 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

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)

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 commands 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.