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

CSC121 Module 2

The document provides an overview of computer software, categorizing it into system software, which manages fundamental operations, and application software, which performs specific tasks for users. It discusses software suites, their advantages, and the evolution of programming languages from machine code to high-level languages, including language translators like compilers and interpreters. Additionally, it highlights modern programming aids and technologies such as IDEs, version control systems, debugging tools, and automated testing tools that enhance software development.
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
4 views

CSC121 Module 2

The document provides an overview of computer software, categorizing it into system software, which manages fundamental operations, and application software, which performs specific tasks for users. It discusses software suites, their advantages, and the evolution of programming languages from machine code to high-level languages, including language translators like compilers and interpreters. Additionally, it highlights modern programming aids and technologies such as IDEs, version control systems, debugging tools, and automated testing tools that enhance software development.
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 6

MODULE 2

Computer Software
Computer software is the set of instructions and data that allow a computer
system to perform specific tasks, control hardware components, and provide a
user-friendly interface.

Without software, computers would be mere collections of electronic circuits


and hardware components with no ability to execute useful functions.

There are two primary categories of computer software:

System Software: This type of software is responsible for managing the


fundamental operations of a computer system. Key components of system
software include:

 Operating Systems: Operating systems (OS) are the core software that
manages hardware resources and provides essential services. Examples
include Microsoft Windows, macOS, Linux, Android, and iOS. The OS is
responsible for tasks like memory management, file handling, and
providing a graphical user interface (GUI).
 Device Drivers: These are software components that facilitate
communication between the operating system and specific hardware
devices, such as printers, graphics cards, and network adapters. Device
drivers ensure that hardware functions correctly.
 Utility Programs: Utility software includes tools for tasks like disk
management, system optimization, antivirus protection, and backup.
Examples include disk cleanup utilities, antivirus software, and system
monitoring tools.

Application Software: Application software is designed to perform specific


1

tasks or provide services to end-users. These programs serve a wide range of


Page

©CSC121: Introduction to Problem Solving


purposes, from word processing to entertainment and productivity. Examples of
application software include:

 Word Processing Software: Applications like Microsoft Word, Google


Docs, and LibreOffice Writer allow users to create, edit, and format text
documents.
 Spreadsheet Software: Programs such as Microsoft Excel and Google
Sheets are used for creating and manipulating spreadsheets, performing
calculations, and visualizing data.
 Graphics and Multimedia Software: This category encompasses tools
like Adobe Photoshop (image editing), Adobe Premiere Pro (video
editing), and audio editing software like Audacity.
 Web Browsers: Web browsers like Google Chrome, Mozilla Firefox,
and Microsoft Edge enable users to access and interact with websites on
the internet.
 Gaming Software: Video games and gaming platforms, whether on PCs,
consoles, or mobile devices, fall under this category.

Software Suites
Software suites are collections of multiple software applications bundled
together as a single package. These suites are designed to provide users with a
comprehensive set of tools that are often related or interconnected, making it
easier to perform various tasks efficiently. Here's an expanded look at software
suites:

Microsoft Office Suite: Microsoft Office is one of the most well-known


software suites, comprising applications like:

 Microsoft Word: For word processing.


 Microsoft Excel: For spreadsheets and data analysis.
2
Page

 Microsoft PowerPoint: For creating presentations.

©CSC121: Introduction to Problem Solving


 Microsoft Outlook: For email and scheduling.
 Microsoft Access: For database management.
 Microsoft OneNote: For note-taking.

Software suites offer several advantages:


 Integration: Components within a suite are often designed to work
seamlessly together. For example, in Microsoft Office, you can easily
insert an Excel spreadsheet into a Word document or create PowerPoint
presentations from within Word.
 Consistency: Users can expect a consistent look and feel across different
applications in the same suite, which streamlines the learning process.
 Cost-Effective: Purchasing a suite can be more cost-effective than buying
individual software licenses for each application separately.
 Efficiency: Suites are designed to address a wide range of needs, making
them efficient for professionals who require multiple tools for their work.
 Updates and Compatibility: Software suites typically receive regular
updates and ensure that all applications within the suite remain
compatible with each other.

Generations and language translators


The evolution of programming languages can be categorized into several
generations, each representing a significant advancement in the field of
computer programming. Here's an overview of the generations of programming
languages:

First Generation (Machine Code): These are the lowest-level programming


languages that consist of binary code directly executable by the computer's
central processing unit (CPU). Programming in machine code is extremely
tedious and error-prone, as it involves using numeric codes for each instruction.
3
Page

©CSC121: Introduction to Problem Solving


First-generation languages consist of raw binary code that directly corresponds
to the machine's hardware instructions. Each instruction and memory address is
represented in numeric form.

Second Generation (Assembly Language): Assembly languages use symbolic


names and mnemonics to represent machine code instructions. Assembly
languages are still relatively low-level but provide a more human-readable way
to program. An assembler converts assembly code into machine code.
Assembly languages are symbolic representations of machine code instructions.
Instead of numeric codes, they use mnemonics and symbolic names for
instructions and memory locations.

Assembly languages are more human-readable and easier to work with


compared to machine code. They still offer relatively low-level control over
hardware.

Third Generation (High-Level Languages like C, Pascal): High-level


programming languages were developed to provide a more abstract and user-
friendly way to write code. They use English-like statements and allow
programmers to focus on the logic of their programs rather than the specific
hardware details. These languages require a compiler or interpreter to translate
the high-level code into machine code.
High-level languages are designed for ease of programming and readability.
They use English-like keywords and abstract away low-level hardware details.

High-level languages are portable across different platforms, making it easier to


write code once and run it on various systems. They also promote faster
development.

Fourth Generation (Database Query Languages): Fourth-generation


languages are specialized for database operations and often used for data
4
Page

©CSC121: Introduction to Problem Solving


manipulation and query purposes. They are designed to simplify database-
related tasks and are not as general-purpose as third-generation languages.
Fourth-generation languages are specialized for database operations. They
provide convenient tools and syntax for working with databases, making it
easier to manipulate and retrieve data.

They simplify complex database tasks, reducing the amount of code needed to
interact with databases.

Language Translators
Compiler: A compiler takes the entire source code written in a high-level
language and translates it into machine code all at once. This resulting machine
code is stored in an executable file.

Compiled programs tend to run faster because the translation step is performed
before execution, and the machine code can be optimized for performance.

Interpreter: An interpreter reads the source code line by line and translates
each line into machine code or an intermediate representation just before
execution. There's no separate machine code file generated.

Interpreters offer flexibility as changes to the code can be made and executed
immediately without recompilation. They are often used in scripting and
dynamic languages.

Programming Aids and Technology


In modern software development, programmers have access to various tools and
technologies that assist them in creating efficient and error-free programs. Some
of these aids and technologies include:

Integrated Development Environments (IDEs): IDEs provide a


comprehensive environment for software development. They typically include
5
Page

©CSC121: Introduction to Problem Solving


code editors, debuggers, compilers/interpreters, and project management tools,
making it easier for developers to write, test, and manage their code.

Version Control Systems (VCS): VCS tools like Git enable developers to
track changes to their code, collaborate with others, and revert to previous
versions if needed. This helps maintain code integrity and manage codebase
updates effectively.

Debugging Tools: Debuggers help programmers identify and rectify errors in


their code. They allow step-by-step execution, variable inspection, and
breakpoints to pinpoint issues.

Libraries and Frameworks: Libraries and frameworks provide pre-written


code modules and structures to simplify common programming tasks. They
save development time and promote code reuse.

Automated Testing Tools: Testing frameworks and tools automate the process
of testing software to ensure it functions correctly. This includes unit testing,
integration testing, and regression testing.

Code Editors: Code editors with syntax highlighting and auto-completion


features improve code readability and reduce errors. Popular code editors
include Visual Studio Code, Sublime

Text, and Atom.


6
Page

©CSC121: Introduction to Problem Solving

You might also like