Fcet Books
Fcet Books
Components: Hardware – Introduction, Input devices, Output devices, Central Processing Unit,
Memory- Primary and Secondary. Software - Introduction, Types – System and Application.
What is a Computer?
A computer is an electronic device that processes data based on instructions given by software
programs. It accepts input (data), processes it through the Central Processing Unit (CPU), stores
information for future use, and generates output (results) to carry out a wide range of tasks.
Features of a Computer
2. Accuracy – Produces highly accurate results, errors occur only due to wrong input or program
(GIGO – Garbage In, Garbage Out).
4. Storage – Can store a large amount of data and retrieve it quickly when needed.
5. Versatility – Can perform different types of tasks, from calculations to multimedia processing.
6. Connectivity – Can connect to networks (like the Internet) for communication and data sharing.
7. Diligence – Unlike humans, computers do not get tired or bored, they can work continuously.
10. Communication – Facilitates data exchange through emails, video calls, cloud services, etc
History and Evolution of Computers
Introduction
Before the invention of modern computers, humans relied on simple tools like sticks, stones, and
bones to count and perform basic calculations. As knowledge grew, more advanced devices such
as the abacus and Napier’s Bones were invented. These early tools were helpful but limited, as
they could not handle complex calculations. Over time, innovations in mechanical and electronic
devices led to the powerful computers we use today.
Pascaline (1642–1644)
o Invented by Blaise Pascal.
o First mechanical calculator for addition and subtraction using gears and wheels.
Stepped Reckoner (1673)
o Invented by Gottfried Wilhelm Leibniz.
o Improved Pascal’s design; capable of addition, subtraction, multiplication, and
division.
Difference Engine (1820s)
o Designed by Charles Babbage (known as the "Father of Modern Computing").
o Mechanical device for calculating polynomial functions.
Analytical Engine (1830s)
o Also designed by Charles Babbage.
o First design for a general-purpose computer with memory, a control unit, and
input/output via punch cards.
o Though never built, it laid the foundation for modern computing concepts.
Transistor Computers
o Replaced bulky vacuum tubes.
o Smaller, faster, more reliable, and energy-efficient.
UNIVAC I (1951)
o Developed by Eckert and Mauchly.
o First commercially successful computer for business and scientific applications.
Apple II (1977) – Early successful personal computer by Steve Jobs and Steve Wozniak.
IBM PC (1981) – Standardized personal computing; widely adopted.
Macintosh (1984) – Introduced graphical user interface (GUI), making computers user-
friendly.
Generations of Computers
The period between 1940 and 1956 is known as the era of the first generation of computers.
These computers were large, slow, costly, and consumed a huge amount of electricity. They
used vacuum tubes as the main components for the CPU and memory. Input was provided
through punch cards and paper tape, while output was obtained on magnetic tape and
printouts. They relied mainly on batch processing operating systems.
The period between 1957 and 1963 is known as the era of the second generation of computers.
This generation marked the shift from vacuum tubes to transistors, which were smaller,
cheaper, faster, and more reliable. These computers consumed less power and generated less
heat compared to first-generation machines.
For primary memory, magnetic cores were used, while magnetic disks and tapes served as
secondary storage devices. Programming was done using assembly language as well as high-
level languages such as COBOL and FORTRAN. Operating systems introduced batch
processing and multiprogramming features.
These computers were more reliable, efficient, and compact than earlier generations. Operating
systems supported time-sharing, multiprogramming, and remote processing. High-level
programming languages such as FORTRAN-II to IV, COBOL, PASCAL, and PL/1 were
widely used during this era.
The period between 1971 and 1980 is known as the era of the fourth generation of computers.
These computers used VLSI (Very Large Scale Integration) circuits, where millions of
transistors and other components were integrated onto a single chip. This innovation made
computers smaller, faster, more powerful, reliable, and affordable.
The operating systems of this generation supported real-time processing, time-sharing, and
distributed computing. Programming languages like C and C++ became popular. This was
also the era of the rise of personal computers and supercomputers.
The period from 1980 to the present marks the era of fifth generation computers. These
computers use ULSI (Ultra Large Scale Integration) technology, which allows millions of
electronic components to be integrated onto a single microprocessor chip.
Fifth-generation computers are designed for parallel processing and incorporate Artificial
Intelligence (AI) software, enabling them to make decisions, recognize patterns, and solve
complex problems. Common programming languages include C, C++, Java, and .NET. These
computers are widely used today in desktops, laptops, notebooks, ultrabooks, and servers,
and are connected to the Internet, supporting global communication and cloud computing.
The sixth generation of computers refers to the current and upcoming generation of
computers that are focused on artificial intelligence (AI), quantum computing, and advanced
nanotechnology. These computers are designed to be faster, smaller, more intelligent, and
highly efficient. They integrate natural language processing, machine learning, neural
networks, and quantum processors to solve extremely complex problems beyond the reach of
classical computers.
This generation emphasizes ubiquitous computing, where devices are interconnected, context-
aware, and capable of self-learning. Examples include AI-driven supercomputers, quantum
computers, advanced robotics, IoT-enabled smart devices, and futuristic computers for
research in science, medicine, and space.
Hardware refers to the physical parts of a computer, such as the CPU, RAM, hard
drives, keyboard, and monitor.
Software consists of the programs and applications that instruct the hardware on how
to perform tasks.
Both hardware and software are essential for the computer to operate, working together to
ensure efficient and smooth performance. Understanding their interaction is key to modern
computing
Computer Hardware and Software
A computer system consists of hardware and software, both of which are essential for its
proper unctioning.
1. Computer Hardware
Hardware refers to the physical components of a computer system. These can be classified into
the following main types:
Input devices allow users to enter data and instructions into the computer for processing.
Examples: Keyboard, Mouse, Scanner, Microphone.
Output devices display or produce results from computer processing, allowing users to see or
hear the processed information.
Examples: Monitor, Printer, Speakers.
Internal components are essential parts inside the computer that manage data and ensure
smooth system operation.
Examples: CPU (Central Processing Unit), Motherboard, RAM (Random Access Memory),
GPU (Graphics Processing Unit).
2. Computer Software
Software is a collection of instructions, programs, and documentation that tells the computer
how to perform specific tasks. It can be machine-level code or programs designed for operating
systems.
System software manages computer hardware and provides a platform for application
software. It controls hardware devices and ensures proper system functionality.
Examples: Operating Systems (Windows, Linux, macOS), Language Processors, Device
Drivers.
Application software is designed to perform specific tasks for users. It runs on top of system
software and supports day-to-day functions.
Examples: Word Processors (MS Word), Spreadsheets (Excel), Graphic Design Tools
(Photoshop), Database Management Systems (MySQL).
An Input/Output (I/O) device is any hardware that allows a computer to communicate with
users or other systems. These devices can receive data (input) from the user or an external
source and deliver data (output) from the computer. Essentially, I/O devices act as a bridge
between the computer and the outside world, enabling seamless data exchange.
1. Input Devices
Input devices are used to send data or signals to the computer for processing. The CPU
(Central Processing Unit) receives this data and processes it, sending the results to output
devices.
Keyboard
The keyboard is the most commonly used input device for entering data into a computer. Its
layout is similar to that of a standard typewriter, though it includes additional keys for
performing various computer operations.
Keyboards are available in different sizes: traditionally 84 keys or 101/102 keys, while modern
keyboards for Windows and Internet use often have 104 or 108 keys to accommodate extra
functionality.
1. Numeric Keys
Function: Used to enter numeric data and sometimes to move the cursor.
Characteristic: Typically includes 17 keys arranged in a grid or keypad.
2. Typing Keys
Function: Includes letters (A–Z) and numbers (0–9) for typing text and data.
Characteristic: Main keys used for writing and text entry.
3. Control Keys
Function: Used to control the pointer, screen, and perform system operations.
Characteristic: Includes Arrow keys, Home, End, Insert, Delete, Ctrl, Alt, Esc, etc.
Special Note: Helps in navigation and executing shortcuts.
4. Special Keys
5. Function Keys
Mouse
The mouse is the most common pointing device used with computers. It allows users to control
the on-screen cursor by moving the mouse across a flat surface. The computer relies on the user
to move the mouse, so it is classified as an input device.
In essence, the mouse provides an intuitive way to interact with graphical interfaces and
navigate through software applications.
Joystick
Joystick
A joystick is a pointing input device used to move the cursor on a computer screen. It consists
of a stick with spherical balls at the top and bottom. The bottom ball slides within a socket,
allowing the stick to move in all four directions.
Trackball
Light Pen
A light pen is a pointing input device that resembles a pen. It allows users to select menu
items or draw directly on the monitor screen.
In essence, the light pen provides a direct and interactive way to communicate with the
computer screen, making it useful for drawing and selection tasks.
Scanner
Scanner
Functionality: The scanner captures images or text from the source document and
converts them into digital format.
Storage: The digitized data can be saved on a hard disk or other storage media.
Editing: The scanned images or documents can be modified or enhanced before
printing or further use.
An Optical Character Reader (OCR) is an input device that reads printed text and converts
it into a format that a computer can understand.
Functionality: The OCR scans text character by character and transforms it into
machine-readable code.
Storage: The recognized text is then saved in the system memory for processing or
editing.
In essence, OCR allows computers to digitize printed documents, making it easier to store,
search, and manipulate text electronically.
Magnetic Ink Character Reader (MICR)
A Magnetic Ink Character Reader (MICR) is an input device widely used in banks to
process cheques.
Functionality: MICR reads the magnetic ink printed on cheque numbers and codes.
Purpose: It enables fast and accurate processing of cheques compared to manual
methods.
In summary, MICR helps banks quickly verify and process financial documents, improving
efficiency and reducing errors.
.
Bar Code Reader
A Bar Code Reader is an input device that reads bar-coded data, which is represented by a
series of light and dark lines.
Functionality: The device scans the bar code, converts it into an alphanumeric value,
and sends the information to the connected computer.
Types: It can be a handheld scanner or part of a stationary scanning system.
Applications: Bar codes are commonly used to label products, number books, track
inventory, and manage sales.
In essence, a Bar Code Reader automates data entry, making it faster and more accurate than
manual recording.
Web Camera (Webcam)
A web camera or webcam is an input device that captures video and images of the scene in
front of it.
Connection: It can be built into a computer or laptop or connected externally via USB.
Functionality: Webcams record images and videos and transmit them to the computer
for processing. They are commonly used for video calls, online streaming, and
broadcasting.
Software: Requires installed software to operate and broadcast video in real-time over
the Internet.
Quality: Can capture images and HD videos, though the quality is usually lower than
dedicated cameras found in smartphones or standalone cameras.
In essence, webcams provide a simple way to capture and transmit live video and images for
communication and multimedia applications.
Digitizer
Digitizer is a device that is used to convert analog signals to digital signals. It converts signals into
numeric values. An example of a Digitizer is a Graphic Tablet, which is used to convert graphics to binary
data.
Microphone
The microphone works as an input device that receives input voice signals and also has the responsibility
of converting it also to digital form. It is a very common device that is present in every device which is
related to music.
2. Output Devices
Output Devices are the devices that show us the result after giving the input to a computer system.
Output can be of many different forms like image, graphic audio, video, etc. Some of the output devices
are described below.
Monitor
Monitors, also known as Visual Display Units (VDUs), are a computer's primary output device. It creates
images by arranging small dots, known as pixels, in a rectangular pattern. The amount of pixels
determines the image's sharpness.
The two kinds of viewing screens used for monitors are described below.
Cathode-Ray Tube (CRT) Monitor: Pixels are minuscule visual elements that make up a CRT
display. The higher the image quality or resolution, the smaller the pixels.
Flat-Panel Display Monitor: In comparison to the CRT, a flat-panel display is a type of video
display with less volume, weight, and power consumption. They can be hung on the wall or
worn on the wrist.
Flat-panel displays are currently used in calculators, video games, monitors, laptop computers, and
graphical displays.
Television
Television is one of the common output devices which is present in everycan house. It portrays video
and audio files on the screen as the user handles the television. Nowadays, we are using plasma displays
as compared to CRT screens which we used earlier.
Printer
Printers are output devices that allow you to print information on paper. There are certain types of
printers which are described below.
Impact Printers
Character Printers
Line Printers
Non-Impact Printers
Laser Printers
Inkjet Printers
Printer666
Impact Printer
Characters are printed on the ribbon, which is subsequently crushed against the paper, in impact
printers. The following are the characteristics of impact printers:
Exceptionally low consumable cost.
Quite noisy
Character Printers
Character Printer canto produce print only one character at a time. It is of two types.
Daisy Wheel
Line Printers
Line Printers are printers that have the capability to print one line at a time. It is of two types.
Drum Printer
Chain Printer
Non-Impact Printers
Characters are printed without the need for a ribbon in non-impact printers. Because these printers
print a full page at a time, they're also known as Page Printers. The following are the characteristics of
non-impact printers:
Faster
Excellent quality
Laser Printers
Laser Printers use laser lights to produce. dots which will produce characters on the page.
Inkjet Printers
Inkjet printers are printers that use spray technology for printing papers. High-quality papers are
produced in an Inkjet printer. They also do color printing.
Speakers
Speakers are devices that produce sound after getting a command from a computer. Nowadays,
speakers come with wireless technology also like Bluetooth speakers.
Projector
Projectors are optical devices that have the work to show visuals on both types of screens, stationary
and moving both. It helps in displaying images on a big screen. Projectors are generally used in theatres,
auditoriums, etc.
Plotter
Plotter is a device that helps in making graphics or other images to give a real view. A graphic card is
mandatorily required to use these devices. These are the pen-like devices that help in generating exact
designs on the computer.
Braille Reader
Braille Reader is a very important device that is used by blind users. It helps people with low vision or no
vision to recognize the data by running their fingers over the device to understand easily. It is a very
important device for blind persons as it gives them the comfort to understand the letters, alphabets, etc
which helps them in study.
Video Card
A video Card is a device that is fitted into the motherboard of the computer. It helps in improvising
digital content in output devices. It is an important tool that helps people in using multiple devices.
Global Positioning System (GPS)
Global Positioning System helps the user in terms of directions, as it uses satellite technology to track
the geometrical locations of the users. With continuous latitudinal and longitudinal calculations, GPS
gives accurate results. Nowadays, all smart devices have inbuilt GPS.
Headphones
Headphones are just like a speaker, which is generally used by a single person or it is a single-person
usable device and is not commonly used in large areas. These are also called headsets having a lower
sound frequency.
Some devices can act as both input and output tools, making them very versatile. These devices let you
send data to a computer and receive processed results from it. Unlike regular input or output devices,
hybrid devices improve functionality, efficiency, and user interaction by combining both capabilities
Data storage
Communication
Seamless interaction
Touchscreen
A touchscreen is a device that acts as both an input and an output tool. As an output device, it shows
information like a regular monitor. But it also works as an input device because you can interact with it
directly by touching the screen.
Smartphones
Tablets
ATMs
Kiosks
They let you navigate, select, and control functions without needing a mouse or keyboard. Advanced
touchscreens, like capacitive and resistive types, can detect multiple touches at once.
An external hard drive is a storage device that can both store and retrieve data. You can save files onto it
(output) and access or modify them later (input). These drives connect to your computer using USB,
Thunderbolt, or other interfaces.
Unlike the storage inside your computer, external hard drives are portable. This means you can easily
move large files between different computers.
A USB flash drive is a small, portable storage device that can both send and receive data. When you copy
files onto the flash drive, it acts as an output device, storing the information. When you access or
transfer those files to another computer, it acts as an input device, providing the data to the system.
The Central Processing Unit (CPU) is like the brain of a computer. It’s the part that does most of the
thinking, calculating, and decision-making to make your computer work. Whether you’re playing a game,
typing a school assignment, or watching a video, the CPU is busy handling all the instructions to get the
job done.
The CPU is usually placed in a special slot called a socket on the computer’s motherboard, which is like
the main circuit board that connects all the parts of a computer. The CPU handles tasks like:
The CPU is super important because it handles every task your computer does. Without it, your
computer would just be a fancy box! A fast CPU means your games run smoothly, your apps open
quickly, and your homework gets done faster.
The components of a CPU include the ALU (Arithmetic Logic Unit), CU (Control Unit), registers, cache,
and clock.
Components of CPU
Control Unit: The control unit manages the CPU by sending signals like clock, hold, and reset to
its parts. It ensures all components work together to complete tasks. For example, it
synchronizes data movement from cache memory to the ALU.
Arithmetic and Logic Unit (ALU): The ALU handles arithmetic tasks (like addition, subtraction,
multiplication, division) and logical tasks (like AND, OR, comparisons). It uses addition for all
calculations, e.g., solving 2×3 as 2+2+2=6.
Memory Unit: The memory unit stores data and instructions. Older CPUs used registers, but
modern ones also have fast cache memory. The CPU fetches data from RAM, ROM, or hard disks
and stores it in registers or cache during tasks.
The CPU’s main job is to process instructions from programs. It does this through a process called
the Fetch-Decode-Execute-Store cycle:
This cycle happens billions of times a second, letting the CPU handle tons of tasks super fast!
1. Fetch: the first CPU gets the instruction. That means binary numbers that are passed from RAM
to CPU.
2. Decode: When the instruction is entered into the CPU, it needs to decode the instructions. with
the help of ALU(Arithmetic Logic Unit), the process of decoding begins.
3. Execute: After the decode step the instructions are ready to execute.
4. Store: After the execute step the instructions are ready to store in the memory.
Types of CPUs
CPUs come in different types, depending on how many cores they have. A core is like a mini-CPU inside
the main CPU, and more cores mean the CPU can do more tasks at once. Here are the main types:
Single-Core CPU: The oldest type, used in the 1970s. It can only handle one task at a time, so it’s
slow for modern apps like games or web browsers.
Dual-Core CPU: Has two cores, so it can handle two tasks at once. It’s faster and better for
multitasking, like listening to music while doing homework.
Quad-Core CPU: Has four cores, making it great for heavy tasks like video editing or playing
modern games. It’s very fast and common in today’s computers.
The CPU earns its nickname as the “brain” because it’s responsible for thinking through and executing
every task in a computer. Just like your brain processes information to make decisions, the CPU
processes instructions to make your computer do what you want. Without a CPU, a computer would just
be a lifeless box of parts.
Modern CPUs are designed to be super efficient. Here are a few ways they speed things up:
Multiple Cores: Many CPUs have multiple cores, which are like mini-CPUs that can work on
different tasks at the same time. It’s like having several chefs in the kitchen instead of one.
Faster Clocks: The clock speed (measured in GHz, like 3.5 GHz) determines how many
instructions the CPU can handle per second.
Bigger Cache: More cache means the CPU can store more data close by, reducing wait times.
Pipelining: This lets the CPU start working on the next instruction before finishing the current
one, like a factory line.
Versatile: CPUs can handle all kinds of tasks, Heat: CPUs get hot when working hard, so computers
from simple math to running complex games. need fans or cooling systems to stay safe.
Fast: Modern CPUs process billions of Power Use: Powerful CPUs use a lot of electricity,
instructions per second. which can raise power bills.
Compatible: CPUs work with tons of Not Perfect for All Tasks: For tasks like graphics or
software, so you can use the same CPU for video editing, specialized chips like GPUs (Graphics
different apps. Processing Units) are better than CPUs.
History of CPU
The story of the CPU started long ago and has some exciting milestones that changed how computers
work. Here’s a simple timeline for students:
1823: A scientist named Baron Jons Jakob Berzelius discovered silicon, a material still used to
make CPUs today.
1947: Scientists John Bardeen, Walter Brattain, and William Shockley invented the transistor, a
tiny switch that helped make modern CPUs possible.
1958: Engineers Jack Kilby and Robert Noyce created the integrated circuit, which combined
many transistors into a single chip.
1971: Intel released the Intel 4004, the first-ever microprocessor (a CPU on a single chip),
starting the era of personal computers.
1979: Motorola introduced the Motorola 68000, a powerful CPU used in early computers and
gaming consoles.
1999: Intel launched the Celeron processors, making computers faster and more affordable.
2005: AMD introduced the first dual-core processor, allowing CPUs to handle multiple tasks at
once.
2009: Intel released the Core i5, a four-core processor that made computers even faster.
2017-2018: Intel introduced the Core i9, one of the most powerful CPUs for desktops and
laptops.
Each step made CPUs smaller, faster, and more powerful, helping computers do more amazing things!
Modern Applications
CPU in Personal Computers: In your laptop or desktop, the CPU runs your games, apps, and homework
programs, making sure everything works smoothly.
Role in Mobile Devices: Your phone or tablet has a CPU too! It’s smaller and uses less power but still
handles calls, apps, and videos.
Use in Servers and Data Centers: In big data centers, CPUs power websites like YouTube and Google,
processing millions of requests every second.
Primary memory is used to store actively used data and is very fast but loses information when power is
lost. Secondary memory provides long-term storage for files and programs, retaining data safely but is
slower than primary memory. In this article, we are going to discuss the difference between primary and
secondary memory in detail.
Computer Memories store data and instruction. The memory system can be divided into 4 categories:
CPU Register
Cache Memory
Primary memory is the computer memory that is directly accessible by CPU. It is comprised
of DRAM and provides the actual working space to the processor. It holds the data and instructions that
the processor is currently working on.
RAM (Random Access Memory): Temporary storage for actively used data and instructions. It is
volatile and lost when power is turned off.
ROM (Read-Only Memory): Non-volatile memory that stores firmware and essential
instructions for booting the computer. The data is permanent and not lost when power is off.
Direct Access : Allows the CPU to quickly read from and write to memory.
The contents of the secondary memory first get transferred to the primary memory and then are
accessed by the processor, this is because the processor does not directly interact with the secondary
memory. Now, Let's see the difference between Primary memory and Secondary memory.
Hard Disk Drive (HDD): Magnetic storage device used for long-term data storage. It is slower
than SSD but offers large capacity.
Solid-State Drive (SSD): Faster than HDD, uses flash memory for storage. More durable and
energy-efficient but typically more expensive.
Optical Discs (CD/DVD): Store data using laser technology, commonly used for media storage
and software distribution.
USB Flash Drive: Portable storage device using flash memory, widely used for transferring and
storing data.
External Hard Drive: Similar to HDD, used for additional storage outside the computer, portable
and used for backups.
Tape Drive: Magnetic storage device used mainly for backups; offers high capacity but slower
access speed.
Large Capacity : Typically offers much more storage space than primary memory.
Primary memory, like RAM, is where the CPU directly stores and retrieves data it’s currently working
with. On the other hand, secondary memory, such as hard drives, is used for long-term storage, keeping
files and programs safe even when the computer is turned off. Understanding the difference between
these two types of memory is crucial for grasping how computer systems work.
Primary memory Secondary memory
Primary memory is directly accessible by Secondary memory is not directly accessible by the
Processor/CPU. CPU.
Primary memory is volatile, which means it is Since it is non-volatile, data can be retained in case of
wiped out when the computer is turned off. a power failure.
Primary memory devices are more expensive Secondary memory devices are less expensive when
than secondary storage devices. compared to primary memory devices.
The memory devices used for primary The secondary memory devices are magnetic and
memory are semiconductor memories. optical memories.
It can hold data/information currently being It can hold data/information that are not currently
used by the processing unit. being used by the processing unit.
The capacity of primary memory is usually It stores a considerable amount of data and
within the range of 16 to 32 GB. information. The capacity of secondary memory
Primary memory Secondary memory
Primary memory is also known as Main Secondary memory is also known as External memory
memory or Internal memory. or Auxiliary memory.
In a computer system, the software is basically a set of instructions or commands that tell a computer to
do a specific task that serves its users.
A software is not a physical thing like hardware, it rather makes the hardware work as per user
requirements by giving instructions.
Types of Software
1. System Software
Language Processor
Device Driver
2. Application Software
Customize Software
Utility Software
System Software
System software is software that directly operates the computer hardware and provides the basic
functionality to the users as well as to the other software to operate smoothly.
System software basically controls a computer’s internal functioning and also controls hardware
devices such as monitors, printers, and storage devices, etc.
It is like an interface between hardware and user applications, it helps them to communicate
with each other because hardware understands machine language(i.e. 1 or 0) whereas user
applications are work in human-readable languages like English, Hindi, German, etc.
1. Operating System: It is the main program of a computer system. When the computer system
ON it is the first software that loads into the computer's memory. Basically, it manages all the
resources such as computer memory, CPU, printer, hard disk, etc., and provides an interface to
the user, which helps the user to interact with the computer system.
2. Language Processor: As we know that system software converts the human-readable language
into a machine language and vice versa. So, the conversion is done by the language processor. It
converts programs written in high-level programming languages like Java, C, C++, Python,
etc(known as source code), into sets of instructions that are easily readable by machines(known
as object code or machine code).
3. Device Driver: A device driver is a program or software that controls a device and helps that
device to perform its functions. Every device like a printer, mouse, modem, etc. needs a driver
to connect with the computer system eternally. So, when you connect a new device with your
computer system, first you need to install the driver of that device so that your operating
system knows how to control or manage that device.
Application Software
Software that performs special functions or provides functions that are much more than the basic
operation of the computer is known as application software.
1. General Purpose Software: This type of application software is used for a variety of tasks and it
is not limited to performing a specific task only. For example, MS-Word, MS-Excel, PowerPoint,
etc.
2. Customized Software: This type of application software is used or designed to perform specific
tasks or functions or designed for specific organizations. For example, railway reservation
system, airline reservation system, invoice management system, etc.
3. Utility Software: This type of application software is used to support the computer
infrastructure. It is designed to analyze, configure, optimize and maintains the system, and take
care of its requirements as well. For example, antivirus, disk fragmenter, memory tester, disk
repair, disk cleaners, registry cleaners, disk space analyzer, etc.
Perform more specialized tasks like word processing, spreadsheets, email, etc.
Mostly, the size of the software is big, so it requires more storage space.
Now, let us discuss some difference between system software and application software:
System Software Application Software
Less interactive for the users. More interactive for the users.
System software plays vital role for the effective Application software is not so important for the
functioning of a system. functioning of the system, as it is task specific.
Introduction:
A programming language is a set of instructions and syntax used to create software programs. Some of
the key features of programming languages include:
1. Syntax: The specific rules and structure used to write code in a programming language.
2. Data Types: The type of values that can be stored in a program, such as numbers, strings, and
booleans.
4. Operators: Symbols used to perform operations on values, such as addition, subtraction, and
comparison.
5. Control Structures: Statements used to control the flow of a program, such as if-else
statements, loops, and function calls.
6. Libraries and Frameworks: Collections of pre-written code that can be used to perform common
tasks and speed up development.
7. Paradigms: The programming style or philosophy used in the language, such as procedural,
object-oriented, or functional.
Examples of popular programming languages include Python, Java, C++, JavaScript, and Ruby. Each
language has its own strengths and weaknesses and is suited for different types of projects.
A programming language is a formal language that specifies a set of instructions for a computer to
perform specific tasks. It's used to write software programs and applications, and to control and
manipulate computer systems. There are many different programming languages, each with its own
syntax, structure, and set of commands. Some of the most commonly used programming languages
include Java, Python, C++, JavaScript, and C#. The choice of programming language depends on the
specific requirements of a project, including the platform being used, the intended audience, and the
desired outcome. Programming languages continue to evolve and change over time, with new languages
being developed and older ones being updated to meet changing needs.
Are you aiming to become a software engineer one day? Do you also want to develop a mobile
application that people all over the world would love to use? Are you passionate enough to take the big
step to enter the world of programming? Then you are in the right place because through this article
you will get a brief introduction to programming. Now before we understand what programming is, you
must know what is a computer. A computer is a device that can accept human instruction, processes it,
and responds to it or a computer is a computational device that is used to process the data under the
control of a computer program. Program is a sequence of instruction along with data.
1. Input unit
3. Output unit
Memory unit
Control unit
Most of us have heard that CPU is called the brain of our computer because it accepts data, provides
temporary memory space to it until it is stored(saved) on the hard disk, performs logical operations on it
and hence processes(here also means converts) data into information. We all know that a computer
consists of hardware and software. Software is a set of programs that performs multiple tasks together.
An operating system is also software (system software) that helps humans to interact with the computer
system.
A program is a set of instructions given to a computer to perform a specific operation. or computer is a
computational device that is used to process the data under the control of a computer program. While
executing the program, raw data is processed into the desired output format. These computer programs
are written in a programming language which are high-level languages. High level languages are nearly
human languages that are more complex than the computer understandable language which are called
machine language, or low level language. So after knowing the basics, we are ready to create a very
simple and basic program. Like we have different languages to communicate with each other, likewise,
we have different languages like C, C++, C#, Java, python, etc to communicate with the computers. The
computer only understands binary language (the language of 0’s and 1’s) also called machine-
understandable language or low-level language but the programs we are going to write are in a high-
level language which is almost similar to human language.
The piece of code given below performs a basic task of printing “hello world! I am learning
programming” on the console screen. We must know that keyboard, scanner, mouse, microphone, etc
are various examples of input devices, and monitor(console screen), printer, speaker, etc are examples
of output devices.
main()
clrscr();
getch();
At this stage, you might not be able to understand in-depth how this code prints something on the
screen. The main() is a standard function that you will always include in any program that you are going
to create from now onwards. Note that the execution of the program starts from the main() function.
The clrscr() function is used to see only the current output on the screen while the printf() function helps
us to print the desired output on the screen. Also, getch() is a function that accepts any character input
from the keyboard. In simple words, we need to press any key to continue(some people may say that
getch() helps in holding the screen to see the output).
Between high-level language and machine language, there are assembly languages also called symbolic
machine code. Assembly languages are particularly computer architecture specific. Utility program
(Assembler) is used to convert assembly code into executable machine code. High Level Programming
Language is portable but requires Interpretation or compiling to convert it into a machine language that
is computer understood.
Hierarchy of Computer language -
There have been many programming languages some of them are listed below:
C Python C++
C# R Ruby
Visual BASIC
True BASIC GW BASIC
Swift
LISP SCALA
Logo Lua
Smalltalk
Matlab F F#
TCL D CPL
C
Python
C++
Java
SCALA
C#
R
Ruby
Go
Swift
JavaScript
A programming language must be simple, easy to learn and use, have good readability, and be
human recognizable.
Programming language's efficiency must be high so that it can be easily converted into a
machine code and its execution consumes little space in memory.
A programming language should be well structured and documented so that it is suitable for
application development.
Necessary tools for the development, debugging, testing, maintenance of a program must be
provided by a programming language.
Data Type: A classification that specifies what type of data a variable can hold, such as integer,
string, or boolean.
Function: A self-contained block of code that performs a specific task and can be called from
other parts of the program.
Control Flow: The order in which statements are executed in a program, including loops and
conditional statements.
Syntax: The set of rules that govern the structure and format of a programming language.
Comment: A piece of text in a program that is ignored by the compiler or interpreter, used to
add notes or explanations to the code.
Statement: A single line or instruction in a program that performs a specific action or operation.
Here the basic code for addition of two numbers are given in some popular languages (like C, C++,Java,
Python, C#, JavaScript etc.).
#include <iostream>
int main()
int a, b, sum;
a = 10;
b = 15;
sum = a + b;
cout << "Sum of " << a << " and " << b
return 0;
Output
2. Portability: Programs written in a high-level programming language can run on many different
operating systems and platforms.
3. Readability: Well-designed programming languages can make code more readable and easier to
understand for both the original author and other developers.
4. Large Community: Many programming languages have large communities of users and
developers, which can provide support, libraries, and tools.
1. Complexity: Some programming languages can be complex and difficult to learn, especially for
beginners.
2. Performance: Programs written in high-level programming languages can run slower than
programs written in lower-level languages.
3. Limited Functionality: Some programming languages may not have built-in support for certain
types of tasks or may require additional libraries to perform certain functions.
4. Fragmentation: There are many different programming languages, which can lead to
fragmentation and make it difficult to share code and collaborate with other developers.
1. Start with the fundamentals: Begin by learning the basics of the language, such as syntax, data
types, variables, and simple statements. This will give you a strong foundation to build upon.
2. Code daily: Like any skill, the only way to get good at programming is by practicing regularly. Try
to write code every day, even if it's just a few lines.
3. Work on projects: One of the best ways to learn a new language is to work on a project that
interests you. It could be a simple game, a web application, or anything that allows you to apply
what you've learned that is the most important part.
4. Read the documentation: Every programming language has documentation that explains its
features, syntax, and best practices. Make sure to read it thoroughly to get a better
understanding of the language.
5. Join online communities: There are many online communities dedicated to programming
languages, where you can ask questions, share your code, and get feedback. Joining these
communities can help you learn faster and make connections with other developers.
6. Learn from others: Find a mentor or someone who is experienced in the language you're trying
to learn. Ask them questions, review their code, and try to understand how they solve problems.
7. Practice debugging: Debugging is an essential skill for any programmer, and you'll need to do a
lot of it when learning a new language. Make sure to practice identifying and fixing error
In the era of Digitalization and Modernization, Software is the very crucial support that allows hardware
to perform various useful tasks. There are two categories of software; System Software and Application
Software, these types perform different work which is why it is crucial to understand the difference. \
Application software is created to help users to perform specific tasks directly and System software acts
as a mediator between hardware and user applications. Computer Software is a sort of program that
allows clients to work on different assignments or use them to work on their System. It tells the working
and responsibilities of the System.
Basically, Software is a set of instructions or commands that tells a user how to do and what to do. In
this article, we will look into these topics in detail along with their differences.
Types of Software
System Software
Application Software
System Software is the type of software that is the interface between application software and the
system. Low-level languages are used to write the system software. System Software maintains the
system resources and gives the path for application software to run. An important thing is that without
system software, the system can not run. It is general-purpose software.
Memory Management
Processor Management
File Management
Security
Error-detecting Aids
Scheduling
1. Operating System: Operating System is the main part of the Computer System. It has the
responsibility of managing all the resources such as CPU, Printer, Hard Disk, etc. It also provides services
to many other Computers Softwares. Examples of Operating Systems are Linux, Apple, macOS, Microsoft
Windows, etc.
2. Language Processor: System Software converts Human-Readable Language into a Machine Language
and it is done by Language Processor. It converts programs into instructions that are easily readable by
Machines.
3. Device Driver: A Device Driver is a program or software that helps to perform its functions by
controlling the device. You first have to install a driver for running the program.
Emails, text messaging, audio, and video conferencing, and cooperation are all options.
1. General Purpose Software: This Application Software is used to perform tasks that are used for a
variety of tasks, just not limited to a specific task only. For Example, MS Word, MS Excel, etc.
2. Customized Software: It is used to perform tasks that are designed for specific organizations. For
Example, Railway Reservation System, Airline Reservation System, etc.
3. Utility Software: It is used to support the architecture of the Computer. It is designed for optimizing
and maintaining the system and also taking care of its requirements.
System Software and Application Software
Low-level languages are used to write the system While high-level languages are used to write
software. the application software.
Without system software, the system stops and can't While Without application software system
run. always runs.
System software runs when the system is turned on While application software runs as per the
and stops when the system is turned off. user's request.
System Software programming is more complex than Application software programming is simpler
application software. in comparison to system software.
The Software that is designed to control, integrate and A set of computer programs installed in the
manage the individual hardware components and user's system and designed to perform a
application software is known as system software. specific task is known as application software.
A system software operates the system in the Application software runs in the front end
background until the shutdown of the computer. according to the user's request.
The system software has no interaction with users. It Application software connects an
serves as an interface between hardware and the end intermediary between the user and the
user. computer.
System Software Application Software
The word Algorithm means "A set of finite rules or instructions to be followed in calculations or other
problem-solving operations" Or "A procedure for solving a mathematical problem in a finite number of
steps that frequently involves recursive operations".
Please refer Complete Data Structures & Algorithms Tutorial for topic-wise guide, practice problems
and interview questions.
Algorithms play a crucial role in various fields and have many applications. Some of the key areas where
algorithms are used include:
1. Computer Science: Algorithms form the basis of computer programming and are used to solve
problems ranging from simple sorting and searching to complex tasks such as artificial
intelligence and machine learning.
2. Mathematics: Algorithms are used to solve mathematical problems, such as finding the optimal
solution to a system of linear equations or finding the shortest path in a graph.
3. Operations Research: Algorithms are used to optimize and make decisions in fields such as
transportation, logistics, and resource allocation.
4. Artificial Intelligence: Algorithms are the foundation of artificial intelligence and machine
learning, and are used to develop intelligent systems that can perform tasks such as image
recognition, natural language processing, and decision-making.
5. Data Science: Algorithms are used to analyze, process, and extract insights from large amounts
of data in fields such as marketing, finance, and healthcare.
These are just a few examples of the many applications of algorithms. The use of algorithms is
continually expanding as new technologies and fields emerge, making it a vital component of modern
society.
Algorithms can be simple and complex depending on what you want to achieve.
It can be understood by taking the example of cooking a new recipe. To cook a new recipe, one reads
the instructions and steps and executes them one by one, in the given sequence. The result thus
obtained is the new dish is cooked perfectly. Every time you use your phone, computer, laptop, or
calculator you are using Algorithms. Similarly, algorithms help to do a task in programming to get the
expected output.
The Algorithm designed are language-independent, i.e. they are just plain instructions that can be
implemented in any language, and yet the output will be the same, as expected.
1. Algorithms are necessary for solving complex problems efficiently and effectively.
2. They help to automate processes and make them more reliable, faster, and easier to perform.
3. Algorithms also enable computers to perform tasks that would be difficult or impossible for
humans to do manually.
4. They are used in various fields such as mathematics, computer science, engineering, finance,
and many others to optimize processes, analyze data, make predictions, and provide solutions
to problems.
Clear and Unambiguous: The algorithm should be unambiguous. Each of its steps should be
clear in all aspects and must lead to only one meaning.
Well-Defined Inputs: If an algorithm says to take inputs, it should be well-defined inputs. It may
or may not take input.
Well-Defined Outputs: The algorithm must clearly define what output will be yielded and it
should be well-defined as well. It should produce at least 1 output.
Finite-ness: The algorithm must be finite, i.e. it should terminate after a finite time.
Feasible: The algorithm must be simple, generic, and practical, such that it can be executed with
the available resources. It must not contain some future technology or anything.
Input: An algorithm has zero or more inputs. Each that contains a fundamental operator must
accept zero or more inputs.
Output: An algorithm produces at least one output. Every instruction that contains a
fundamental operator must accept zero or more inputs.
Finiteness: An algorithm must terminate after a finite number of steps in all test cases. Every
instruction which contains a fundamental operator must be terminated within a finite amount
of time. Infinite loops or recursive functions without base conditions do not possess finiteness.
Effectiveness: An algorithm must be developed by using very basic, simple, and feasible
operations so that one can trace it out by using just paper and pencil.
Properties of Algorithm:
It should be deterministic means giving the same output for the same input case.
Every step in the algorithm must be effective i.e. every step should do some work.
Advantages of Algorithms:
It is easy to understand.
In an Algorithm the problem is broken down into smaller pieces or steps hence, it is easier for
the programmer to convert it into an actual program.
Disadvantages of Algorithms:
1. The problem that is to be solved by this algorithm i.e. clear problem definition.
2. The constraints of the problem must be considered while solving the problem.
Then the algorithm is written with the help of the above parameters such that it solves the problem.
Example: Consider the example to add three numbers and print the sum.
1. The problem that is to be solved by this algorithm: Add 3 numbers and print their sum.
2. The constraints of the problem that must be considered while solving the problem: The
numbers must contain only digits and no other characters.
3. The input to be taken to solve the problem: The three numbers to be added.
4. The output to be expected when the problem is solved: The sum of the three numbers taken as
the input i.e. a single integer value.
5. The solution to this problem, in the given constraints: The solution consists of adding the 3
numbers. It can be done with the help of the '+' operator, or bit-wise, or any other method.
Now let's design the algorithm with the help of the above pre-requisites:
1. START
3. Take the three numbers, to be added, as inputs in variables num1, num2, and num3
respectively.
4. Declare an integer variable sum to store the resultant sum of the 3 numbers.
5. Add the 3 numbers and store the result in the variable sum.
7. END
// algorithm
#include <bits/stdc++.h>
int main()
// the 3 numbers
int sum;
<< sum;
return 0;
Output
1. Declare three variables num1, num2, and num3 to store the three numbers to be added.
4. Use the cin statement to read the first number and store it in num1.
5. Use the cout statement to prompt the user to enter the second number.
6. Use the cin statement to read the second number and store it in num2.
7. Use the cout statement to prompt the user to enter the third number.
8. Use the cin statement to read and store the third number in num3.
9. Calculate the sum of the three numbers using the + operator and store it in the sum variable.
10. Use the cout statement to print the sum of the three numbers.
11. The main function returns 0, which indicates the successful execution of the program.
One problem, many solutions: The solution to an algorithm can be or cannot be more than one. It
means that while implementing the algorithm, there can be more than one method to implement it. For
example, in the above problem of adding 3 numbers, the sum can be calculated in many ways:
+ operator
Bit-wise operators
. . etc
For a standard algorithm to be good, it must be efficient. Hence the efficiency of an algorithm must be
checked and maintained. It can be in two stages:
1. Priori Analysis:
"Priori" means "before". Hence Priori analysis means checking the algorithm before its implementation.
In this, the algorithm is checked when it is written in the form of theoretical steps. This Efficiency of an
algorithm is measured by assuming that all other factors, for example, processor speed, are constant
and have no effect on the implementation. This is done usually by the algorithm designer. This analysis is
independent of the type of hardware and language of the compiler. It gives the approximate answers for
the complexity of the program.
2. Posterior Analysis:
"Posterior" means "after". Hence Posterior analysis means checking the algorithm after its
implementation. In this, the algorithm is checked by implementing it in any programming language and
executing it. This analysis helps to get the actual and real analysis report about correctness(for every
possible input/s if it shows/returns correct output or not), space required, time consumed, etc. That is, it
is dependent on the language of the compiler and the type of hardware used.
An algorithm is defined as complex based on the amount of Space and Time it consumes. Hence the
Complexity of an algorithm refers to the measure of the time that it will need to execute and get the
expected output, and the Space it will need to store all the data (input, temporary data, and output).
Hence these two factors define the efficiency of an algorithm.
The two factors of Algorithm Complexity are:
Time Factor: Time is measured by counting the number of key operations such as comparisons
in the sorting algorithm.
Space Factor: Space is measured by counting the maximum memory space required by the
algorithm to run/execute.
1. Space Complexity: The space complexity of an algorithm refers to the amount of memory required by
the algorithm to store the variables and get the result. This can be for inputs, temporary operations, or
outputs.
Fixed Part: This refers to the space that is required by the algorithm. For example, input
variables, output variables, program size, etc.
Variable Part: This refers to the space that can be different based on the implementation of the
algorithm. For example, temporary variables, dynamic memory allocation, recursion stack space,
etc.
Therefore Space complexity S(P) of any algorithm P is S(P) = C + SP(I), where C is the fixed part
and S(I) is the variable part of the algorithm, which depends on instance characteristic I.
Step 1: START
Step 2: Get n elements of the array in arr and the number to be searched in x
Step 3: Start from the leftmost element of arr[] and one by one compare x with each element of arr[]
Step 4: If x matches with an element, Print True.
Step 5: If x doesn’t match with any of the elements, Print False.
Step 6: END
Here, There are 2 variables arr[], and x, where the arr[] is the variable part of n elements and x is the
fixed part. Hence S(P) = 1+n. So, the space complexity depends on n(number of elements). Now, space
depends on data types of given variables and constant types and it will be multiplied accordingly.
2. Time Complexity: The time complexity of an algorithm refers to the amount of time required by the
algorithm to execute and get the result. This can be for normal operations, conditional if-else
statements, loop statements, etc.
Constant time part: Any instruction that is executed just once comes in this part. For example,
input, output, if-else, switch, arithmetic operations, etc.
Variable Time Part: Any instruction that is executed more than once, say n times, comes in this
part. For example, loops, recursion, etc.
Therefore Time complexity T(P) T(P) of any algorithm P is T(P) = C +
TP(I), where C is the constant time part and TP(I) is the variable part of the algorithm, which
depends on the instance characteristic I.
Example: In the algorithm of Linear Search above, the time complexity is calculated as follows:
1. Natural Language:- Here we express the Algorithm in the natural English language. It is too hard
to understand the algorithm from it.
3. Pseudo Code:- Here we express the Algorithm in the form of annotations and informative text
written in plain English which is very much similar to the real code but as it has no syntax like
any of the programming languages, it can’t be compiled or interpreted by the computer. It is the
best way to express an algorithm because it can be understood by even a layman with some
school-level knowledge.