# FOUNDATIONS OF COMPUTER SCIENCE

### INTRODUCTION OF FOUNDATIONS OF COMPUTER SCIENCE

The phrase computer science has a very broad meaning today. However, in this book, we define the phrase as ‘issues related to the computer’. This introductory chapter first tries to find out what a computer is, then investigates other issues directly related to computers. We look first at the Turing model as a mathematical and philosophical definition of computation. We then show how today’s computers are based on the von Neumann model. The chapter ends with a brief history of this culture-changing device . . . the computer.

## COMPUTER COMPONENTS

We can think of a computer as being made up of three components: computer hardware, data, and computer software.FOUNDATIONS OF COMPUTER SCIENCE ADVANCED ENGINEERING MATHEMATICS

Computer hardware :Computer hardware today has four components under the von Neumann model, although we can have different types of memory, different types of input/output subsystems, and so on.

Data : The von Neumann model clearly defines a computer as a data processing machine that accepts the input data, processes it, and outputs the result.FOUNDATIONS OF COMPUTER SCIENCESIGNAL AND SYSTEM

Storing data : The von Neumann model does not define how data must be stored in a computer. If a computer is an electronic device, the best way to store data is in the form of an electrical signal, specifically its presence or absence. FOUNDATIONS OF COMPUTER SCIENCESWITCHING THEORY AND LOGIC DESIGN MATERIALS SCIENCE AND ENGINEERING

This implies that a computer can store data in one of two states. Obviously, the data we use in daily life is not just in one of two states. For example, our numbering system uses digits that can take one of ten states (0 to 9). We cannot (as yet) store this type of information in a computer: it needs to be changed to another system that uses only two states (0 and 1). We also need to be able to process other types of data (text, image, audio, video).

These also cannot be stored in a computer directly, but need to be changed to the appropriate form (0s and 1s). In Chapter 3, we will learn how to store different types of data as a binary pattern, a sequence of 0s and 1s. In Chapter 4, we show how data is manipulated, as a binary pattern, inside a computer.SEMICONDUCTOR FOUNDATIONS OF COMPUTER SCIENCE

Organizing data : Although data should be stored only in one form inside a computer, a binary pattern, data outside a computer can take many forms.

In addition, computers (and the notion of data processing) have created a new field of study known as data organization, which asks the question: can we organize our data into different entities and formats before storing them inside a computer? FOUNDATIONS OF COMPUTER SCIENCE

Today, data is not treated as a flat sequence of information. Instead, data is organized into small units, small units are organized into larger units, and so on. We will look at data from this point of view in Chapters 11–14.

Computer software : The main feature of the Turing or von Neumann models is the concept of the program. Although early computers did not store the program in the computer’s memory, they did use the concept of programs. Programming those early computers meant changing the wiring systems or turning a set of switches on or off. Programming was therefore a task done by an operator or engineer before the actual data processing began.FOUNDATIONS OF COMPUTER SCIENCE

### Computer generations (1950–present)

Computers built after 1950 more or less follow the von Neumann model. They have become faster, smaller, and cheaper, but the principle is almost the same. Historians divide this period into generations, with each generation witnessing some major change in hardware or software (but not in the model)FOUNDATIONS OF COMPUTER SCIENCE

First generation :

The first generation (roughly 1950–1959) is characterized by the emergence of commercial computers. During this time, computers were used only by professionals. They were locked in rooms with access limited only to the operator or computer specialist. Computers were bulky and used vacuum tubes as electronic switches. At this time, computers were affordable only by big organizations.FOUNDATIONS OF COMPUTER SCIENCE

Second generation :

Second-generation computers (roughly 1959–1965) used transistors instead of vacuum tubes. This reduced the size of computers, as well as their cost, and made them affordable to small and medium-size corporations. Two high-level programming languages, FOUNDATIONS OF COMPUTER SCIENCE

FORTRAN and COBOL (see Chapter 9), were invented and made programming easier. These two languages separated the programming task from the computer operation task. A civil engineer, for example could write a FORTRAN program to solve a problem without being involved in the electronic details of computer architecture.

Third generation :

The invention of the integrated circuit (transistors, wiring, and other components on a single chip) reduced the cost and size of computers even further. Minicomputers appeared on the market. Canned programs, popularly known as software packages, became available. A small corporation could buy a package, for example for accounting, instead of writing its own program. A new industry, the software industry, was born. This generation lasted roughly from 1965 to 1975.

Fourth generation : The fourth generation (approximately 1975–1985) saw the appearance of microcomputers. The first desktop calculator, the Altair 8800, became available in 1975. Advances in the electronics industry allowed whole computer subsystems to fit on a single circuit board. This generation also saw the emergence of computer networks (see Chapter 6).

Fifth generation : This open-ended generation started in 1985. It has witnessed the appearance of laptop and palmtop computers, improvements in secondary storage media (CD-ROM, DVD, and so on), the use of multimedia, and the phenomenon of virtual reality.