xxi
Preface
This book attempts to teach computer programming to the complete beginner using the C
language. As such, it assumes you have no knowledge whatsoever about programming. And if
you are worried that you are not good at high-school mathematics, don’t be. It is a myth that you
must be good at mathematics to learn programming. In this book, knowledge of primary school
mathematics is all that is required—basic addition, subtraction, multiplication, division, finding
the percentage of some quantity, finding an average or the larger of two quantities.
Some of our most outstanding students over the last thirty years have been people with
little mathematics background from all walks of life—politicians, civil servants, sports people,
housewives, secretaries, clerical assistants, artists, musicians and teachers. On the other hand,
we’ve had mathematical folks who didn’t do as well as might be expected.
What will be an asset is the ability to think logically or to follow a logical argument. If you are
good at presenting convincing arguments, you will probably be a good programmer. Even if you
aren’t, programming is the perfect vehicle for teaching logical thinking skills. You should learn
programming for these skills even if you never intend to become a serious programmer.
The main goal of this book is to teach fundamental programming principles using C, one
of the most widely used programming languages in the world today. C is considered a ‘modern’
language even though its roots date back to the 1970s. Originally, C was designed for writing
‘systems’ programs—things like operating systems, editors, compilers, assemblers and input/
output utility programs. But, today, C is used for writing all kinds of applications programs as
well—word processing programs, spreadsheet programs, database management programs,
accounting programs, games, educational software—the list is endless.
However, this book is more about teaching programming basics than it is about teaching C.
We discuss only those features and statements in C that are necessary to achieve our goal.
Once you learn the principles well, they can be applied to any language.
Chapter 1 gives an overview of the programming process. Chapter 2 describes the basic
building blocks needed to write programs. Chapter 3 explains how to write programs with the
simplest kind of logic—sequence logic. Chapter 4 shows how to write programs which can make
decisions. Chapter 5 explains the notion of ‘looping’ and how to use this powerful programming
idea to solve more interesting problems. Chapter 6 deals with the oft-neglected, but important,
topic of working with characters. Chapter 7 introduces functions—the key concept needed for
writing large programs. Chapter 8 tackles the nemesis of many would-be programmers—array
processing. Chapter 9 explains how lists of items stored in arrays can be searched, sorted and
merged. And Chapter 10 deals with structures—the collection of one or more items, possibly of
different types, grouped together under a single name for convenient handling.
The first step in becoming a good programmer is learning the syntax rules of the
programming language. This is the easy part and many people mistakenly believe that this
makes them a programmer. They get carried away by the cosmetics—they learn the features of a
language without learning how to use them to solve problems.