According to Raunch (2011), two main factors make one algorithm look better than the other algorithm. Firstly, the nature of efficiency of the algorithm in terms of the time taken to complete a given calculation and generate the required results determines the suitability of one algorithm from the others. Algorithms use two main search methods, binary search and sequential search. A binary search divides entries into two and then decides which entry has the ability to give quicker results. On the other hand, the sequential search runs a one by one search until it gets the desired results of an entry. On this instance, a binary search type algorithm is better than a sequential search algorithm. Secondly, the amount of physical space occupied by an algorithm determines the performance of different algorithms. Two sorting methods are employed in determining the amount of space an algorithm occupies in computer software. Algorithm that uses bubble method of sorting is much better than an algorithm that uses list method because it occupies lesser space (Brookshear 2009).
Give one example of a problem, and compare two proposed solutions.
Lets consider two searching algorithms and compare which one id more efficient and occupies less space.
for (i = 1); i <=N; ++i)
for (j = 1); j <= I; ++j)
for (k = 0; k < 5; ++k)
The above algorithm performs a task T and requires t time units. Loop K requires 5*t time units calculated as 5*t*N*(N+1)/2 time units. This example shows an algorithm with a time requirement as a function of the size of the problem. In addition, the searches discussed above depend on the size of the list (Goldberg & Grigoriadis 1989).
Discuss why programming is considered an art, and why neither of the solutions that you provided can be generated with a prescribed methodology
Programming is considered an art because it involves creativity and development of patterns. The above programs cannot be computed with a prescribed methodology because they contain some commands and codes that are only understood by an installed computer program. on the other hand, the creativity of the programmer determines the usability of an algorithm and does not contain a prescribed procedure.
How do you envision the ways program verification and performance tuning will be accomplished in the future? Will it still be a work of art?
The program verification method used today requires advancement in order to accommodate future technology changes. In future, Information Technology experts should use more advanced software materials capable of coding all the program languages in an effective and timely manner. In addition, the programs should be designed in such a manner that they use as little space as possible in order to allow one machine accommodate many algorithms (Nanz 2011).
Will it always be the result of one's experience?
The future computer programs will be designed depending on the current technology levels and not one’s experience. As technology advances, materials that are more sophisticated come into existence that requires more programs that are advanced. Personal experience in IT sector might be required but has little significant.
References
BROOKSHEAR, J.G (2009) Computer Science: An Overview. 10th ed. China: Pearson Education Asia Ltd.
GOLDBERG, A. V., & GRIGORIADIS, M. D. (1989). Efficiency of the network simplex algorithm for the maximum flow problem. Stanford, Calif.: Dept. of Computer Science, Stanford University.
NANZ, S. (2011). The future of software engineering. Heidelberg: Springer.
RAUNCH, M. (2011). What makes one algorithm better than another? Retrieved from:
http://www.michaelrauch.net/2011/06/what-makes-one-algorithm-better-than-another/