Lecture 1
1. What is a Computer?A computer is an electronic all-propose machine that can process information on any type.
The basic elements of any computer are: the machines HARDWARE, which form the physical part of the computer system, and its SOFTWARE, which constitutes the programs that are used to direct these machines.
2. Advantages of Use the Computer:
It is easy to use.It is fast in arithmetic and logical operations.
High precision (دقة) in calculations and results.
It is fast in save and retrieve the information.
3. Types of Computers:
According to the purposes of their use, are categorized into three main fields:Dedicated(مخصصة) Computers (Processors).
Special Purpose Computers (Processors).
General-Purpose Computers (Processors).
I. Dedicated Computers (Processors):
These computers are designed and manufactured to carry out (one) specific task, and they cannot do any thing else.Special Purpose Computers (Processors):
These machines are designed to serve previously programmed tasks that are related to one field in many different ways, but they are unable to serve in any other field.
Example: A computer that is designed to work in medical laboratories can carryout more than one task related to the laboratory but it cannot be used in the aircraft situation.
General Purpose Computers:
These are the most popular computers, because they are programmable, and can serve more than one purpose in any field (i.e. general use).Example: These machines can be programmed for use in an accountancy office(مكتب محاسبة ) to calculate mathematical formulas, or they can be used in a lawyer’s office to keep track of forms, legal proceeding, etc.
Types of General Purpose Computers:
Normally, computers used nowadays are of the general purpose type, and are classified into the following major categories, with respect: a) To their size.
b) To computing power.
c) And to capabilities.
1. Main frame.
2. Mini / Super-Mini frame.
3. Micro / Super-Micro: (*) Personal. (**) Home. (***) Pocket.
Main Frame Computers:
The term main frame was used to characterize the central processor unit of any computer. This type of computers with its tremendous capabilities is usually used in large organizations such as: banks, government agencies, research & academic institutions, . etc, and that are:Very large.
Very sophisticated.
Very expensive machines.
Large capacity memory space (RAM & Auxiliary).
More facilities to serve many applications simultaneously.
High capabilities to operate at very high speed.
They are commonly multi-users.
Multi-programming machines.
Mini / Super-Mini Computers:
These are medium-sized computers, with capacity to serve more than one user at the same time (multi-user / multi-programming), but on a smaller scale than main frame. We can say that mini-computer is minimized main frames.
Micro / Super-Micro computers:
This type is the smallest version of the professional computers. These computers are serving only one user at one time (simultaneously) but recently they are developed to be able to serve more than one user (multi-user / multi-programming) and the micros are popular, because:
They are relatively less expensive than main frames or minis.
They need less space.
Easy to use by all ages.
The main factor behind the high reputation and success of this type of computers is the wide availability of ready-made software packages which most areas including: medical, dentistry, engineering, law, statistics, accounting, graphics, small business, and offices.
In addition, they can be used for entertainment, i.e., play games, such as chess, space invaders and many, many others.
Because of their high level of popularity, the ready-made programs that were used to run on larger computers, such as minis and main frames, were developed to be able to run on these smaller machines.
From the main characteristics of the microcomputers, and after the tremendous advances in manufacturing the small-size CPU (Central Processing Unit), new types of computers based on this principle were introduced, such as the: Personal, Home and Pocket computers.
Personal Computers (PCs): are usually used for professional applications. They have reached a very large number in world-wide sales (40 million PCs). Personal computers have the same foundations of any bigger-size computer. They have high capacity memory and disk drives, and can be connected to any I/O (Input/Output) device such as printers, plotters, or communications devices.
Home Computers: These computers are smaller and cheaper than the PCs, but they lack their facilities. They usually use the normal home TV as a screen and use the home tap-recorder as an auxiliary storage device.
Pocket computers: Pocket computers or programmable calculators are a very simple form of computers. They are used by students, engineers, and mathematicians to help them in their basic mathematical and arithmetical problems. Some of them are supplied with a very simplified version of a BASIC interpreter and a one-line screen; they can be attached to small-size printer.
4. Use of Computers:
Computers have crept into almost every field of our lives and we are used to seeing them everywhere, such as following:Use of computers in schools, university and academic institutions.
Use of computers in engineering offices.
Use of computers in banks and other financial institutions.
Computers in hospitals: Computers are used on a large scale in hospitals and doctors offices to keep patient medical records, and in blood banks keeping a world-wide check of possible patients and donors in a transplant situation. More importantly, the humanitarian uses of computers in medicine are in field of bio-medical instruments, as in open-heart surgery, computerized tomography scanners (CT scanners), Nuclear Magnetic Resonance (NMR), digital heart monitor machines, and others.
5. Structure of the Computer:
The computer consists of two main parts:
Hardware: The following diagram shows the main units of the computer:
Input / Output Unit ( I / O ):
In order to feed the computer with data items those are to be processed, and to retrieve the already processed data, we need devices that can communicate with the computer system via the central processing unit. Such devices are called the ((I / O) Devices). There are many kinds of ((I / O) Devices) that can be connected to the computer system in order to process data in different manners. Such ((I / O) Devices) are the monitors, keyboards, printers, plotters, light pens, Mouse, card readers, Disk Drive, speech synthesizers, music synthesizers, image processors, digitizers and communication devices such as modems, and many, many others.
Typical ((I / O) Devices) that are used as basic devices in any computing or electronic data processing environment (EDP), and are seen obviously connected to any computer system, are:
(*) Input Devices:
- Punched tape or card readers.
- Keyboards.
- Light pens.
- Digitizers.
- Mouse.
(**) Output Devices:
- Monitors.
- Printers.
- Plotters.
a) Punched tape and card readers:
Years ago, before the invention of the modern computer technology that has led to the on-line computers, data and programs were submitted to the computer as decks of punched cards or tapes for batch processing. The computer would read the data through the tape or the card reader, which played the role of sensing the punched holes that were produced by a special machine called the keypunch machine. Then data items were transmitted to the computer.Keyboards:
Typewriter-like keyboards are used as Input Devices to type in programs and data. Although basically like a typewriter keyboard, the computer keyboard has extra keys that perform specialized tasks (Function Keys). Nowadays keyboard in on-line systems are used to replace the keypunch machines because they accept data items and send them directly, after having them translated to electrical pulses, to the computer body.Light pens:
A light pen is an input device that is merely used to feed the computer with data. It is an interactive graphics system with an optional graphic tablet on which drawings and designs can be generated, updated, deleted, and then transferred as one object to the computer system. Light pens are mainly used in graphics and engineering applications.
From the name of these devices, we conclude that they look like normal pens attached to the computer system through special electrical wiring.
Digitizers:
Digitizers are input devices that are used to feed the computer system with digital data by determining the coordinates (x, y) of a given point on a special surface. A typical digitizer looks like the normal lens with a cross, where the intersection of the two lines determines the coordinates of the point to be read. Digitizers usually come with a standard electrical surface on which data are read to the computer system. They are widely used in applications that require the data to be read in coordinates, such as map drawings, contour lines, etc.
Mouse:
Many functions in the suite programs are designed to operate more efficiently with a mouse. A mouse is an input device that sits on a flat surface next to the computer. A mouse can be operated with the left or the right hand. Moving the mouse on the flat surface causes a corresponding mouse pointer to move on the screen.
Monitors:
Monitors are TV-like devices usually used as output devices to display the results, programs, graphical data, designs, pictures, etc. They allow the user to work in an interactive system, since all the input and / or output data can be seen immediately when working with the computer. Now, it is impossible to have a computer without the pair, monitor and keyboard, that provide an integrated, interactive, and interactive environment for computing.
Monitors are classified in what is called the resolution of the monitor, which is the number of dots (pixels) used to draw one character, and located in one area unit on the monitor surface. Standard monitor sizes range between 9 to 17 inches in diagonal.
Printers:
Printers are used as output devices to obtain hard copies of results or programs. There are almost no computing operations that do not require small or large amounts of printed outputs.
Plotters:
Plotters are mainly used to produce graphics and designs. Two plotting techniques are used: the first is flat bed plotting, in which the paper is fixed on a flat tablet where a moving axis which holds a colored pen is used to draw in two dimensional movements. The other technique is called drum plotting, where both the paper and the pen(s) move.
Central Processing Unit (CPU):
It is the most active part of the computer where all the operations are carried out. CPUs differ in speed, number of operations done in the time unit, the size of data to be manipulated at one time, etc.
The CPU has two main parts: the Control Unit (CU) and the Arithmetic and Logic Unit (ALU). The Control Unit (CU) regulates the flow of data between the different (I/O) devices attached to the system and the computers memory, as required by the program. In the Arithmetic and Logic Unit (ALU), all arithmetic and logical operations, such as additions, subtractions, multiplications, divisions, comparisons, and the manipulation of characters are performed.
Lecture 2
Memory Unit:
The function of these devices is to store the programs and the data before, during, and after processing. Memory units are usually divided into three types, as follows:
Random Access Memory (RAM).
Read Only Memory (ROM).
Auxiliary Memory.
The Random Access Memory (RAM):
The RAM comprises the largest part of the internal memory of the system, and is usually called the main memory of the computer. It is the part of memory which contains the programs currently being executed and the data currently being manipulated. The RAM consists of a large number of memory cells or memory locations.The RAM of any computer is a volatile memory, since the data contained will be lost when the power is turned off.
The Read Only Memory (ROM):
In general, this type of memory allows us only to read its contents, but not to write or change them. These memories are used to store vital information necessary for the start up of any system. In some computers, they may contain the language interpreters, mathematical and logical rules, and some built-in tasks or routines that are need for the computing operations.
Read Only Memories are non-volatile memories since their data are stored permanently at the time of the manufacturing. Very complicated procedures are followed in order to store data into this type of memories.
Normally, ROMs are categorized according to the following:
READ Only Memory (ROM):
They are programmed once at the manufacturing time. Their contents cannot be changed or updated by any means.
Programmable Read Only Memory (PROM):
This type of ROM is produced with empty data, and can be programmed once by the user employing special equipment, to serve special purposes, but it cannot be changed later. If you need to change or update the information stored in the PROM for any reason, you throw it away and get a new unused PROM. But, after the information is stored once, it can be read indefinitely.Erasable Programmable Read Only Memory (EPROM):
This type of memory costs more but allows the flexibility to erase, change, or update the information that has been stored in them. Like PROMs, the EPROMs hold data indefinitely unless re-programmed after being erased. Information stored in the EPROM can be erased by beaming an ultraviolet light on it for more than 15 minutes.Electrical Alterable Read Only Memory (EAROM):
In this kind of memory, data can be stored or updated without erasing their contents first. Information can be stored in such ROMs by using special electric circuits. The problem with such type of ROMs is that they lose their contents slowly as time goes by.
Auxiliary Memory:
Although internal memories (RAM or ROM) allow very fast access to memory cells or locations, they are, because of their structure, unsuitable for long-term data storage.The auxiliary (external) memory devices are non-volatile memories, i.e. they are used to store data and programs permanently. These types of memories vary dramatically in their capacity (size), physical structure, and access methods.
Auxiliary memory devices form the mechanical part of any computer system, since mechanical or physical movement is required in order to store data on this type or memories.
Typical auxiliary memory devices are:
Tapes.
Disks: a) Floppy disks:
Single Sided Single Density (SSSD).
Single Sided Double Density (SSDD).
Double Sided Single Density (DSSD).
Double Sided Double Density (DSDD).
b) Hard disks.
Software:
The software of the computer consists of abstract instructions that help the computer user to benefit from the different capabilities of the hardware resources.
There are two types of software:
System Software.
Application Software.
System Software:
System Software consists of sets of instructions that help in writing and executing other programs designed and written by individual people, or act as a mediator between the user and the different components of the computer system. Each set of instructions can help in performing, supervising, or controlling mainly one particular task.
System Software encompasses three major categories, namely the Operating System, Programming Languages (compilers and interpreters), and the System Utilities.
Operating Systems:
The most important module of the system software is what we call the Operating System, which acts as an interface between the user and the hardware of the computer. The operating system in a computer acts like a government in a country, i.e., it takes responsibility for making the computer system convenient and easy to use in the most efficient way.Operating systems are simply programs which are written in a language understood by the computers Central Processing Unit (CPU), in such a way that they direct and control all the operations undertaken by the hardware of the computer and supervise the flow of data and programs in the computer structure. Thus, the operating system is sometimes referred to as the supervisor, the monitor, or the master control program of the computer system.
Programming Languages:
In order to get a computer to produce results, or run programs that we have written, the Central Processing Unit must understand only one unique language by which it can communicate with the outside world. This computer language is referred to as the machine language.Machine Language:
The computers processor can only execute coded instructions, known as machine codes and instructions or machine language. This language does not need to be translated to the computers language, so programs written in this language are executed faster than programs written in any other language that have to be translated to machine-code language. However, it is much easier for programmers to use languages similar to their own spoken language than to use codes and numbers to write a program.In general, each set of machine language instructions is constructed in a computer-oriented form. Thus, the main disadvantage of using this language is the obscurity that faces the programmers since they are dealing with computer codes. In addition to that, these instructions are very difficult to remember, follow, and debug.
The main characteristic that describes the use of the machine language, is that each machine language is strictly system-dependent, i.e. it depends on the (CPU) of the relevant computer. Since each processor has only one machine language, only processors of the same type can run the same machine-coded programs.
For the above reasons, programmers usually do not interact with the computer via its machine language. We communicate with the computer via other languages more related to human terms, which can be translated later on to the machine-coded instruction language. These translators are system programs called Language Processors.
Assembly Language:
The basic level of programming is to use a language which is a bit easier than machine language where we use some meaningful mnemonics to replace the machine codes and numbers. This language is referred to as the Assembly Language.
Every instruction in the assembly language is translated (assembled) into its equivalent instruction in the machine language, in a one-to-one relation, by the direct help of ordinary system programs called the assemblers.
From the definition of the assembly language, it is still difficult to use it to write ordinary application programs, because assemblers can only accept mnemonics that could be directly translated to the native machine-coded instructions of that particular central processor upon which the computer is based (machine-dependent). However, it is used in special circumstances and in applications where speed is a major priority.
High-Level Languages:
Another level of programming language has been introduced to avoid the problems of portability, machine dependability, difficulty, and unclarity of using the assembly or the machine language.
This level is called the High-Level Languages. These languages are near to our own spoken language, and are machine-independent. In other words, they are not written to utilize directly the instruction set of any particular computers processor, which makes them much easier to use in writing programs.
One major factor that distinguishes high-level languages is that each language has almost a standard form. This standardization implies the possibility of program transportation between various computers.
The most commonly used programming languages are:
BASIC: (Beginners All-purpose Symbolic Instruction Code).
FORTRAN: (Formula Translator).
COBOL: (Common Business Oriented Language).
PASCAL: (from the name of French philosopher and mathematician Blaise Pascal).
ADA: (was named after the early computing pioneer Ada Lovelace).
LOGO: (is a very simple and easy language, especially interesting for children. It was introduced between 1980 and 1987).
.
.
. etc.
Iiii -Compilers and Interpreters:
Compilers and interpreters are two active types of system language processors, where their main function is to translate the application programs written in high-level languages to the assembly language, which, in the final stage, will be translated to the computers machine language.
The original program, written in the high-level language, is called the source program, whereas the new translated program is called the object program.
Both the compiler and the interpreter translate source programs into object programs. The difference between them is that a compiler only translates the source program as a whole, detects all the errors in it and issues messages declaring all the errors in the program. On the other hand, the interpreter translates and executes the source program step by step, i.e., instruction by instruction; each time it detects an error, it issues the corresponding message and stops execution until the error is corrected and the program has to be re-interpreted in search for other errors. We can see that the compiler is faster because it detects all errors when the source program is being translated and, therefore, all errors are corrected at one time.
Library Functions
Source Object Loadable
Program Program ProgramSub - & Utility Programs
System Utilities:
System Utilities are programming tools, constituting an essential part of the system software that provides the computing environment with ultimate reliability and flexibility. They form what is normally called the System Library of the computer. Each utility is designed to perform one task related to the system software.Application Software:
Application Software consists of the programs that are designed in one of the common high-level languages, such as BASIC or FORTRAN, to perform a certain task that helps the end user of the computer. They are considered the highest level of programming and differ according to the application that they intend to serve. Vary few application programs are written in assembly or machine language.
Computers/1st class Dr. Faris Ghanim Ahmed
PAGE
PAGE 15Input Unit
Central Processing Unit (CPU)Main
MemoryUnit
Secondary
Memory
Arithmetic & Logical Unit (ALU)
Control Unit (CU)Output Unit
Compilers ProgramLinker Program
LoaderProgram