Professional Documents
Culture Documents
Chapter 1
Chapter 1
Computer
A computer is a device that can be instructed to carry out arbitrary sequences of arithmetic or
logical operations automatically. The ability of computers to follow generalized sets of
operations, called programs, enables them to perform an extremely wide range of tasks.
A computer system consists of two major elements: hardware and software.
Computer Hardware
Computer hardware is the collection of physical parts of a computer system. This includes the
computer case, monitor, keyboard, and mouse. It also includes all the parts inside the computer
case, such as the hard disk drive, motherboard, video card, and many others. Computer hardware
is what you can physically touch.
Input Unit
It is an external device that is connected to the CPU.
It is used to feed data and instructions for solving the problem at hand.
The control unit sends signal to this unit to receive data and instructions from the user,
which is communicated to the CPU.
Examples: Keyboard, Mouse, Joystick, Scanner, Trackball, Light Pen, Touch screen,
Touch pad, Bar code reader, Microphone, etc.
Output Unit
This is used to display the result obtained after execution of a program.
Whenever the user wants the output from the computer, the control unit sends signal to
this unit to be ready to accept processed data from memory and display it.
Examples: Monitor, Printer, Scanner, Plotter, Speaker, Headphones, Fax, etc.
CU (Control Unit)
It controls and co-ordinates the activities of all the units of a computer system.
It acts as the central nervous system of the computer.
It controls and times signals to various units to co-ordinate for the specific operation.
MU (Memory Unit)
Software Types:
System software consists of several programs, which responsible for controlling, integrating and
managing the individual hardware components of a computer system. System software is
generally prepared by the computer manufacturers. These software products comprise of
programs written in low-level languages, which interact with the hardware at a very basic level.
System software serves as the interface between the hardware and the end users. It enables
application programs to execute properly. It consists of three basic operations as follows:
Application software is specific purpose software which is used by user for performing specific
task. It includes set of programs that do real work for users. There are two types of application
software.
Portability
A program should be supported by many computers. The program should compile and
run smoothly on different platforms.
Maintainability
It is the process of fixing program errors and improving the program. If a program is easy
to read and understand, then its maintenance will be easier.
Efficient
Program is said to be more efficient, if it takes less space and easily converted to machine
language.
Reliable
The user's actual needs will change from time to time, so program is said to be reliable if
it works smoothly in every version.
Machine Independent
Program should be machine independent. Program written on one system should be able
to execute on any other without any changes.
Cost Effectiveness
Cost effectiveness is the key to measure the program quality. Cost must be measured over
the life of the program and must include both cost and human cost of producing these
programs.
Flexible
Program should be written in such a manner that it allows to add new features without
changing the existing modules.
Interoperability
The ability of software to exchange information with the other applications. With the help
of this characteristics, the use of information can be made transparent.
Correctness
Every program should meet all specifications expected by the users.
Reusability
The software can be called reusable, if the users will have the ability to use the software
code with some modification for the different purposes. More complex software can be
developed in short span of time by reusing the existing software.
IOT,
Block Chain
Deep Learning
Machine learning
Neural networks
In general, a language is a communication medium between two people. We often use English,
German, French, Hindi etc. etc. languages to share our thoughts with each other. You might
know that a computer can do nothing automatically if we don’t give proper instructions to it. So,
to communicate with a computer or to talk with a computer we also need a language. So that we
can tell a computer to play a song, play a video, copy a file or something else. The languages
used to give such instructions to a computer are referred as the programming language. There are
different generations of programming languages are available. In total, there are 5 generations of
programming languages are available. Let’s discuss all of these 5 generations of programming
languages in details.
Depending on the language, the sophistication of fourth generation languages varies widely.
These languages are usually used in conjunction with a database and its data dictionary.
Five basic types of language tools fall into the fourth generation language category.
1. Query languages
2. Report generators.
3. Applications generators.
4. Decision support systems and financial planning languages.
5. Some microcomputer application software.
Programming Language
Natural Language
High Level programming language is language that is more user friendly, to some extent
platform-independent and abstract from low-level computer processor operations such as
memory access.
Problem-oriented Languages were designed to solve specific problems e.g. querying databases
and allowed the programmer to concentrate more on the problem rather than spending time
learning the complex syntax of the language. Some of these fourth-generation languages are used
for special applications as described below.
Query Languages enable users, who are not programmers, to use certain easily-understandable
commands to search and generate reports from a database. An example would be the commands
used by clerical officers to look for specific information on a personnel database-like date of first
appointment or job title.
Application Generators contain a number of modules, which are logically related program
statements that have been pre-programmed to accomplish specific tasks. An example would be a
module that calculates value-added tax (VAT) on products. The programmer can simply state
which task is needed for a particular application. The application generator creates the program
code by selecting the appropriate modules.
Natural Languages:
As they have evolved through the generations, computer languages have become more
humanlike. The fifth generation language refers to using natural languages, such as English,
French or Japanese, to communicate with computers. These languages are still under
development. They aim at providing people with a more natural interface to communicate with
computers. Users, therefore, will not require special training for writing programs. Researchers
also hope that natural languages will enable a computer to learn to "remember" information, as
people do, and to improve upon it. The standard definition of a fifth generation language (5GL)
is a computer language that incorporates the concepts of artificial intelligence to allow direct
human communication. Additionally, these languages would enable a computer to learn and to
Low level languages are memory efficient. High level languages are not memory efficient.
Low level languages are difficult to learn. High level languages are easy to learn.
Programming in low level requires Programming in high level do not require any
additional knowledge of the computer additional knowledge of the computer
architecture. architecture.
They are machine dependent and are not
They are machine independent and portable.
portable.
They provide less or no abstraction from They provide high abstraction from the
the hardware. hardware.
They are more error prone. They are less error prone.
Debugging and maintenance is comparatively
Debugging and maintenance is difficult.
easier.
They are generally used for developing They are used to develop a variety of
system software’s (Operating systems) and applications such as – desktop applications,
embedded applications. websites, mobile software’s etc.