Programming Quality Challenge

A typical student programming assignment will challenge a student to demonstrate mastery of some new algorithmic technique or method. Quality is generally not emphasized and unfortunately is given low priority. The purpose of these assignments is focus on quality. The problems are relatively small and easy and typical of an assignment in CSc 101 or 102. They should present no technical challenge to the CPE 308 student.

While software quality has many different dimensions, correctness is usually considered the most important attribute. Without a correct program it is difficult to establish any other dimension of quality. We will measure correctness by counting software defects. Our goal is to write a program with zero defects. This may be quite a radical departure for some students that requires a significant shift in strategy. Secondarily, our objective is to learn about or become aware of our own personal programming methods and style.

In order to determine if we are improving we must measure our performance. We will gather three simple measures: time, size, and defects. During development we will record how much time we spend and record it on a form called the Time Recording Log. (Follow the instructions very carefully). Each time we make a change to the source code during compile or test we will record it on the Defect Tally form. When finished we will use the Lines of Code Counter tool to determine the program size and record it on the Project Summary Form.

PSP Script

Time Log

Defect Tally 

Project Summary Form

Lines of Code Counter

FAQ 


 
Challenge Assignment
Due
#1 Roman Numeral Converter 10/3 (End of second week) extended to 10/8
#2 Phone Words  10/17 (End of fourth week)
#3 Radix Sort  10/31 (End of sixth week)
#4 Parcel Postage  11/14 (End of eighth week)
Summary Report  11/21 (End of ninth week)

Assignment Submission

For each assignment, your submission packet should contain the following items in this order:
  1. A printout of the complete source code (see syllabus guidelines).  Include a comment in the code at the top of the first page that contains the assignment number and your name.
  2. Test case data
  3. Test execution output
  4. Copy of completed Time Recording Log
  5. Copy of completed Defect Tally form
  6. Copy of completed Project Summary form

Assessment

The assignments will be graded on how carefully, accurately, and completely you gather the required measures of time, size, and defects. The forms you submit should be hand written and must be neat and legible. The penalty for submitting incorrect forms is one point. The programs must meet the simple testing requirements provided in each assignment.  The penalty for not meeting the problem requirements is one point. It is recommended that you follow the class coding standard.

The summary report will be graded on how well you are able to articulate what you learned from the activities as well as the depth of insight into your own programming process and how to improve it.  You must complete the four assignments before you write the summary report.

Each assignment is worth three points and the summary report is worth three points. There is a one point penalty for each day late.


10/21/02 Added more examples to Time Log and Defect Tally

Home