I have learned many things from this class as it relates to computer programming. There are a few areas covered in this course by either the text or in our weekly class discussions about computers and computer programming that stood out to me. This paper is broken up into two discussions. The first part will cover general ideas and skills involved with computers and computer programming. The second part of my paper will go over some topics covered in the text for the class.

Some areas that were discussed are as follows: Logic and Decision Structures, Using Repetition Structures, Checking user input for errors and lastly, Using Arrays for more Advanced Programs.The first concept that is realized is that computers are a part of our lives whether we like it or not. This electronic wonder we call the computer has evolved over time and has touched almost every facet of our society. Mankind has put so much emphasis on the computer evolution that we are becoming a planet of technology-craving consumers.An example is the Apple Corporation's IPhone and IPad.

Consumers go to great lengths to have the latest computer-driven technologically advanced devices. We as a society have succumbed to the need for instant information that we get from the speed of computing devices. Only a short time ago a dial up modem was opening a new world to us by way of a thing called the internet. The computer has become a way to explore our world and expand our dreams and even extend our lives. The computer has become so much a part of our lives that the children of today and the generations of tomorrow do not know, and will never know what life would be like without a computer.

Many people due to this computer evolution have decided to become computer programmers and have pursued the skills and schooling to do this type of work. In my opinion, in order to seek a computer programming profession and become a good programmer they should have good problem solving skills. There are several qualities that a programmer needs to stand out in the field.A programmer should possess good problem solving skills.

Some other abilities a good programmer should have are top down thinking skills, object-oriented language thinking skills, an attention to detail, ability to test, dedication to documentation and a little patience. Good problem solving skills is probably one of the more important traits to have to be a good programmer. There are several important traits a computer programmer should have that complement the skills and tasks that are involved in doing this type of work.Since most aspects of life today are intertwined with numerous types of computers this leads way to what is it that makes these computers work they way they do. There is the physical electronic architecture and design of computers that can vary depending on their use but the program itself is what makes the computers function the way they do.

Since the software is a very significant part of the computer in order to have a computer operate and function based on its purpose, a carefully designed program is needed.Two important steps to designing a program are; understanding the task the program is to perform and determining the steps that must be taken to perform the task. To accomplish these, it is important to interview the customer to gather information on the requirements that will be expected from the program. Creating an algorithm, which is a well-defined set of steps, must be done to perform the task. The use of flowcharts and pseudo code will aid in the outlining of a preliminary program to be written. Without following these steps it is likely that a substandard program will be written which would reflect in a poor use of time and resources.

The last topic I will talk about in this first half of my paper is the idea of how important it is to provide documentation to both your client and the programmer. The external documentation is very important to the client because this is the material that will explain the program in end user understandable language. In other words it explains how the program works in usually non technical language. Additionally, there will be a user guide created on how to install the program, set up the program and how to use the program.

The internal documentation will mainly benefit the programmer because it will contain programming notes, comments and specifications for the logic behind the performance and function of the program. If there is a problem in the programming the programmer can refer back to his notes to find a remedy for the client. Without detailed and explicit internal and external documentation a program could possibly be useless. The reason is that the end user would not know how to correctly install, set up or use the program to its full potential.

The following is the second part of my paper in which I will cover some programming areas I feel are noteworthy of discussion. The first deals with logic and decision structures of computer programs. These decision structures are used in programs when an algorithm needs to perform a set of logical steps which is more "decision based" than in a sequence structure. By using the various decision structures a programmer can perform more complex algorithms to arrive at a desired result.

Without logic, a decision structure could possible result in erroneous data thus not producing a desired result.The development of the computer was in my opinion from the result of finding a better way of calculating large mathematical problems. Because of this I believe the repetition structure was developed to aid in those calculations. Otherwise a human would have to spend countless hours processing endless calculations to arrive at an answer. With the invention of computers, we have reduced what could have been hours or days to complete to now being completed in just seconds or less.

By using a repetition structure in programs we will use the power of the computer over a human beings ability to do the same task but much faster.No program is infallible but do diligence is needed to satisfy both the client and a programmer’s abilities for an error free program. By the use if input validation, a programmer can anticipate errors and design a program to avoid those errors. This may be the most time consuming practice but without input error checking we would wind up with results that would cause substantial miscalculations.

The use of arrays is a valuable tool in the arsenal of a professional programmer. The array allows a programmer to store a group of the same data type together in memory. The array is divided into storage locations called elements which can further be divided into two-dimensional arrays which hold multiple sets of data. One of the unique aspects of an array is that not only can you input values but also output values form them. Additionally, the processing of the array contents is truly one of the most valuable characters of the use of arrays. Some uses of arrays are the totaling of values, the finding of the highest and lowest value, and the passing of an array as an argument to a module or function.

In conclusion, what I have learned from this course is how computers have become an important integral part of our everyday lives. Also, I now have a better understanding of why a computer’s programs are designed the way they are in order to perform many complex equations and tasks. The field of computer programming requires varying skills, techniques and logical thinking abilities to do a professional job. With the conclusion of this course I not only better understand the utilization of a computer in everyday life but the importance of the human being behind the creation of the program used to implement the computer’s function.