Within the context of information systems, the term programming is understood to mean computer programming, which is the process of writing computer programs. A computer program is a detailed, step-by-step set of instructions that is executed by a computer in order to perform a specific task or solve a specific problem. A computer can perform a wide variety of tasks, including arithmetic calculations, text formatting, and submission of documents to the printer to be printed. However, the computer hardware does not perform these tasks by itself. It needs specific instructions on how to go about performing each specific task. It is these task-specific sets of instructions that are referred to as programs.
Computer programs are written in a variety of programming languages. These languages fall into two broad categories: low-level programming languages and high-level programming languages. Low-level programming languages are so named because they are closer to machine language than to human language; that is, it is easier for the machine (computer) to understand them than it is for humans. Machine language is made up of a series of 0's and 1's. Each 0 or 1 is known as a bit (short for binary digit). A group of eight bits, known as a byte, represents one character(i.e., a number or a letter). For example, the number 2 is represented as 00000010 and the letter B as 01000010 in the American National Standards Institute (ANSI) code for character representation inside a computer. There are other coding schemes besides the ANSI standard, such as the American Standard Code for Information Interchange (ASCII) and IBM's Extended Binary Coded Decimal Interchange Code (EBCDIC). Each of these standards represents characters in a slightly different way. Such binary representation of characters is the only thing that the computer can directly "understand" and execute.
In the early days of computer programming, programmers wrote their programs directly in machine language. The time-consuming and painstaking nature of this process led to the development of assembly language, which uses alphabetic mnemonics (rather than binary digits) to write programs. For example, an assembly-language instruction to load the number 5 into a computer's accumulator is: LDA 5. This is more readable than a string of 0's and 1's. A special program called an assembler translates assembly-language instructions into machine-language instructions. Assembly language is machine-specific and is used to directly manipulate activity at the hardware level. Therefore, it is still considered low-level.
Further technological advances led to the development of high-level programming languages such as COBOL (COmmon Business Oriented Language), FORTRAN (FORmula TRANslator). BASIC (Beginners' All-purpose Symbolic Instruction Code), PASCAL, PL/1, and C. These languages are described high-level because they are closer to human language than to machine language. In these languages, the number 2 and the letter B are coded in the program exactly as they are written. Similarly, the following is a valid line of program code in some high-level languages: SUM NUM1 NUM2. A special program, known as a compiler or an interpreter (depending on the programming language) translates the high-level program code into machine language before it is executed.
Computer programming has evolved from the development of programs that run on big mainframe computers to ones that run on desktop personal computers (PCs) and small local area networks. Individuals working in public health, therefore, have had to become versed in a variety of different PC applications, such as Access and SPSS. They are charged with the responsibility of determining which programs available on the open market are the best suited to the individual needs of a specific health agency. Decisions are based on the information required to be stored and accessed and the skill level of the staff that will utilize the programs. These individuals are then charged with updating and maintaining these systems for optimum performance.