Key Software Concepts for IGCSE Computer Science

  • Definition of Software: A set of instructions in a programming language that performs tasks, directing the computer's actions.

  • Types of Software:

    • System Software: Essential programs for a computer's operation.
    • Examples:
      • Basic Input Output System (BIOS): Installed in ROM; initializes hardware components.
      • Operating Systems (OS): Such as Windows, macOS, Android, and iOS.
      • Device Drivers: Allow communication between hardware and the OS.
      • Compilers: Convert high-level language to machine code.
      • Utilities Software: Tools for maintenance tasks (e.g., virus checkers, backup software).
    • Application Software: User-focused programs for specific tasks (e.g., word processors, spreadsheets).
  • Interfaces:

    • Human Computer Interface (HCI): Methods for users to interact with computers, including:
    • Command Line Interface (CLI): Users type commands.
    • Graphical User Interface (GUI): Uses icons and windows.
    • Voice Command Interface: Interaction via voice (e.g., smart speakers).
  • Operating System Functions:

    • Manages hardware resources and performs essential functions such as memory management and user account management.
    • Supports multitasking, allowing multiple processes to run simultaneously.
  • Programming Languages:

    • High-Level Languages: Easier to read, requiring translation to machine code. More practical for human understanding.
    • Low-Level Languages: Closer to machine code, often harder to debug but provide more control over hardware.
    • Translators: Include compilers, interpreters (line-by-line execution), and assemblers. They convert source code to machine code and generate error reports.
  • Interrupts: Signals that inform the OS of events needing immediate attention, allowing multitasking and efficient execution management.