0% found this document useful (0 votes)
5 views

Course 02 - Software

The document provides an overview of software, categorizing it into system software and application software, and detailing their functions, examples, and differences. It also discusses various types of software, including programming software, middleware, and embedded software, along with their respective purposes. Additionally, it highlights the significance of programming languages in developing both system and application software across various domains.

Uploaded by

youcefgh45
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
5 views

Course 02 - Software

The document provides an overview of software, categorizing it into system software and application software, and detailing their functions, examples, and differences. It also discusses various types of software, including programming software, middleware, and embedded software, along with their respective purposes. Additionally, it highlights the significance of programming languages in developing both system and application software across various domains.

Uploaded by

youcefgh45
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 14

Computer Science 2024/2025

MINISTRY OF HIGHER EDUCATION AND SCIENTIFIC RESEARCH

KASDI MERBAH OUARGLA UNIVERSITY

FACULTY OF HYDROCARBONS, RENEWABLE ENERGY, EARTH


AND UNIVERSE SCIENCES --FHERTU—

HYDROCARBON PRODUCTION DEPARTMENT


Computer Science

2024-2025

1
A. GHALI
Computer Science 2024/2025

INTRODUCTION

Software is a collection of instructions and data that tell a computer how to perform specific tasks.
Unlike the physical hardware with which a computer system is built, software is intangible and
cannot be touched. It is created using programming languages and can be broadly categorized
into two types:

Figure 1. System Software & Application Software Examples.

1. System Software: This is designed to manage and control the hardware components of a
computer system. It serves as the interface between the user applications and the hardware,
ensuring that the computer functions correctly and efficiently. Examples of system software
include:
a. Operating Systems: Such as Windows, MacOS, Linux, and Android. They manage the
computer's resources, offer services to software applications, and provide a user
interface.
b. Device Drivers: Software that facilitates communication between the operating system
and a hardware component (e.g., a printer driver).
c. Utilities: Programs that perform specific tasks related to managing computer
resources, like disk defragmenters, antivirus software, and backup tools.

2
A. GHALI
Computer Science 2024/2025

Figure 2. System Software.

2. Application Software: This is designed for end-users to perform specific tasks on a computer,
rather than run the computer itself. Examples include:
a. Productivity Software: Such as word processors (e.g., Microsoft Word), spreadsheets
(e.g., Microsoft Excel), and presentation software (e.g., Microsoft PowerPoint).
b. Database Software: Such as Microsoft Access, Oracle, and MySQL.
c. Graphics Software: Tools like Adobe Photoshop and Illustrator.
d. Entertainment and Media Software: Including media players, video games, and
multimedia editing tools.
e. Web Browsers: Such as Google Chrome, Mozilla Firefox, and Safari.
f. Business Software: Including enterprise resource planning (ERP) and customer
relationship management (CRM) tools.

Software development involves creating, testing, and maintaining software applications.


The development process can vary widely based on the methodology used, the size of the
application, the target platform, the complexity of the task, and other factors. Modern software
often relies on the internet, either to function or to update. As such, concepts like cloud
computing, software as a service (SaaS), and web applications have become prevalent in recent
years. In summary, software is the non-tangible component of a computer system that allows it
to operate and enables users to perform various tasks.

3
A. GHALI
Computer Science 2024/2025

Figure 3. Application Software.

Other type of software

"SOFTWARE" is a broad topic; it can be categorized based on its function and purpose. Here are
the primary types of software:

1. Programming Software:
a. Integrated Development Environments (IDEs): Platforms that provide tools for
writing, testing, and debugging code. Examples: Visual Studio, Eclipse, PyCharm.
b. Compilers: Translates high-level language code into machine code.
c. Debuggers: Used to test and debug software applications.
2. Middleware:

Acts as a bridge between the OS and the application software or between different
software applications. Middleware is essential in distributed computing environments.
Examples include database connection services, application servers, and message
queues.

4
A. GHALI
Computer Science 2024/2025

3. Embedded Software:

Specialized programming within non-computer devices (e.g., televisions, washing


machines, cars). This software is designed to control the device and provide features.

4. Simulation Software:

Used to simulate physical or abstract systems for either research, training, or


entertainment.

5. Network Software:

Tools or programs that allow devices to connect and share resources. Examples:
Network protocols, firewall software, network management software.

6. Firmware:

Software embedded into the read-only memory (ROM) of hardware devices. It


provides the low-level control for a device's specific hardware. Examples: BIOS in a
computer, firmware in a router.

Different types of software serve various purposes and are crafted to provide specific
functionalities. The lines between some categories might blur as software becomes more complex,
and integrated solutions become more common.

Figure 4. All type of software.

5
A. GHALI
Computer Science 2024/2025

Differences Between System Software and Application Software

The primary differences between system software and application software are based on their
purpose, functionality, and interaction with the hardware. Here's a breakdown:

1. Purpose:

 System Software: This software is designed to manage and control hardware components
and provide a platform for running application software. It acts as a bridge between
hardware and user applications.
 Application Software: This is designed to perform specific tasks for the user, such as word
processing, browsing the internet, or managing spreadsheets.

3. Interaction with Hardware:

 System Software: Directly interacts with the hardware and provides basic functions to
allow the hardware to operate. It manages resources like memory, CPU, and storage.
 Application Software: Indirectly interacts with hardware via system software. It relies on
the system software to access hardware resources.

4. Dependency:

 System Software: Functions independently of application software but is essential for


running any applications.
 Application Software: Depends on system software to function. Without an operating
system or system platform, application software cannot run.

5. Execution:

 System Software: Generally, runs in the background and starts as soon as the system is
turned on. It runs until the system is shut down.
 Application Software: Runs only when initiated by the user and can be closed when the
user finishes the task.

6. Installation:

 System Software: Comes pre-installed with the system (like the operating system) or is
installed during system setup.
 Application Software: Installed by the user based on needs and preferences.

7. Complexity:

 System Software: More complex because it manages a wide range of system resources and
hardware components.

6
A. GHALI
Computer Science 2024/2025

 Application Software: Generally, less complex, focusing on performing specific tasks or


providing functionality for the user.

8. User Interaction:

 System Software: Minimal direct user interaction; its processes typically run behind the
scenes.
 Application Software: Significant direct user interaction, as users work with the software
to perform tasks.

In summary, system software is foundational and essential for running a computer's hardware
and supporting application software, which focuses on user-specific tasks.

Examples of System Software

System software is a computer program that manages other software operations better. For a
computer program to warrant the term system software, it must be capable of effectively
managing the computer infrastructure and hardware devices for a better user interface.

Figure 5. Examples of System Software.

Here are some common examples of system software:

1. Operating Systems (OS):

 Windows (e.g., Windows 10, Windows 11)


 MacOS (e.g., macOS Ventura, Big Sur)
 Linux (e.g., Ubuntu, Fedora, Red Hat)
 Android (for mobile devices)
 iOS (for iPhones and iPads)

7
A. GHALI
Computer Science 2024/2025

2. Device Drivers:

 Printer Drivers (software allowing the OS to communicate with printers)


 Graphics Card Drivers (e.g., NVIDIA, AMD drivers)
 Sound Card Drivers (to control audio devices)
 Network Drivers (for Ethernet, Wi-Fi, etc.)

3. Firmware:

 BIOS/UEFI (Basic Input/Output System, a firmware that initializes hardware during


booting)
 Router Firmware (software running on routers to control networking functions)
 Smart Device Firmware (e.g., for smart TVs, IoT devices)

4. Utility Software:

 Antivirus Programs (e.g., Norton, McAfee, Windows Defender)


 Disk Management Tools (e.g., Disk Cleanup, Disk Defragmenter)
 Backup and Recovery Tools (e.g., Acronis, Windows Backup)
 System Monitoring Tools (e.g., Task Manager in Windows, Activity Monitor in macOS)

5. Virtual Machine Managers (Hypervisors):

 VMware (virtualization software)


 Oracle VirtualBox
 Microsoft Hyper-V

6. Shells and Command-Line Interfaces:

 Bash (used in Linux systems)


 Command Prompt (Windows)
 PowerShell (Windows)
 Zsh (Unix/Linux)

These examples help manage the computer's core functions and provide the environment in
which application software operates.

Examples of Application Software

Application software exists in various forms and works to help users’ complete tasks and perform
various functions. Computer programs and mobile apps are among the most popular and widely
used forms of application software due to their ease of accessibility.

Here are some common examples of application software:

8
A. GHALI
Computer Science 2024/2025

1. Productivity Software:

 Microsoft Word (word processing)


 Microsoft Excel (spreadsheets)
 Google Docs (online word processing)
 Google Sheets (online spreadsheets)
 Evernote (note-taking)
 Trello (project management)

2. Web Browsers:

 Google Chrome
 Mozilla Firefox
 Safari
 Microsoft Edge
 Opera

3. Media Players and Editing Software:

 VLC Media Player (video and audio playback)


 Windows Media Player
 Adobe Photoshop (image editing)
 Final Cut Pro (video editing)
 Audacity (audio editing)

4. Communication Software:

 Zoom (video conferencing)


 Microsoft Teams (collaboration and video calls)
 Slack (team communication)
 WhatsApp (messaging)
 Skype (voice and video calls)

5. Database Management Software:

 MySQL
 Microsoft Access
 Oracle Database
 SQLite

6. Graphics and Design Software:

 CorelDRAW (graphic design)

9
A. GHALI
Computer Science 2024/2025

 AutoCAD (computer-aided design for architecture/engineering)


 Adobe Illustrator (vector graphics design)

7. Games:

 Fortnite (online multiplayer game)


 Minecraft (sandbox game)
 The Sims (simulation game)
 Call of Duty (first-person shooter)

8. Business and Accounting Software:

 QuickBooks (accounting and financial management)


 FreshBooks (invoicing and billing)
 SAP (enterprise resource planning software)

9. Social Media Apps:

 Facebook
 Instagram
 Twitter (X)
 LinkedIn

10. Web-Based Applications:

 Google Drive (cloud storage)


 Dropbox (file sharing and storage)
 Salesforce (customer relationship management)
 Asana (task and project management)

Figure 6. Some application software.

10
A. GHALI
Computer Science 2024/2025

Types of Software

Apart from the conventional system and application software, they are other software categories.

1. Freeware Software

A freeware software program is free software that any user can easily access. Any software
program that falls under this description is regarded as freeware. Most application software is
regarded as freeware as they are easily accessible by a simple download, but some system
software is also free. Note that freeware is copyrighted to limit its distribution and usage. Freeware
examples are Windows Media Player, Word Processors, and Internet Browsers.

2. Open-Source Software

Open-source software is software programs that proprietary owners of the software programs
make the source code available and easily accessible for all and sundry. There is room for the
source code to be altered into an entirely different software program. A vast majority of
application software is open sourced, but so is some system software, such as the Ubuntu system
software.

3. Proprietary Software

Unlike open-source software, proprietary software might require payment to access the software
program, depending on the owner, but its source code is unavailable to the general public.

4. Shareware Software

Unlike freeware, shareware software is limited in how long users can access the software
programs for free. Once the free trial period elapses, access to these software programs is
revoked. Other programs are Malware, Spyware, and Adware software, which comprise software
that is illegal to distribute without consent. They are designed as end-user programs.

What about Programming Language Software?

Programming languages can be integrated across a wide range of areas and contexts, enabling the
development of both system software and application software. Here's how and where
programming languages can be used:
1. System Software Development:

 Operating Systems (e.g., Windows, macOS, Linux):


o Programming languages like C, C++, and Assembly are often used to develop
operating systems due to their low-level control over hardware resources.

11
A. GHALI
Computer Science 2024/2025

 Device Drivers:
o These are typically written in C or C++ to interact directly with hardware devices
like printers, keyboards, or network cards.
 Firmware:
o C and Assembly are common for writing firmware because they allow precise
control of hardware at a low level.
2. Application Software Development:

 Desktop Applications:
o Languages like Java, C++, Python, and C# are commonly used to create applications
that run on operating systems (e.g., word processors, media players).
 Web Applications:
o HTML, CSS, and JavaScript are essential for frontend development.
o Python (with frameworks like Django or Flask), Ruby (Ruby on Rails), PHP, and
JavaScript (Node.js) are used for backend development.
o Mobile Applications:
o Swift is used for iOS app development.
o Kotlin and Java are used for Android app development.
o React Native and Flutter are popular for cross-platform mobile apps using
JavaScript and Dart respectively.
3. Game Development:

 C++ and C# are popular languages for game engines like Unreal Engine and Unity
respectively.
 Python is used for scripting and game logic in certain engines (e.g., Pygame).
 JavaScript (via frameworks like Phaser) can be used for web-based games.
4. Artificial Intelligence and Machine Learning:

 Python is the dominant language for AI/ML because of libraries like TensorFlow, Keras,
PyTorch, and Scikit-learn.
 R is also popular for statistical computing and machine learning tasks.
 C++ is used in performance-critical parts of AI models.
5. Embedded Systems:

 C and C++ are widely used in embedded systems development (e.g., for microcontrollers
or IoT devices) due to their performance and low-level hardware access.
 Rust is gaining popularity in embedded systems for its safety features.

12
A. GHALI
Computer Science 2024/2025

6. Database Management:

 SQL (Structured Query Language) is essential for interacting with relational databases like
MySQL, PostgreSQL, and SQL Server.
 Python, Java, and C# are used to write database management systems (DBMS) and
integrate database functionality into applications.
7. Cloud Computing and DevOps:

 Python, Go, and Ruby are used in cloud services and infrastructure automation (e.g., AWS
Lambda, Google Cloud Functions).
 Shell scripting (e.g., Bash) and PowerShell are used for automation in system
administration and DevOps pipelines.
8. Data Science and Analytics:

 Python and R are the primary languages for data analysis, with libraries like Pandas,
NumPy, and Matplotlib.
 SQL is used for querying databases and extracting large datasets for analysis.
 MATLAB is also used for numerical computations and data visualization in academic and
research contexts.
9. Network Programming:

 C, C++, and Python are used to develop network protocols, socket programming, and
network tools.
 Java and Node.js are often used for developing scalable network applications (e.g., chat
servers, real-time data processing systems).
10. Automation and Scripting:

 Python, Bash, PowerShell, and Perl are commonly used for automating repetitive tasks,
system administration, or managing servers.
 JavaScript (via tools like Puppeteer) can automate web browsing tasks.
11. Cybersecurity:

 Python is used for writing penetration testing tools and automating security analysis tasks.
 C and Assembly are used in reverse engineering and malware analysis.
 JavaScript and SQL are important for testing vulnerabilities like cross-site scripting (XSS)
and SQL injection.
12. User Interface (UI) Development:

 JavaScript (with frameworks like React, Vue, or Angular) is essential for creating interactive
web UIs.

13
A. GHALI
Computer Science 2024/2025

 Python library generating graphical user interfaces.


 Swift and Kotlin are used for developing native mobile UIs.
 C# (with Windows Presentation Foundation (WPF) or Xamarin) is used for creating desktop
UIs.
13. Blockchain Development:

 Solidity is used for writing smart contracts on Ethereum and other blockchain platforms.
 Python and Go are used for developing blockchain infrastructure and decentralized
applications (dApps).
14. Robotics:

 C++ and Python are popular in robotics, often used with frameworks like ROS (Robot
Operating System).
 MATLAB is also used for robotic simulations and control algorithms.
 15. Scientific Computing and Research:
 Python, Fortran, and MATLAB are used for simulations, numerical computations, and
research.
 C++ and Java are used in large-scale simulations and performance-intensive scientific
applications.
Summary:
 Low-level programming languages like C, C++, and Assembly are often integrated into
system-level software, embedded systems, and performance-critical applications.
 High-level languages like Python, Java, and JavaScript dominate application development,
automation, and web programming.
 Specialized languages like SQL for databases, Solidity for blockchain, and R for data analysis
target specific domains.
Each programming language has its strengths and typical areas of integration depending on the
nature of the project or system.

14
A. GHALI

You might also like