Software Maintenance Exercise #1: Baseline



The object of this assignment is to “capture” a snapshot of your current programming skills before proceeding to software maintenance.  The two most important aspects of the assignment are:


·            To submit the code and any supporting documents as you would create them, and not according to a particular style.

·            That the program be functionally correct, in order to have the proper baseline for each student.


You are to write a program that reads in a set of one or more integers (one per line) from the text file, builds a binary search tree (non-balanced i.e. don’t build an AVL tree), computes the average number of nodes compared per insertion (to two decimal places), and outputs it to the screen.  So, if contains










Since there are 11 comparisons, the average that should be output is 1.57.  Just to make things easy, assume that there are no duplicate values in the file.


Besides the program itself, you should provide a Word document with the following information:


·            The amount of time you estimated that it would take to write this program before starting software development.

·            The actual amount of time it took to write the program.

·            A list of at least three things that you feel you need to improve concerning your methods for software development (e.g. using named constants more).


You should submit an zip file which contains the following:


·            All source files

·            The Word document with the time estimate and other information

·            (Optional) Any other artifacts that you used to develop the code (e.g. test data)

·            A text file named readme.txt which describes the contents of the rest of the RAR file