Technology Guide: Computer Programming History

Computer programming is typically referred to as coding or programming for short. It is the process that begins with designing, writing and testing source codes to debugging and maintaining the code for computer programs. The code is written in at least one programming language, but can also be written in more than one language if the programmer chooses to do so. The idea behind programming is so that the computer has a set of instructions to follow in order to perform specific behaviors, tasks and operations. In order to be able to write these codes, there must be an extensive level of knowledge of specialized algorithms, the application domain and formal logic.

History of Computer Programming

In ancient Greece, there was the Antikythera mechanism that was a calculator. The operation of this calculator was determined through the use of gears of a variety of sizes and configurations. This calculator calculates the dates of the Olympiads, and tracked the metonic cycle, which is still used in calendars that are lunar-to-solar. In 1206, the programmable Automata was developed by Al-Jazari. In both of these devices, pegs and cams were used in specific locations within the wooden drum. These pegs and cams triggered levers that operated percussion instruments.

Data was first able to be read on machine because of the invention of a specific medium by Herman Hollerith in the late 1880s. Although there were prior uses of media that could be read on a machine, this was previously used for control and not data. Paper tape was initially used through trials, but in the end, punched cards were used. The keypunch and the tabulator machines were invented so that the punch cards could easily be produced. Other inventions included the von Neumann architecture, the FORTRAN and the COBOL.

Modern Programming

Quality Requirements

When developing software, there are certain aspects that must be met in terms of quality in order for it to be sufficient. The most important quality aspects include reliability, robustness, usability, portability, maintainability and efficiency and performance. The reliability factor is how often the program’s results are correct. This is dependent on the algorithms, programming mistakes and logic errors. The robustness factor is how well problems are anticipated by the program that are not due to errors by the programmer. The usability factor is simply how easy it is for users to make use of the program.

Portability is determines by the various platforms that the program can be complied and run on. This includes operating system and computer hardware platforms. The maintainability is the ease of modification and handling that can be done by future programmers should the need arise. Other programmers who use this program should be able to easily change and update the code. The efficiency and performance is referring to the amount of resources a program consumes.

Readability of Source Code

The readability of the source code is a factor that has a direct affect on the level of quality, some of which include usability, portability and maintainability. The readability is how easily a human reader can understand the purpose, flow and operation of the code. This is specifically important due to the fact that most of the time that programmers spend is on reading, understanding and modifying existing codes. When the source code is unreadable, it can lead to duplicated codes, bugs and inefficiencies. Some of the main factors that contribute to a code’s readability level include naming conventions for objects, decomposition, comments and different indentation styles.

Algorithmic Complexity

Computer programming is an engineering practice and academic field that are both concerned a great deal with the discovery and implementation of a problem’s algorithms. The algorithms that are used are classified into orders that express resource use. The orders are classified by Big O notation, which expresses memory consumption or execution time. These algorithms often help programmers choose the best options for the specific circumstance.

Methodologies

When speaking in terms of software development, most formal processes often requires analysis as the first step. After analysis comes testing, implementation and failure elimination. A wide variety of approaches exist for accomplishing each of these tasks, one of which is the Use Case analysis. Some of the more popular modeling techniques include the Unified Modeling Language, Model-Driven Architecture and Object-Oriented Analysis and Design.

Measuring Language Usage

Determining the most popular form of programming language in modern usage is a difficult process. Some languages are more popular due to the type of application they are used for, while others are used for a wide variety of programs. When speaking in terms of corporate data, COBOL is a widely used language. In engineering applications, FORTRAN is the language that is primarily used. In order to measure the popularity, there are a few factors to consider, some of which include the number of employment advertisements that mention the language, the number of lines that have the code written and the number of books you are able to find that teach the specific language.

Debugging

Debugging is essential whenever you are developing a software program. This ensures that the program is completing each task as it is designed to do. A program that has an incorrect source code will produce a range of problems for the user. Debugging is a process that is typically done with integrated development environments (IDEs), some of which include Visual Studio, Code::Blocks, NetBeans, Kdevelop and Eclipse.

People Responsible for Computer Programming

While there were instances of different forms of computer programming as far back as ancient Greece (the Antikythera mechanism) it was not until the 1880s that something resembling modern programming took place. During this period, Herman Hollerith, invented a type of data recording program that could be read by machines. By utilizing a series of punched cards, known as Hollerith cards, data could be recorded by hand and read by a machine, which allowed for the invention of the tabulator and keypunch machines. More modern figures in programming include Larry Wall, inventor of Perl, Bjarne Stroustrup, C++, and James Gosling, Java. These people have made modern programming possible, and are ushering in a new technological age.