Chapter 4 (Computer Science)
Chapter 4 (Computer Science)
Application software:
these are programs that allow the user to do specific tasks
General features of application software:
used to perform various applications (apps) on a computer
allows a user to perform specific tasks using the computer's resources
may be a single program (for example, NotePad) or a suite of programs (for example, Microsoft
Office)
Examples:
word processor
spreadsheet
Database
control and measuring software
apps
photo editing software
Video editing software
graphics manipulation software
word processor:
Word processing software is essentially a digital toolbox for writing and editing documents.
You can type text, manipulate its format (font, size, alignment etc.), copy and paste sections,
check for spelling mistakes, find synonyms, insert images, and even translate your work into
another language
spreadsheet:
is a numerical workhorse that helps you organize, calculate, and visualize data. It arranges
numbers in a grid of rows and columns, like a giant table.
Each intersection in the grid is called a cell, and you can perform calculations within those cells
using formulas.
This lets you analyze data, create graphs to visualize trends, and even model different scenarios
using "what if" calculations to see how changing certain values would affect outcomes.
Database:
=> Acts like a digital filing cabinet, neatly storing and managing large amounts of data in tables.
Imagine rows as records and columns as specific details.
=> You can ask questions to retrieve just the info you need, generate reports with charts and
graphs, and keep everything up-to-date by adding, deleting, or modifying data
control and measuring software:
=> acts as a brain for machines, letting them sense the world (temperatures, etc.) and react
accordingly.
=> It uses sensors to gather data, compares it to internal "knowledge," and then sends out
commands to control things like chemical processes, opening valves, or adjusting settings.
=> It's basically a real-time translator between the physical world and automated actions.
applications:
=> Apps are mini-programs that pack big functionality onto your mobile device, they are like
pocket-sized versions of computer software, downloaded from app stores like Google Play or
Apple's App Store.
=> They cover a vast range, from entertainment like video and music streaming to practical tools
like GPS navigation and photo editing.
System software:
General features:
>>> set of programs to control and manage the operation of computer hardware
Linkers:
A linker is a computer program that merges object files from a compiler into a single program,
simplifying the programming process.
It is used in programming languages where modules are written separately, allowing for smaller,
more manageable sub-tasks. However, at some point, all modules must be combined to form the
final program.
Utility programs:
System software provides various utility programs for computer users, including virus checkers,
defragmentation software, disk contents analysis and repair, file compression and management,
backup software, security, and screensavers. These programs are often initiated by the user or
run in the background without user input.
Virus Checkers:
=> Computers, including mobile phones and tablets, can be susceptible to virus attacks.
=>Operating systems offer virus checkers, which must be regularly updated and run in the
background to protect against malware.
=> Various methods can help prevent viruses, such as downloading from the internet, not opening
files from unknown senders, and using non-original software.
=>Anti-virus software, running in the background, constantly checks for virus attacks. It checks
software or files before they are loaded, compares them against a database of known viruses, and
performs heuristic checking.
=>Infected files or programs are quarantined, allowing the virus to be automatically deleted or
the user to decide on deletion. Anti-virus software needs to be updated as new viruses are
constantly discovered, and full system checks should be performed once a week to catch dormant
viruses.
Defragmentation software:
As a HDD becomes full, file blocks become scattered across the disk surface due to file deletions
and extensions over time.
This results in slower data access time, as the HDD read-write head requires multiple movements
to retrieve the required data.
To improve data access and retrieval, storing files in contiguous sectors can be advantageous.
A disk defragmentor can rearrange data blocks to store files in contiguous sectors, reducing head
movements.
3|Page
Back up software:
Manual back-ups are recommended, but using the operating system back-up utility is also
recommended. This utility allows for a schedule for backing up files and only performs a back-up
procedure if any changes have been made to a file.
To ensure security, three versions of a file should be stored: the current working version on the
internal HDD or SSD, a locally backed-up copy on a portable SSD, and a remote back-up version
stored away from the computer.
Microsoft Windows offers various facilities using the back-up utility, including restoring data,
creating a restore point, and setting up options for saving back-up files.
File History takes snapshots of files and stores them on an external HDD at regular intervals,
allowing users to choose the version they want to use.
File History defaults to backing up every hour and retains past versions for ever unless user
settings are changed.
Mac OS offers the Time Machine back-up utility, which erases the contents of a selected drive and
replaces them with the contents from the back-up.
It requires an external HDD or SSD connected via USB port and the Time Machine utility installed
and activated on the selected computer.
Security Software:
Security software manages access control, user accounts, links to other software, protects network
interfaces, uses encryption and decryption to ensure intercepted data is meaningless, and oversees
software updates, ensuring legitimate requests come from legitimate sources. It also links into virus and
spyware checkers.
Screen Savers:
Screensavers are programs that display moving and still images on a computer's screen after
inactivity. They were initially designed to protect older CRT monitors from phosphor burn.
With modern LCD and OLED screens, screensavers are now mainly used for device customization.
They also serve as part of a computer's security system, triggering a screensaver when a computer
is unused for five minutes without logging out.
This adds an extra layer of security for office environments. Some screensavers activate
background tasks, such as virus scans or distributed computing applications, which use the
computer's resources only when idle.
Device Drivers:
Device drivers are software that communicate with the operating system and convert data into a
format understood by hardware peripheral devices. Without them, a hardware device would not
work with a computer.
When a device is plugged into a USB port, the operating system searches for the appropriate
driver. All USB device drivers contain descriptors, including vendor ID, product ID, and unique
serial numbers.
If a device has no serial number, the operating system treats it as new. Unique serial numbers
are essential to avoid confusion.
4|Page
OPERATING SYSTEM
An operating system is software that allows computer systems to function correctly and
communicate with users.
It provides an environment for applications to run and a user-friendly interface between humans
and computers.
Common examples include Microsoft Windows, Apple Mac OS, Google Android, and Apple IOS,
which are primarily used on tablets and smartphones.
Operating systems are typically stored on hard disk drives (HDD) or solid state drives (SSD) on
computers, while mobile phones and tablets use solid state devices due to their smaller size.
5|Page
Who would use each type of interface?
CLI: The CLI is used by programmers, analysts, or technicians to communicate directly with a
computer for software development, error removal, and memory dumps.
GUI: The GUI is used by end-users without extensive computer knowledge, who use the
computer for running software, playing games, or manipulating photographs. Both types of
interfaces are essential for computer users.
Memory management:
Memory management is crucial in computer systems, managing primary storage (RAM) and
enabling data movement between RAM and HDD/SSD during program execution.
It keeps track of memory locations and ensures memory protection to prevent competing
applications from using the same memory locations simultaneously.
Failure to do so could lead to data loss, incorrect results, security issues, and even a
computer crash in extreme cases.
Proper memory management ensures that data is stored securely and efficiently.
Security Management:
Security management is a crucial aspect of an operating system that ensures the
integrity, confidentiality, and availability of data.
It involves updating operating systems, keeping anti-virus software up-to-date,
communicating with firewalls to check all traffic, using privileges to prevent users from
entering private areas, maintaining access rights for all users, offering data recovery and
system restore when lost or corrupted, and preventing illegal intrusion into the computer
system.
These features help maintain data privacy, protect against data breaches, and ensure the
safety of users and systems. Further details on these features can be found in more depth
elsewhere in the book.
6|Page
Hardware peripheral management:
Hardware management involves the control of all input and output peripheral devices.
It involves using device drivers to communicate with these devices, translating data from
a file into a format that the devices can understand.
This ensures that each hardware resource has a priority, allowing them to be used and
released as needed. Additionally, hardware management controls queues and buffers,
such as printer management.
When printing a document, the printer driver is loaded into memory, and data is sent to
a buffer. If the printer is busy or has a low priority, data is sent to a queue before it can
be sent to the buffer.
File management:
File management involves naming conventions, performing specific tasks, maintaining
directory structures, ensuring access control mechanisms, and ensuring memory
allocation for files.
It includes tasks like creating, opening, closing, deleting, renaming, copying, and
moving. The extension can include bat, htm, dbf, txt, and.xls. It also ensures file access
rights and password protection.
Multitasking:
Multitasking is a system where computers can perform multiple tasks simultaneously,
sharing hardware resources under the operating system's control.
To ensure proper functioning, the operating system must constantly monitor the status of
each process, allocate resources for specific time limits, allow interruptions, and assign a
priority to each process.
This prevents low-priority processes from starving of resources. Multitasking management
improves the management of main memory, HDD/SSD, and virtual memory, maximizing
CPU time utilization. However, this approach also raises risks of resource starvation for
low-priority processes.
Interrupts:
An interrupt is a signal sent from a device or software to the microprocessor, causing it
to temporarily stop its operations to service the interrupt.
Interrupts can be caused by timing signals, input/output processes, hardware faults, user
interaction, or software errors. Once the interrupt signal is received, the microprocessor
either continues with its current tasks or stops to service the device or program that
caused the interrupt.
Interrupts enable computers to perform multiple tasks or have multiple windows open
simultaneously, creating the illusion of simultaneous operation. However, data is passed
in and out of memory rapidly, allowing both functions to be serviced. This is achieved
through the use of buffers, which store data temporarily.
For example, buffers are used when downloading a movie from the internet to
compensate for the difference between download speeds and data requirements of the
receiving device.
The data transmission rate of the movie file from the web server to the buffer must be
greater than the rate at which data is transmitted from buffer to media player. Without
buffers, the movie would frequently freeze.
when an interrupt is received, it needs to be serviced. The status of the current task
being run first needs to be saved, and the contents of the Program Counter (PC) and
other registers are saved.
The interrupt service routine (ISR) is executed by loading the start address into the PC.
Once the interrupt has been fully serviced, the status of the interrupted task is
reinstated, and the process continues.
Buffers and interrupts are essential components in modern computer systems, enabling
the execution of standard computer functions. They are often taken for granted by users,
such as when a document is sent from memory to a printer.
8|Page
The time taken to print a document is significantly longer than the time it takes for the
microprocessor to send data to the printer. Without buffers and interrupts, the
microprocessor would be idle waiting for the document, wasting time.
They allow the microprocessor to continue with other tasks, maximizing its processing
power and speed.
In summary, interrupts are crucial for computer systems to function efficiently and effectively.
They allow for simultaneous execution of multiple tasks and ensure efficient data transfer
between devices.
9|Page
Types of programming language, translators and
integrated development environments (IDEs)
Languages are essential for communication, and to understand each other, one must
speak the same language or use an interpreter.
Programmers use various programming languages to communicate with computers, which
only understand their own language, machine code.
A program needs to be translated into machine code before it can be understood by a
computer.
Programs are instructions that tell a computer what to do, how to do it, and when to do
it, enabling it to perform various tasks such as streaming videos, writing reports, and
providing weather forecasts.
Computer programs can be written in high-level languages or low-level languages,
depending on the task and the computer used. Most programmers write in high-level
languages
High Level Programming languages
High-level languages allow programmers to focus on solving problems without knowing
the computer's hardware and instruction set. They are portable and can be used on
various types of computers.
High-level languages are designed for programmers, making programming statements
easier to understand.
Programs written in high-level languages are easier to read, write, debug, and maintain.
There are various high-level programming languages, including C++, Delphi, Java, Pascal,
Python, and Visual Basic.
Once a programmer learns programming techniques in one language, they can apply these
techniques to writing programs in other high-level languages.
10 | P a g e
Translators:
computer programs are written by humans in a form that computer programmers can
understand.
To be used by a computer, programs must be translated into binary instructions,
machine code.
Humans find it difficult to read binary, but computers can only perform binary
operations. A utility program called a translator is used to convert a program into binary,
with various types performing different tasks.
11 | P a g e
Iintegrated Development Environment (IDE)
An Integrated Development Environment (IDE) is a tool used by programmers to aid in
writing and developing programs. There are various IDEs available, some supporting one
programming language and others for multiple languages, such as PyCharm for Python,
Visual Studio for Visual Basic, or BlueJ for Java.
Code Editor:
A code editor allows a program to be written and edited without the need to use a
separate text editor.
This speeds up the program development process, as editing can be done without
changing to a different piece of software each time the program needs correcting or
adding to
Translator:
Most IDEs usually provide a translator, this can be a compiter and/or an interpreter, to
enable the program to be executed.
The interpreter is often used for developing the program and the compiler to produce the
final version of the program to be used.
12 | P a g e
Error diagnostics and auto-correction:
Dynamic error checking detects potential errors in program code, alerts the programmer and
offers suggested corrections, enabling many errors to be identified and corrected before the
program is executed.
Auto-completion:
Code editors can offer context-sensitive prompts with text completion for variable names and
reserved words.
13 | P a g e
14 | P a g e