software

Software

  • Definition: Instructions that tell a computer what to do, encompassing all programs, procedures, and routines that operate a computer system.

  • Origin of term: Coined to differentiate from hardware, which refers to physical components.

  • Types of Software:

    • System Software: Controls internal functioning via the operating system and manages peripherals (e.g., monitors, printers).

    • Application Software: Executes user commands, including programs like word processors, spreadsheets, and database management systems.

    • Network Software: Coordinates communication among linked computers in a network.

  • Storage: Typically stored on external devices (hard drives, magnetic diskettes) and loaded into RAM for execution.

  • Firmware: Software stored permanently in memory (ROM), also referred to as hard software.

Computer Programming Language

  • Definition: Languages used to express instructions for digital computers.

  • Execution Types:

    • Machine Language: Numeric form executed directly by the computer.

    • Assembly Language: A step up from machine language that uses mnemonic codes for operations.

    • High-Level Languages: Abstract away from machine details, offering readable code.

Machine and Assembly Languages

  • Machine Language: Consists of binary digits (bits), difficult for human readability, varies by computer.

  • Assembly Language: Short mnemonics replace binary codes, making it simpler to write, though still close to machine operations.

High-Level Languages

  • Algorithmic Languages: Designed for math and computations, e.g., FORTRAN (first algorithmic language).

  • Examples:

    • FORTRAN: Focused on scientific calculations with structures like IF statements and loops.

    • ALGOL: Introduced block structures and influenced future languages.

Business-Oriented Languages

  • COBOL: Designed for business data processing, using English-like syntax and record structures.

  • SQL: Used for database management and queries.

  • BASIC: Aimed at beginners, allowing interactive programming.

  • Pascal: Designed for structured programming education, stated data types and clarity.

Object-Oriented Languages

  • Definition: Manage complexity through objects that encapsulate data and operations.

  • Key Examples:

    • Simula: Introduced concepts of objects and classes.

    • C++: Combines high performance with object-oriented features; widely used.

    • Java: Object-oriented, designed for web applications and app portability, utilizing a virtual machine.

Declarative Languages

  • Definition: Focus on what to accomplish rather than how (e.g., SQL for database queries, PROLOG for logical relations).

Scripting Languages

  • Definition: Easier languages for smaller tasks, frequently employed for automation and web-related tasks.

Document and Formatting Languages

  • TeX: Formatting language that embedded commands for document layout.

  • PostScript: Page-description language for precise document representation.

Web Technologies

  • HTML: Markup language to create web pages with textual data and hyperlinks.

  • XML: More flexible than HTML, allowing custom tags and extensive data structuring.

  • Web Scripting: Languages like JavaScript enhance interactivity on web pages.

Control Structures in Programming

  • Key Concepts:

    • Sequence: Steps executed in order.

    • Conditional: Executes different paths based on conditions.

    • Iterative: Repeats sections of code (loops).

Data Structures

  • Definition: Organized ways to store data, ranging from simple types (e.g., integers) to complex types like arrays and records.

  • Abstract Data Types (ADTs): Bind data and operations while providing user-friendly access to internal workings.

SoftwareDefinition: Instructions that tell a computer what to do, encompassing all programs, procedures, and routines that operate a computer system.Origin of Term: Coined to differentiate from hardware, which refers to physical components.

Types of Software:

  • System Software: Controls internal functioning via the operating system and manages peripherals (e.g., monitors, printers).

  • Application Software: Executes user commands, including programs like word processors, spreadsheets, and database management systems.

  • Network Software: Coordinates communication among linked computers in a network.

  • Storage: Typically stored on external devices (hard drives, magnetic diskettes) and loaded into RAM for execution.

  • Firmware: Software stored permanently in memory (ROM), also referred to as hard software.

Computer Programming LanguageDefinition: Languages used to express instructions for digital computers.

Execution Types:

  • Machine Language: Numeric form executed directly by the computer.

  • Assembly Language: A step up from machine language that uses mnemonic codes for operations.

  • High-Level Languages: Abstract away from machine details, offering human-readable code.

Machine and Assembly Languages:

  • Machine Language: Consists of binary digits (bits), difficult for human readability, varies by computer.

  • Assembly Language: Short mnemonics replace binary codes, simplifying program writing, yet remains close to machine operations.

High-Level Languages:

  • Algorithmic Languages: Designed for math and computations, e.g., FORTRAN (first algorithmic language).

  • Examples:

    • FORTRAN: Focused on scientific calculations with structures like IF statements and loops.

    • ALGOL: Introduced block structures and influenced future programming languages.

  • Business-Oriented Languages:

    • COBOL: Designed for business data processing, using English-like syntax.

    • SQL: Used for database management and queries.

    • BASIC: Aimed at beginners, allowing interactive programming.

    • Pascal: Encouraged structured programming education, featuring stated data types and clarity.

Object-Oriented Languages:Definition: Manage complexity through objects encapsulating data and operations.Key Examples:

  • Simula: Introduced concepts of objects and classes.

  • C++: Combines high performance with object-oriented features; widely used.

  • Java: Object-oriented, designed for web applications and app portability, utilizing a virtual machine.

Declarative Languages:Definition: Focus on what to accomplish rather than how, e.g., SQL for database queries.

Scripting Languages:Definition: Easier languages for smaller tasks, often used for automation and web-related tasks.

Document and Formatting Languages:

  • TeX: Formatting language incorporating commands for document layout.

  • PostScript: Page-description language for precise document depiction.

Web Technologies:

  • HTML: Markup language to create web pages with textual data and hyperlinks.

  • XML: More flexible than HTML, allowing custom tags and extensive data structuring.

  • Web Scripting: Languages like JavaScript enhance interactivity on web pages.

Control Structures in Programming:Key Concepts:

  • Sequence: Steps executed in order.

  • Conditional: Executes different paths based on conditions.

  • Iterative: Repeats parts of code (loops).

Data Structures:Definition: Organized methods to store data, ranging from simple types to complex types like arrays and records.

  • Abstract Data Types (ADTs): Bind data and operations while providing user-friendly access to internal workings.