- Why Programming?
You may already have used software, perhaps for
word processing or spreadsheets, to solve problems. Perhaps now you are
curious to learn how programmers write software. A program is a set of
step-by-step instructions that directs the computer to do the tasks you want
it to do and produce the results you want.
There are at least three
good reasons for learning programming:
- Programming helps you understand computers. The computer is only a tool.
If you learn how to write simple programs, you will gain more knowledge
about how a computer works.
- Writing a few simple programs increases your confidence level. Many
people find great personal satisfaction in creating a set of instructions
that solve a problem.
- Learning programming lets you find out quickly whether you like
programming and whether you have the analytical turn of mind programmers
need. Even if you decide that programming is not for you, understanding the
process certainly will increase your appreciation of what programmers and
computers can do.
A set of rules that provides a way of telling
a computer what operations to perform is called a programming language. There
is not, however, just one programming language; there are many. In this
chapter you will learn about controlling a computer through the process of
programming. You may even discover that you might want to become a programmer.
An important point before we proceed: You will not be a programmer
when you finish reading this chapter or even when you finish reading the final
chapter. Programming proficiency takes practice and training beyond the scope
of this book. However, you will become acquainted with how programmers develop
solutions to a variety of problems.
- What Programmers Do
In general, the programmer's job is to convert
problem solutions into instructions for the computer. That is, the programmer
prepares the instructions of a computer program and runs those instructions on
the computer, tests the program to see if it is working properly, and makes
corrections to the program. The programmer also writes a report on the
program. These activities are all done for the purpose of helping a user fill
a need, such as paying employees, billing customers, or admitting students to
The programming activities just described could be done,
perhaps, as solo activities, but a programmer typically interacts with a
variety of people. For example, if a program is part of a system of several
programs, the programmer coordinates with other programmers to make sure that
the programs fit together well. If you were a programmer, you might also have
coordination meetings with users, managers, systems analysts, and with peers
who evaluate your work-just as you evaluate theirs.
Let us turn to the
- The Programming Process
Developing a program involves steps
similar to any problem-solving task. There are five main ingredients in the
- Defining the problem
- Planning the solution
- Coding the program
- Testing the program
- Documenting the program
Let us discuss each of these in
- Defining the Problem
Suppose that, as a programmer, you are
contacted because your services are needed. You meet with users from the
client organization to analyze the problem, or you meet with a systems
analyst who outlines the project. Specifically, the task of defining the
problem consists of identifying what it is you know (input-given data), and
what it is you want to obtain (output-the result). Eventually, you produce a
written agreement that, among other things, specifies the kind of input,
processing, and output required. This is not a simple process.
- Planning the Solution
Two common ways of planning the solution
to a problem are to draw a flowchart and to write pseudocode, or possibly
both. Essentially, a flowchart is a pictorial representation of a
step-by-step solution to a problem. It consists of arrows representing the
direction the program takes and boxes and other symbols representing
actions. It is a map of what your program is going to do and how it is going
to do it. The American National Standards Institute (ANSI) has developed a
standard set of flowchart symbols. Figure 1 shows the symbols and how they
might be used in a simple flowchart of a common everyday act-preparing a
letter for mailing.
Figure 1: Flow Chart Symbols and Flow Chart For
Pseudocode is an English-like nonstandard
language that lets you state your solution with more precision than you can
in plain English but with less precision than is required when using a
formal programming language. Pseudocode permits you to focus on the program
logic without having to be concerned just yet about the precise syntax of a
particular programming language. However, pseudocode is not executable on
the computer. We will illustrate these later in this chapter, when we focus
on language examples.
- Coding the Program
As the programmer, your next step is to code
the program-that is, to express your solution in a programming language. You
will translate the logic from the flowchart or pseudocode-or some other
tool-to a programming language. As we have already noted, a programming
language is a set of rules that provides a way of instructing the computer
what operations to perform. There are many programming languages: BASIC,
COBOL, Pascal, FORTRAN, and C are some examples. You may find yourself
working with one or more of these. We will discuss the different types of
languages in detail later in this chapter.
languages operate grammatically, somewhat like the English language, they
are much more precise. To get your program to work, you have to follow
exactly the rules-the syntax-of the language you are using. Of course, using
the language correctly is no guarantee that your program will work, any more
than speaking grammatically correct English means you know what you are
talking about. The point is that correct use of the language is the required
first step. Then your coded program must be keyed, probably using a terminal
or personal computer, in a form the computer can understand.
more note here: Programmers usually use a text editor, which is somewhat
like a word processing program, to create a file that contains the program.
However, as a beginner, you will probably want to write your program code on
- Testing the Program
Some experts insist that a well-designed
program can be written correctly the first time. In fact, they assert that
there are mathematical ways to prove that a program is correct. However, the
imperfections of the world are still with us, so most programmers get used
to the idea that their newly written programs probably have a few errors.
This is a bit discouraging at first, since programmers tend to be precise,
careful, detail-oriented people who take pride in their work. Still, there
are many opportunities to introduce mistakes into programs, and you, just as
those who have gone before you, will probably find several of them.
Eventually, after coding the program, you must prepare to test it on
the computer. This step involves these phases:
- Desk-checking. This phase, similar to proofreading, is
sometimes avoided by the programmer who is looking for a shortcut and is
eager to run the program on the computer once it is written. However, with
careful desk-checking you may discover several errors and possibly save
yourself time in the long run. In desk-checking you simply sit down and
mentally trace, or check, the logic of the program to attempt to ensure
that it is error-free and workable. Many organizations take this phase a
step further with a walkthrough, a process in which a group of
programmers-your peers-review your program and offer suggestions in a
- Translating. A translator is a program that (1) checks the
syntax of your program to make sure the programming language was used
correctly, giving you all the syntax-error messages, called diagnostics,
and (2) then translates your program into a form the computer can
understand. A by-product of the process is that the translator tells you
if you have improperly used the programming language in some way. These
types of mistakes are called syntax errors. The translator produces
descriptive error messages. For instance, if in FORTRAN you mistakenly
write N=2 *(I+J))-which has two closing parentheses instead of one-you
will get a message that says, "UNMATCHED PARENTHESES." (Different
translators may provide different wording for error messages.) Programs
are most commonly translated by a compiler. A compiler translates
your entire program at one time. The translation involves your original
program, called a source module, which is transformed by a compiler into
an object module. Prewritten programs from a system library may be added
during the link/load phase, which results in a load module. The load
module can then be executed by the computer.
- Debugging. A term used extensively in programming, debugging
means detecting, locating, and correcting bugs (mistakes), usually by
running the program. These bugs are logic errors, such as telling a
computer to repeat an operation but not telling it how to stop repeating.
In this phase you run the program using test data that you devise. You
must plan the test data carefully to make sure you test every part of the
Documenting the Program
Documenting is an ongoing, necessary
process, although, as many programmers are, you may be eager to pursue more
exciting computer-centered activities. Documentation is a written detailed
description of the programming cycle and specific facts about the program.
Typical program documentation materials include the origin and nature of the
problem, a brief narrative description of the program, logic tools such as
flowcharts and pseudocode, data-record descriptions, program listings, and
testing results. Comments in the program itself are also considered an
essential part of documentation. Many programmers document as they code. In
a broader sense, program documentation can be part of the documentation for
an entire system.
The wise programmer continues to document the
program throughout its design, development, and testing. Documentation is
needed to supplement human memory and to help organize program planning.
Also, documentation is critical to communicate with others who have an
interest in the program, especially other programmers who may be part of a
programming team. And, since turnover is high in the computer industry,
written documentation is needed so that those who come after you can make
any necessary modifications in the program or track down any errors that you
Programming as a Career
There is a shortage of qualified personnel
in the computer field. Before you join their ranks, consider the advantages of
the computer field and what it takes to succeed in it.
The Joys of
Although many people make career changes into the computer
field, few choose to leave it. In fact, surveys of computer professionals,
especially programmers, consistently report a high level of job satisfaction.
There are several reasons for this contentment. One is the challenge-most jobs
in the computer industry are not routine. Another is security, since
established computer professionals can usually find work. And that work pays
well-you will probably not be rich, but you should be comfortable. The
computer industry has historically been a rewarding place for women and
minorities. And, finally, the industry holds endless fascination since it is
What It Takes
You need, of course, some
credentials, most often a two- or four-year degree in computer information
systems or computer science. The requirements and salaries vary by the
organization and the region, so we will not dwell on these here. Beyond that,
the person most likely to land a job and move up the career ladder is the one
with excellent communication skills, both oral and written . These are also
the qualities that can be observed by potential employers in an interview.
Promotions are sometimes tied to advanced degrees (an M.B.A. or an M.S. in
overall outlook for the computer field is promising. The Bureau of Labor
Statistics shows, through the year 2010, a 72 percent increase in programmers
and a 69 percent increase in system use today, and we will discuss the most
popular ones later In the chapter. Before we turn to specific languages,
however, we need to discuss levels of language.