editor
tutorials
tutorials
algorithms & data structures
help
challenges
pseudocode
sql
monthly
exam qs
questions
past papers
resources
tutorials
algorithms & data structures
slides
homework
past papers
data
grade thresholds
PSEUDOCODE
PRO
download
search
buy ($2)
contact
account
login/signup
my favourites
Computer Science AS & A-Level 9618 Definitions
--- Chapter 1: Information Representation --- Kibi A binary prefix representing 2^10 (1024) units. Used to quantify digital information in a way consistent with binary-based computing systems, in contrast to kilo which represents 1000 units in the decimal system. Kilo A decimal prefix representing 10^3 (1000) units. Commonly used in metric measurements and occasionally in computing, but differs from kibi when quantifying binary memory sizes. Mebi A binary prefix representing 2^20 (1,048,576) units. Often used to express memory capacity in binary systems and avoids ambiguity with the decimal prefix mega. Mega A decimal prefix representing 10^6 (1,000,000) units. Used in contexts like data transfer rates and storage specifications. Gibi A binary prefix representing 2^30 (1,073,741,824) units. Used to describe memory and storage in a binary-compliant manner. Giga A decimal prefix representing 10^9 (1,000,000,000) units. Common in metrics such as processor speed or file sizes in a decimal system context. Tebi A binary prefix representing 2^40 (1,099,511,627,776) units. Primarily used in large-scale memory capacity descriptions. Tera A decimal prefix representing 10^12 (1,000,000,000,000) units. Used in storage specifications or data volume estimates. Binary A number system using only two digits, 0 and 1, to represent values. Fundamental to digital electronics and computing systems. Denary A base-10 number system, using digits 0 through 9, commonly used in everyday human counting. Hexadecimal A base-16 number system using digits 0-9 and letters A-F to represent values. Frequently used to represent binary data compactly. Binary Coded Decimal (BCD) A form of binary representation where each decimal digit is encoded as its own 4-bit binary sequence. Often used in digital clocks, calculators, and financial systems. One's Complement A method of representing negative binary numbers by inverting all bits of the positive number. Enables simple binary subtraction but has two representations of zero. Two's Complement A method of representing negative binary numbers where the negative value is formed by inverting all bits of the positive number and adding one. Common in modern computer arithmetic. Overflow A condition in binary arithmetic where the result of an operation exceeds the maximum value that can be represented with the available number of bits. Can lead to incorrect calculations if not detected. ASCII American Standard Code for Information Interchange; a character encoding standard using 7 or 8 bits to represent text and control characters in computers. Extended ASCII An 8-bit extension of ASCII allowing 256 possible characters, including additional symbols, letters with accents, and graphic symbols. Unicode A universal character encoding standard capable of representing text from almost all writing systems using variable-length code units. Pixel The smallest controllable element of a bitmap image, representing a single point of color on a display. File Header Metadata at the beginning of a bitmap image file storing information about the file type, size, dimensions, and color depth. Essential for correctly interpreting the image data. Image Resolution The number of pixels displayed in each dimension of an image, typically measured in width × height. Higher resolution generally improves image quality but increases file size. Screen Resolution The number of pixels a display device can show horizontally and vertically. Affects how an image or video is rendered on the screen. Colour Depth / Bit Depth The number of bits used to represent the color of a single pixel in a bitmap image. Higher bit depth allows more colors and more detailed images. Drawing Object An individual shape or line in a vector graphic, such as a circle, rectangle, or path. Each object has properties that define its appearance. Property A characteristic of a drawing object in a vector graphic, such as color, line thickness, or fill style. Drawing List A structured list of drawing objects and their properties in a vector graphic file. Determines how the image is rendered. Sampling The process of measuring the amplitude of an analogue signal at discrete intervals to convert it into digital form. Sampling Rate The number of samples taken per second when digitizing an analogue signal, measured in hertz (Hz). Higher rates increase accuracy and file size. Sampling Resolution The number of bits used to record each sample in digital audio. Higher resolution improves sound quality but increases file size. Analogue Data Continuous data that can take any value within a range, such as sound waves. Digital Data Discrete data represented using binary numbers. Easier to process, store, and transmit reliably in computer systems. Lossy Compression A compression method that reduces file size by permanently removing some data. Used for images, audio, and video where perfect fidelity is not required. Lossless Compression A compression method that reduces file size without losing any data, allowing the original file to be perfectly reconstructed. Run-Length Encoding (RLE) A simple lossless compression technique that stores consecutive repeated values as a single value and count. Often used in bitmap images with large areas of uniform color. --- Chapter 2: Communication --- Local Area Network (LAN) A network that connects computers and devices within a limited geographical area, such as a building or campus. LANs typically offer high data transfer speeds, low latency, and shared resources like printers and file servers. Wide Area Network (WAN) A network that spans a large geographical area, often connecting multiple LANs via leased lines, satellite links, or the internet. WANs enable remote communication but usually have higher latency and lower data transfer speeds than LANs. Client-Server Model A network model where one or more central servers provide resources and services to client computers. Centralized management simplifies security and backup, but the server can become a bottleneck. Peer-to-Peer Model A network model where all computers have equal status and can act as both clients and servers. Simplifies setup for small networks but may have security and management challenges. Thin Client A client computer that relies on a server to perform most processing tasks. Requires less powerful hardware and reduces maintenance costs but depends on network connectivity. Thick Client A client computer that performs processing locally, reducing dependency on the server. Provides better performance for some applications but requires more powerful hardware and maintenance. Bus Topology A network layout where all devices are connected to a single central cable (bus). Simple and cost-effective but prone to collisions and difficult to troubleshoot if the main cable fails. Star Topology A network layout where all devices connect to a central hub or switch. Easy to manage and isolate faults, but if the central hub fails, the network is disrupted. Mesh Topology A network layout where each device is connected to multiple other devices. Provides high redundancy and reliability but is expensive to implement due to many connections. Hybrid Topology A network layout that combines two or more different topologies, such as star and mesh, to leverage the advantages of each while minimizing drawbacks. Cloud Computing A model for delivering computing resources over the internet. Public clouds are accessible to anyone, while private clouds are restricted to an organization. Benefits include scalability and reduced infrastructure costs; drawbacks include potential security concerns. Wired Network A network that uses physical cables, such as copper or fibre-optic, to connect devices. Generally provides high speed and reliability but is less flexible than wireless networks. Wireless Network A network that uses radio waves or other wireless methods to connect devices. Offers mobility and flexibility but can be affected by interference and security vulnerabilities. Copper Cable A traditional wired medium made of copper wires, commonly used in Ethernet networks. Susceptible to electromagnetic interference and has distance limitations. Fibre-Optic Cable A wired medium using glass or plastic fibers to transmit data as light. Offers very high speeds, low latency, and long-distance transmission capability. Radio Waves (including WiFi) Wireless electromagnetic waves used to transmit data over short to medium distances. WiFi is a common standard for wireless LANs. Microwaves High-frequency electromagnetic waves used for point-to-point wireless communication over longer distances. Requires line-of-sight transmission. Satellites Orbiting devices that relay data for long-distance wireless communication, enabling connectivity in remote or global locations. Switch A network device that connects devices within a LAN and forwards data only to the intended recipient using MAC addresses. Reduces collisions compared to hubs. Server A computer that provides resources, services, or applications to clients in a network. Can host files, databases, websites, or other services. Network Interface Card (NIC) A hardware component that allows a computer to connect to a network, either wired or wireless. Wireless Network Interface Card (WNIC) A NIC that enables a computer to connect to a wireless network. Wireless Access Point (WAP) A device that allows wireless devices to connect to a wired network, often acting as a bridge between wireless clients and a LAN. Bridge A network device that connects and filters traffic between two network segments, reducing collisions and improving performance. Repeater A device that regenerates and amplifies signals to extend the transmission distance of a network. Router A device that forwards data packets between networks, directing traffic based on IP addresses. Connects LANs to WANs or the internet. Ethernet A common LAN technology that defines wiring, signaling, and data frames. Uses Carrier Sense Multiple Access with Collision Detection (CSMA/CD) to manage collisions. Carrier Sense Multiple Access / Collision Detection (CSMA/CD) A protocol used in Ethernet networks to detect and manage data collisions. Devices listen before transmitting and retransmit if a collision occurs. Bit Streaming The continuous transmission of digital data, such as audio or video, over a network. Can be real-time (live) or on-demand (stored content). Bit Rate The amount of data transmitted per second in a bit stream, typically measured in kbps or Mbps. Higher bit rates provide better quality but require more bandwidth. Broadband High-speed internet access capable of supporting multiple data streams simultaneously. Essential for effective bit streaming. World Wide Web (WWW) A system of interlinked hypertext documents accessed via the internet. Uses URLs and web browsers to retrieve and display content. Internet A global network of interconnected computer networks that use the Internet Protocol (IP) to communicate. Provides the infrastructure for services like email, file transfer, and the WWW. Modem A device that modulates and demodulates signals to enable digital data transmission over analog communication lines, such as telephone networks. Public Switched Telephone Network (PSTN) A global circuit-switched telephone network that provides traditional voice and data communication. Dedicated Line A leased telecommunications line that provides a fixed, private connection between two locations. Offers high reliability and consistent bandwidth. Cell Phone Network A wireless communication system that allows mobile devices to connect via radio waves to nearby base stations, providing voice and data services. IP Address A numerical label assigned to each device on a network, identifying its location and enabling data routing. IPv4 uses 32 bits, while IPv6 uses 128 bits. Subnetting The process of dividing a network into smaller sub-networks (subnets) to improve organization, performance, and security. Public IP Address An IP address that is globally unique and accessible over the internet. Allows external devices to communicate with the host but may pose security risks. Private IP Address An IP address used within a local network, not routable on the public internet. Provides internal communication and enhances security. Static IP Address An IP address that is manually assigned and remains constant over time. Useful for servers or devices that need a fixed address. Dynamic IP Address An IP address that is automatically assigned by a DHCP server and can change over time. Simplifies management but may require updating DNS records. Uniform Resource Locator (URL) A human-readable address used to locate resources on the WWW. Specifies the protocol, domain name, and path to the resource. Domain Name Service (DNS) A system that translates human-readable domain names into IP addresses, enabling devices to locate and communicate with each other over the internet. --- Chapter 3: Hardware --- Input Device A hardware device used to provide data and control signals to a computer system, allowing users or other systems to interact with the computer. Examples include keyboards, mice, microphones, and touchscreens. Output Device A hardware device that conveys information from a computer to the user or another system. Examples include monitors, printers, speakers, and virtual reality headsets. Primary Memory The main memory of a computer system, used to store data and instructions that the CPU can access quickly. Includes RAM (volatile) and ROM (non-volatile). Secondary Storage Non-volatile storage used to store data and programs long-term. Includes hard disks, solid-state drives (SSD), optical discs, and removable media such as USB drives. Removable Storage Secondary storage that can be easily removed and transported, such as CDs, DVDs, Blu-ray discs, and USB flash drives. Embedded System A computer system designed to perform dedicated functions within a larger system. Benefits include efficiency, reliability, and low cost; drawbacks include limited flexibility and upgradeability. Laser Printer An output device that uses a laser beam to produce high-quality text and graphics on paper. Works by selectively applying toner to a photoreceptor drum, which is then transferred to paper. 3D Printer An output device that creates three-dimensional objects by adding material layer by layer based on digital models. Used in prototyping, manufacturing, and medical applications. Microphone An input device that converts sound waves into electrical signals for recording or processing by a computer. Speakers An output device that converts electrical audio signals into sound waves audible to humans. Magnetic Hard Disk A secondary storage device that stores data magnetically on rotating platters. Provides large storage capacity and reasonably fast access times. Solid State (Flash) Memory A non-volatile storage medium using flash memory chips. Faster, more durable, and energy-efficient than magnetic storage, commonly used in SSDs and USB drives. Optical Disc Reader/Writer A device that reads from and writes data to optical discs using laser technology. Includes CD, DVD, and Blu-ray drives. Touchscreen An input and output device that allows users to interact directly with a display by touching it, detecting gestures and providing visual feedback. Virtual Reality Headset An output device that provides immersive visual and auditory experiences for virtual reality applications, often including motion tracking sensors. Buffer A temporary storage area used to hold data while it is being transferred between devices or processes, helping to manage differences in speed and data flow. Random Access Memory (RAM) Volatile memory used to store data and programs currently in use by the CPU. Provides fast read/write access and is cleared when the system is powered off. Read Only Memory (ROM) Non-volatile memory that stores permanent instructions and data, such as firmware. Cannot be easily modified under normal operation. Static RAM (SRAM) A type of RAM that uses flip-flop circuits to store each bit. Faster and more reliable than DRAM, commonly used in CPU caches, but more expensive and larger in size. Dynamic RAM (DRAM) A type of RAM that stores each bit in a capacitor. Requires periodic refreshing to maintain data, slower than SRAM but cheaper and suitable for main memory. Programmable ROM (PROM) A type of ROM that can be programmed once after manufacture. Data cannot be modified afterward. Erasable Programmable ROM (EPROM) A type of ROM that can be erased by exposure to UV light and reprogrammed multiple times. Electrically Erasable Programmable ROM (EEPROM) A type of ROM that can be electrically erased and reprogrammed, allowing selective updates without removing the chip. Monitoring System A system that collects and records data from sensors to observe and track conditions, such as temperature, pressure, or sound, without directly controlling outputs. Control System A system that uses sensor input to automatically regulate outputs via actuators, maintaining desired conditions. Often includes feedback loops. Sensor A device that detects and measures physical quantities such as temperature, pressure, infrared radiation, or sound, converting them into electrical signals. Actuator A device that performs actions in response to control signals, such as moving a motor, opening a valve, or displaying information. Feedback Information from a system output that is used to adjust or control subsequent system behavior to maintain desired performance. Logic Gate A digital circuit component that performs a basic logical function (e.g., NOT, AND, OR, NAND, NOR, XOR) on one or more binary inputs to produce a single output. NOT Gate A logic gate that inverts its input. Output is 1 if input is 0, and output is 0 if input is 1. AND Gate A logic gate with two inputs that outputs 1 only if both inputs are 1; otherwise, the output is 0. OR Gate A logic gate with two inputs that outputs 1 if at least one input is 1; outputs 0 only if both inputs are 0. NAND Gate A logic gate that outputs the inverse of the AND gate. Outputs 0 only if both inputs are 1; otherwise, outputs 1. NOR Gate A logic gate that outputs the inverse of the OR gate. Outputs 1 only if both inputs are 0; otherwise, outputs 0. XOR (Exclusive OR) Gate A logic gate that outputs 1 if exactly one of the two inputs is 1; outputs 0 if both inputs are the same. Truth Table A table that lists all possible input combinations to a logic circuit and the corresponding output for each combination. Logic Circuit A diagrammatic representation of interconnected logic gates that implements a specific Boolean function or solves a problem. Logic Expression A mathematical representation of a logic function using symbols for AND, OR, NOT, and other logical operators. --- Chapter 4: Processor Fundamentals --- Von Neumann Architecture A computer architecture where both instructions and data are stored in the same memory and executed sequentially. Stored Program Concept The idea that program instructions and data are stored in memory and can be accessed by the CPU. Register A small, fast storage location in the CPU used to hold data temporarily during processing. General-Purpose Register A CPU register used to store data or intermediate results temporarily during instruction execution. Special-Purpose Register A CPU register dedicated to a specific function within the CPU. Program Counter (PC) A special-purpose register that holds the address of the next instruction to fetch from memory. Memory Data Register (MDR) A register that temporarily stores data being transferred to or from memory. Memory Address Register (MAR) A register that stores the memory address of the data to be accessed. Accumulator (ACC) A register that holds intermediate arithmetic and logic results. Index Register (IX) A register used to modify operand addresses, commonly for arrays or tables. Current Instruction Register (CIR) A register that holds the instruction currently being decoded and executed. Status Register A register containing flags that reflect the results of operations such as zero, carry, or overflow. Arithmetic and Logic Unit (ALU) The CPU component that performs arithmetic and logic operations on data. Control Unit (CU) The CPU component that manages and coordinates the flow of data and instructions in the computer. System Clock A device that generates regular timing pulses to synchronize CPU operations. Immediate Access Store (IAS) Primary memory within the CPU for storing instructions and data for fast access. Address Bus A set of lines that transmits memory addresses from the CPU to memory or I/O devices. Data Bus A set of lines that transmits actual data between CPU, memory, and peripherals. Control Bus A set of lines that carries control signals between CPU and other components. Processor Type The specific design or family of a CPU, affecting performance and capabilities. Number of Cores The count of independent processing units within a CPU, enabling parallel execution. Bus Width The number of bits transmitted simultaneously over a bus, affecting data transfer speed. Clock Speed The frequency at which a CPU executes instructions, measured in hertz. Cache Memory Small, fast memory near the CPU storing frequently used data to reduce access time. Universal Serial Bus (USB) A standard interface for connecting peripheral devices to a computer. High Definition Multimedia Interface (HDMI) A digital interface for transmitting high-quality audio and video signals. Video Graphics Array (VGA) An analog interface for connecting monitors to computers for video output. Fetch-Execute Cycle The sequence of steps where the CPU fetches an instruction, decodes it, executes it, and stores the result. Register Transfer Notation (RTN) A way to describe data movement between registers and memory during the fetch-execute cycle. Interrupt A signal that temporarily halts program execution so the CPU can respond to an event. Interrupt Service Routine (ISR) A program that executes in response to an interrupt to handle the event. Assembly Language A low-level programming language using mnemonic codes that correspond to machine code instructions. Machine Code Binary instructions executed directly by the CPU. Two-Pass Assembler An assembler that processes code in two passes: first to build a symbol table, then to generate machine code. Data Movement Instruction An instruction that transfers data between registers, memory, or I/O devices. Input and Output Instruction An instruction that reads data from or writes data to input/output devices. Arithmetic Operation Instruction An instruction that performs mathematical calculations. Unconditional Instruction An instruction that causes the program to jump to a different address without conditions. Conditional Instruction An instruction that causes the program to jump only if a specific condition is met. Compare Instruction An instruction that compares two values and sets status flags based on the result. Immediate Addressing An addressing mode where the operand value is specified directly in the instruction. Direct Addressing An addressing mode where the instruction specifies the memory address of the operand. Indirect Addressing An addressing mode where the instruction specifies a memory location that contains the address of the operand. Indexed Addressing An addressing mode where the effective address is determined by adding an index register value to a base address. Relative Addressing An addressing mode where the operand address is specified as an offset from the current instruction address. Binary Shift An operation that moves the bits of a binary number left or right by a specified number of positions. Logical Shift A shift where zeros are shifted into vacant bit positions, without preserving the sign. Arithmetic Shift A shift that preserves the sign of a signed number; left shift multiplies by 2, right shift divides by 2. Cyclic Shift A shift where bits shifted out from one end are reintroduced at the opposite end. Left Shift A binary shift moving bits to more significant positions. Right Shift A binary shift moving bits to less significant positions. Bit Masking A technique using a mask and bitwise operators to manipulate specific bits in a number. Test a Bit A bit operation that checks the value of a specific bit using a mask. Set a Bit A bit operation that changes a specific bit to 1 using a mask. Monitor Device (Bit Manipulation) Using bit operations to read status flags or sensor values from hardware. Control Device (Bit Manipulation) Using bit operations to modify bits in control registers to change hardware behavior. --- Chapter 5: System Software --- Operating System (OS) Software that manages computer hardware and provides services for application programs. Memory Management The OS task of allocating, tracking, and freeing memory to ensure efficient use of RAM and prevent conflicts between programs. File Management The OS task of organizing, storing, retrieving, and securing files on storage devices. Security Management The OS task of protecting data, programs, and resources from unauthorized access or damage. Hardware Management The OS task of controlling and coordinating input/output devices and other peripherals. Process Management The OS task of scheduling, executing, and terminating processes to ensure efficient CPU utilization. Utility Software Software provided with an OS to perform specific maintenance or optimization tasks. Disk Formatter Utility software that prepares a storage device for use by creating a file system. Virus Checker Utility software that detects, prevents, and removes malicious software. Defragmentation Software Utility software that reorganizes fragmented data on a storage device to improve performance. Disk Contents Analysis / Disk Repair Software Utility software that analyzes storage devices for errors and repairs corrupted areas. File Compression Software Utility software that reduces the size of files for storage or transmission efficiency. Backup Software Utility software that copies data to prevent loss in case of system failure. Program Library A collection of pre-written code that can be reused in software development to save time and improve reliability. Dynamic Link Library (DLL) A type of program library containing code and data that can be used by multiple programs simultaneously. Assembler Software that translates assembly language programs into machine code. Compiler Software that translates a high-level programming language into machine code, creating an executable program. Interpreter Software that translates and executes high-level programming code line by line. Compiler Advantage Executes programs faster since code is precompiled into machine code. Compiler Disadvantage Debugging is slower because errors are only detected after compilation. Interpreter Advantage Allows immediate execution and easier debugging since code is executed line by line. Interpreter Disadvantage Programs run slower because translation occurs during execution. Partially Compiled/Interpreted Programs Programs, such as Java in console mode, that use both compilation and interpretation for execution. Integrated Development Environment (IDE) Software providing tools for writing, testing, and debugging programs in one application. IDE Coding Features Tools like syntax highlighting and context-sensitive prompts that assist with writing code. IDE Error Detection Features Tools that detect syntax errors dynamically while coding. IDE Presentation Features Tools that improve code readability, such as pretty print and collapsing/expanding code blocks. IDE Debugging Features Tools for monitoring program execution, including single stepping, breakpoints, and variable inspection. --- Chapter 6: Security, Privacy and Data Integrity --- Data Security Measures and practices designed to protect computer systems and data from unauthorized access, damage, or theft. Privacy The right or condition of keeping personal or sensitive data protected from unauthorized access or disclosure. Data Integrity The accuracy, consistency, and reliability of data throughout its lifecycle. User Account A unique identifier that allows access to a computer system, often associated with authentication credentials. Password A secret string of characters used to authenticate a user and restrict access to a system. Authentication The process of verifying the identity of a user or device, using methods such as passwords, digital signatures, or biometrics. Digital Signature A cryptographic method for verifying the authenticity and integrity of digital data or documents. Biometrics Authentication techniques based on unique biological characteristics, such as fingerprints, facial recognition, or iris scans. Firewall A security system that monitors and controls incoming and outgoing network traffic based on predetermined rules. Anti-Virus Software Software designed to detect, prevent, and remove malicious programs such as viruses and malware. Anti-Spyware Software Software designed to detect and remove spyware, protecting user privacy and system security. Encryption The process of converting data into a coded form to prevent unauthorized access. Malware Malicious software intended to disrupt, damage, or gain unauthorized access to a computer system. Examples include viruses and spyware. Virus A type of malware that attaches to programs or files and spreads when executed. Spyware Malicious software that secretly monitors and collects information about users’ activities. Hacker An individual who attempts to gain unauthorized access to computer systems. Phishing A fraudulent attempt to obtain sensitive information by pretending to be a trustworthy entity, typically via email. Pharming A cyberattack that redirects users from legitimate websites to fraudulent ones to steal information. Access Rights Permissions assigned to users or groups specifying which resources they can view, modify, or execute. Data Validation Techniques used to ensure data entered into a system meets defined criteria and is sensible. Range Check A data validation method that ensures numeric input falls within a predefined minimum and maximum range. Format Check A data validation method that ensures input matches a required pattern or format, such as dates or email addresses. Length Check A validation method that ensures input contains the required number of characters. Presence Check A validation method that ensures a required field is not left empty. Existence Check A validation method that ensures input corresponds to a value that exists in a defined set, such as a database. Limit Check A validation method that ensures input does not exceed predefined upper or lower limits. Check Digit A digit added to data, typically numbers, to detect errors during data entry or transmission. Data Verification Methods used to ensure that data has been entered or transferred correctly. Visual Check A data verification method where the user visually compares the entered data to the source. Double Entry A verification method where data is entered twice and compared to detect errors. Parity Check (Byte and Block) A data verification method using a parity bit to detect errors in transmitted bytes or blocks of data. Checksum A data verification method that computes a value based on data contents to detect errors during transfer. --- Chapter 7: Ethics and Ownership --- Ethics in Computing The principles guiding professional and responsible behaviour in the use of technology. Professional Ethical Body An organization that promotes ethical standards and best practices for computing professionals, such as BCS or IEEE. BCS (British Computer Society) A professional body for IT practitioners in the UK that promotes ethical and professional standards. IEEE (Institute of Electrical and Electronic Engineers) A global professional association for electronic and electrical engineers promoting ethical practice and technical standards. Acting Ethically Making decisions and performing actions that conform to moral and professional standards in computing. Acting Unethically Making decisions or performing actions that violate moral, legal, or professional standards, potentially causing harm. Copyright Legislation Laws that protect the intellectual property rights of creators, including software, preventing unauthorized copying or distribution. Software Licence A legal agreement that specifies the permissions and restrictions for using software. Free Software Foundation Licence A licence that allows software to be freely used, modified, and distributed. Open Source Initiative Licence A licence that allows access to source code and the right to modify and share software under defined conditions. Shareware Licence A licence that allows users to try software for free before purchasing a full version. Commercial Software Licence A licence that requires payment to use the software legally, often with restrictions on copying or redistribution. Artificial Intelligence (AI) The simulation of human intelligence by computers, including learning, reasoning, problem-solving, and decision-making. AI Applications Practical uses of AI in areas such as healthcare, finance, robotics, autonomous vehicles, and data analysis. AI Impact (Social) The influence of AI on society, including changes in employment, privacy, and accessibility. AI Impact (Economic) The effect of AI on economies, productivity, job markets, and business operations. AI Impact (Environmental) The consequences of AI technologies on the environment, including energy consumption and resource usage. --- Chapter 8: Databases --- File-Based Approach A method of storing data in individual files for each application, leading to redundancy and inconsistency. Relational Database A database that stores data in tables with defined relationships to reduce redundancy and improve data integrity. Entity An object or concept about which data is stored, represented as a table. Table A collection of records in a database representing a single entity type. Record A row in a database table containing data for one instance of an entity. Field A single piece of data in a record corresponding to an attribute of the entity. Tuple Another term for a record in a relational database. Attribute A characteristic or property of an entity, stored as a field. Primary Key A field or set of fields that uniquely identifies each record in a table. Candidate Key A field or set of fields that could serve as a primary key. Secondary Key A field used for searching or indexing that does not uniquely identify records. Foreign Key A field in one table linking to the primary key in another table to enforce a relationship. Relationship An association between tables, such as one-to-one, one-to-many, or many-to-many. One-to-One Relationship A relationship where one record in a table corresponds to one record in another table. One-to-Many Relationship A relationship where one record in a table corresponds to multiple records in another table. Many-to-Many Relationship A relationship where multiple records in one table correspond to multiple records in another table. Referential Integrity A rule ensuring foreign keys always refer to valid primary key values. Indexing A database technique to speed up searches by creating an index on a field. Entity-Relationship (E-R) Diagram A visual representation of entities, attributes, and relationships in a database. Normalisation The process of organizing tables to reduce redundancy and ensure data integrity. First Normal Form (1NF) A table format where all fields are atomic and each record is unique. Second Normal Form (2NF) A table format where all non-key attributes depend on the entire primary key. Third Normal Form (3NF) A table format where all non-key attributes are independent of other non-key attributes. Normalised Database Design A database design that follows 1NF, 2NF, and 3NF rules. Database Management System (DBMS) Software that manages databases, providing features such as data management, security, and querying. Data Dictionary A component of a DBMS that stores metadata about the database structure and its fields. Data Modelling The process of defining how data is structured and related within a DBMS. Logical Schema The logical design of a database showing tables, fields, and relationships. Data Integrity (DBMS) Ensuring the accuracy and consistency of data through constraints and validation rules. Data Security (DBMS) The protection of data in a DBMS using access rights, authentication, and backup procedures. Developer Interface A DBMS tool that allows developers to interact with the database for design and management. Query Processor A DBMS tool that interprets and executes database queries. Data Definition Language (DDL) A subset of SQL used by a DBMS to define and modify database structures. Data Manipulation Language (DML) A subset of SQL used to query, insert, update, and delete data in a database. Structured Query Language (SQL) The industry-standard language for defining, managing, and manipulating relational databases. CREATE DATABASE An SQL command to create a new database. CREATE TABLE An SQL command to define a new table and its fields with data types. CHARACTER A SQL data type used to store fixed-length text strings. VARCHAR(n) A SQL data type used to store variable-length text strings up to n characters. BOOLEAN A SQL data type representing TRUE or FALSE values. INTEGER A SQL data type for whole numbers. REAL A SQL data type for decimal numbers. DATE A SQL data type for calendar dates. TIME A SQL data type for time values. ALTER TABLE An SQL command to modify an existing table structure. PRIMARY KEY (field) An SQL statement to define a field as the primary key of a table. FOREIGN KEY (field) REFERENCES Table(Field) An SQL statement to define a field as a foreign key linking to another table. SELECT... FROM An SQL query to retrieve data from one or more tables. WHERE An SQL clause used to filter query results based on conditions. ORDER BY An SQL clause used to sort query results by specified fields. GROUP BY An SQL clause used to group query results based on specified fields. INNER JOIN An SQL operation to combine rows from two tables based on a related column. SUM An SQL function that calculates the total of a numeric column. COUNT An SQL function that counts the number of rows in a dataset. AVG An SQL function that calculates the average value of a numeric column. INSERT INTO An SQL command to add new records to a table. DELETE FROM An SQL command to remove records from a table. UPDATE An SQL command to modify existing records in a table. --- Chapter 9: Algorithm Design and Problem-Solving --- Abstraction The process of simplifying a system by focusing only on essential details and ignoring irrelevant information. Purpose of Abstraction To reduce complexity, improve understanding, and facilitate problem-solving by highlighting the key features of a system. Abstract Model A simplified representation of a system containing only essential details, used for analysis or design. Decomposition Breaking a complex problem into smaller, more manageable sub-problems or modules. Program Module A self-contained unit of a program, such as a procedure or function, designed to solve a specific sub-problem. Algorithm A step-by-step procedure or set of rules for solving a problem. Identifier A name used to represent data or variables within an algorithm or program. Identifier Table A table documenting identifiers, their data types, and their purpose in an algorithm. Pseudocode A structured, human-readable description of an algorithm using keywords, indentation, and simple statements. Input (Pseudocode) Statements in pseudocode that read or accept data from a user or another system. Process (Pseudocode) Statements in pseudocode that manipulate, calculate, or transform data. Output (Pseudocode) Statements in pseudocode that display or return results from a program or algorithm. Sequence (Construct) The execution of instructions in the exact order in which they appear. Selection (Construct) A decision-making construct in an algorithm that executes different instructions based on a condition (e.g., IF...ELSE). Iteration (Construct) A repetition construct in an algorithm that repeatedly executes a set of instructions (e.g., WHILE, FOR). Structured English Description A clear, plain-language description of an algorithm using structured sentences and indentation. Flowchart A diagrammatic representation of an algorithm using standard symbols to depict processes, decisions, inputs, and outputs. Write Pseudocode from Structured English Converting a structured English description of an algorithm into pseudocode statements. Write Pseudocode from Flowchart Translating the steps represented in a flowchart into pseudocode. Draw Flowchart from Structured English Creating a flowchart that represents the logic described in structured English. Draw Flowchart from Pseudocode Creating a flowchart that represents the steps and logic of a pseudocode algorithm. Stepwise Refinement The process of breaking down a problem or algorithm into progressively more detailed steps until it can be implemented in code. Refined Algorithm An algorithm expressed in sufficient detail through stepwise refinement so that it can be directly programmed. Logic Statement A statement that expresses a condition or decision in an algorithm, typically using Boolean expressions (TRUE/FALSE). Use of Logic Statements Applying Boolean conditions to control the flow of an algorithm, including decisions, loops, and sub-procedures. --- Chapter 10: Data Types and Structures --- INTEGER A data type used to store whole numbers without decimal points. REAL A data type used to store numbers that include decimal points. CHAR A data type used to store a single character. STRING A data type used to store a sequence of characters, such as text. BOOLEAN A data type used to store TRUE or FALSE values. DATE A data type used to store calendar dates. ARRAY A data type representing a collection of elements of the same type, accessed using an index. FILE A data type used to represent a collection of stored data, such as text or binary data. Record Structure A data structure that holds a set of data items of different types under a single identifier. Define Record (Pseudocode) Writing pseudocode to specify the fields and types of a record structure. Read Record (Pseudocode) Writing pseudocode to access and retrieve data from a record structure. Save Record (Pseudocode) Writing pseudocode to store data into a record structure. Index A numerical position used to access a specific element in an array. Upper Bound The highest index value allowed in an array. Lower Bound The lowest index value allowed in an array. 1D Array A one-dimensional array, representing a linear list of elements. 2D Array A two-dimensional array, representing a grid or table of elements with rows and columns. Bubble Sort A sorting algorithm that repeatedly swaps adjacent elements to order data in ascending or descending sequence. Linear Search A search algorithm that examines each element in a list sequentially until a match is found. Text File A file that contains lines of readable characters, used to store persistent data. Abstract Data Type (ADT) A data structure defined by the data it holds and the operations that can be performed on it. Stack An ADT that follows Last-In, First-Out (LIFO) order for adding and removing elements. Queue An ADT that follows First-In, First-Out (FIFO) order for adding and removing elements. Linked List An ADT consisting of nodes where each node contains data and a reference to the next node. Stack Use Using a stack to store and retrieve data in reverse order of insertion. Queue Use Using a queue to store and retrieve data in the same order as insertion. Linked List Use Using a linked list to store a dynamic collection of elements allowing efficient insertion and deletion. Implement Stack with Array Using an array to store stack elements, managing insertion and removal with an index. Implement Queue with Array Using an array to store queue elements, managing insertion and removal with front and rear indices. Implement Linked List with Array Simulating a linked list using arrays by storing data and next-node indices. --- Chapter 11: Programming --- Declaration of Constant A pseudocode statement that defines a value that cannot be changed during program execution. Declaration of Variable A pseudocode statement that defines a storage location for data with a specified type. Initialisation of Variable Assigning an initial value to a variable at the time of declaration. Assignment Statement A pseudocode statement that assigns a value or expression result to a variable. Arithmetic Operators Symbols used to perform mathematical calculations, such as +, -, *, /. Logical Operators Symbols used to perform logical operations, such as AND, OR, NOT. Input from Keyboard A pseudocode statement to read data entered by the user. Output to Console A pseudocode statement to display data or messages to the user. Built-In Function A pre-defined function provided by the programming environment or pseudocode guide. Library Routine A reusable block of code provided in a library to perform a specific task. IF Statement A conditional construct that executes a block of statements if a specified condition is TRUE. ELSE Clause A part of an IF statement that executes an alternative block if the condition is FALSE. Nested IF Statement An IF statement placed inside another IF statement to handle multiple conditions. CASE Structure A pseudocode construct for multi-way branching based on the value of an expression. Count-Controlled Loop A loop that executes a specific number of times, typically using a counter variable. Pre-Condition Loop A loop that checks the condition before executing the block of statements (e.g., WHILE loop). Post-Condition Loop A loop that checks the condition after executing the block of statements (e.g., REPEAT...UNTIL loop). Procedure A named block of pseudocode that performs a specific task and may or may not take parameters. Function A named block of pseudocode that performs a task and returns a value to replace the function call. Parameter A variable used in a procedure or function to accept input values or return output values. Argument A value supplied to a procedure or function parameter when called. Pass by Value Passing a copy of a variable to a procedure or function; changes do not affect the original variable. Pass by Reference Passing a reference to a variable to a procedure or function; changes affect the original variable. Procedure/Function Header The first line of a procedure or function declaration that specifies its name and parameters. Procedure/Function Interface The definition of inputs and outputs for a procedure or function, specifying parameters and return type. Return Value The value produced by a function that replaces the function call in an expression. Efficient Pseudocode Writing pseudocode that is clear, concise, and avoids unnecessary steps or repetition. --- Chapter 12: Software Development --- Program Development Life Cycle A structured sequence of stages used to develop software, including analysis, design, coding, testing, and maintenance. Waterfall Model A linear software development life cycle where each stage is completed before moving to the next; benefits include simplicity and clear milestones, drawbacks include inflexibility. Iterative Model A software development life cycle where the product is developed through repeated cycles, allowing refinement; benefits include early feedback, drawbacks include potential scope creep. Rapid Application Development (RAD) A software development life cycle emphasizing quick prototyping and iterative delivery; benefits include speed and flexibility, drawbacks include less focus on documentation. Analysis Stage The phase of the development life cycle where requirements are gathered and understood. Design Stage The phase where the software architecture, data structures, and user interfaces are planned. Coding Stage The phase where the software is implemented using programming languages or pseudocode. Testing Stage The phase where the software is executed to find and correct errors. Maintenance Stage The ongoing phase of modifying and improving software after deployment. Structure Chart A diagram that decomposes a system into sub-tasks or modules and shows parameters passed between them. Purpose of Structure Chart To visualize the modular breakdown of a program and the data flow between modules. Derive Pseudocode from Structure Chart The process of translating a structure chart into detailed pseudocode for implementation. State-Transition Diagram A diagram used to model the states of a system or process and the transitions between them. Syntax Error An error caused by violating the grammatical rules of the programming language. Logic Error An error where the program runs but produces incorrect or unintended results. Run-Time Error An error that occurs while a program is executing, often causing a crash. Dry Run A testing method where the algorithm is manually executed on paper to check for correctness. Walkthrough A peer review method of going through the code step by step to detect errors or improvements. White-Box Testing A testing method focusing on the internal logic, structure, and implementation of the code. Black-Box Testing A testing method focusing on inputs and expected outputs without knowledge of the internal code. Integration Testing Testing the interaction between combined modules to ensure they work together correctly. Alpha Testing Testing conducted by developers in a controlled environment before release. Beta Testing Testing conducted by a limited number of end-users before full release. Acceptance Testing Testing conducted to ensure the software meets user requirements and is ready for deployment. Stub A piece of code used to simulate a called module during testing. Test Strategy A plan outlining the approach, resources, and scope of testing activities. Test Plan A detailed document specifying test cases, test data, and expected results for a program. Normal Test Data Input data that is within expected operating conditions. Abnormal Test Data Input data that is unexpected or invalid to test program robustness. Extreme/Boundary Test Data Input data at the edges of allowed input ranges to test program behavior under limit conditions. Perfective Maintenance Making enhancements or improvements to a software system to increase performance or usability. Adaptive Maintenance Modifying software to work in a new or changed environment. Corrective Maintenance Fixing defects or errors in software after it has been deployed. Program Analysis The process of examining existing code to understand its function and structure. Amendments to Enhance Functionality Modifications made to a program to add features or improve performance. --- Chapter 13: Data Representation --- User-Defined Data Type A custom data type created by a programmer to suit a specific problem or application. Non-Composite Data Type A simple user-defined type that is not made up of other types, such as enumerated types or pointers. Enumerated Type A data type consisting of a set of named values. Pointer A variable that stores the memory address of another variable or data element. Composite Data Type A user-defined type made up of multiple elements, such as sets, records, or classes/objects. Set A composite data type that represents a collection of unique elements. Record A composite data type that stores a fixed collection of fields of different types under one identifier. Class/Object A composite data type representing an object-oriented structure with attributes and methods. File Organisation The way records are stored and arranged in a file to allow efficient access and management. Serial File Organisation A file structure where records are stored one after another without any specific order. Sequential File Organisation A file structure where records are stored in order according to a key field. Random File Organisation A file structure where records are stored in arbitrary order but accessed using a key or index. Sequential Access Accessing file records in the order in which they are stored. Direct Access Accessing file records directly using a key or calculated position. Hashing Algorithm A method that maps a key to a location in storage to allow fast data retrieval. Floating-Point Number A numerical representation using a fixed number of bits for the mantissa and exponent to approximate real numbers. Binary Floating-Point Representation The representation of real numbers in binary using mantissa and exponent components. Two’s Complement A method of representing signed binary numbers that allows simple arithmetic operations. Mantissa The part of a floating-point number that represents the significant digits. Exponent The part of a floating-point number that represents the scale or magnitude. Normalisation Adjusting the mantissa and exponent so that the mantissa lies within a specified range, improving precision. Denary Conversion The process of converting a binary floating-point number to its decimal equivalent. Binary Conversion The process of converting a decimal number into its binary floating-point representation. Approximation Consequence The understanding that floating-point binary representation may only approximate real numbers, leading to small errors. Underflow A condition where a number is too small to be represented in the available bits. Overflow A condition where a number is too large to be represented in the available bits. Rounding Error A small error resulting from the limitation of binary representations to exactly represent all real numbers. --- Chapter 14: Communication and Internet Technologies --- Protocol A set of rules that define how data is transmitted and received between computers to ensure successful communication. Protocol Stack A conceptual model where protocols are organized in layers, each providing specific functionality for communication. TCP/IP Protocol Suite A set of communication protocols arranged in four layers: Application, Transport, Internet, and Link, used for networking on the internet. Application Layer The top layer in TCP/IP responsible for providing network services to user applications and generating messages. Transport Layer The TCP/IP layer responsible for ensuring reliable data delivery, segmenting messages, and managing flow control. Internet Layer The TCP/IP layer responsible for addressing and routing packets across networks to reach their destination. Link Layer The TCP/IP layer responsible for the physical transmission of data across a network link. HTTP Hypertext Transfer Protocol; used for transferring web pages and web content between servers and clients. FTP File Transfer Protocol; used for transferring files between computers on a network. POP3 Post Office Protocol 3; used for retrieving emails from a mail server. IMAP Internet Message Access Protocol; used for managing and retrieving emails while keeping them on the server. SMTP Simple Mail Transfer Protocol; used for sending emails from a client to a server or between servers. BitTorrent A peer-to-peer protocol used for distributing files across a network efficiently by sharing pieces among users. Circuit Switching A communication method where a dedicated path is established between sender and receiver for the duration of the transmission. Benefits of Circuit Switching Reliable connection with predictable performance and guaranteed bandwidth. Drawbacks of Circuit Switching Inefficient use of resources and unsuitable for bursty or intermittent traffic. Packet Switching A communication method where data is divided into packets that are sent independently across the network. Benefits of Packet Switching Efficient use of network resources and suitable for bursty data transmission. Drawbacks of Packet Switching Packets may arrive out of order or experience delays, requiring reassembly. Router A network device that forwards packets between networks based on IP addresses, directing them toward their destination. Packet Transmission The process of dividing a message into packets, sending them independently across a network, and reassembling them at the destination. --- Chapter 15: Hardware and Virtual Machines --- RISC Processor A processor architecture that uses a small set of simple instructions to achieve high performance and efficient pipelining. CISC Processor A processor architecture that uses a large set of complex instructions, allowing single instructions to perform multiple operations. Differences Between RISC and CISC RISC uses simple instructions and pipelining for speed, while CISC uses complex instructions, requiring fewer program lines but more cycles per instruction. Interrupt Handling The method by which a processor responds to and manages interrupts; differs in implementation between RISC and CISC processors. Pipelining A technique in RISC processors where multiple instruction stages are overlapped to improve processing efficiency. Registers Small, fast storage locations within a CPU used to hold data and instructions temporarily during processing. SISD Single Instruction, Single Data; a basic computer architecture where one instruction operates on one data element at a time. SIMD Single Instruction, Multiple Data; an architecture where one instruction operates simultaneously on multiple data elements. MISD Multiple Instruction, Single Data; an architecture where multiple instructions operate on the same data element simultaneously. MIMD Multiple Instruction, Multiple Data; an architecture where multiple instructions operate independently on multiple data elements. Massively Parallel Computers Computers with a large number of processors working simultaneously on different parts of a problem to achieve high performance. Virtual Machine An emulated computing environment that provides an abstraction of a physical computer, allowing multiple OS or applications to run independently. Role of Virtual Machines Used for platform independence, running multiple OS instances, security isolation, and testing applications in different environments. Benefits of Virtual Machines Include portability, isolation, and efficient resource utilization. Limitations of Virtual Machines Include performance overhead and increased complexity in management. --- Chapter 16: Boolean Algebra & Logic Circuits --- Truth Table A table that shows all possible input combinations and their corresponding output for a logic circuit. Half Adder A digital circuit that adds two single-bit binary numbers, producing a sum and carry output. Full Adder A digital circuit that adds three single-bit binary numbers, producing a sum and carry output. Logic Gates with Multiple Inputs Logic gates that perform operations on more than two input signals. Flip-Flop A bistable circuit (e.g., SR, JK) used to store a single bit of data. SR Flip-Flop A flip-flop with Set (S) and Reset (R) inputs to store a single bit. JK Flip-Flop A flip-flop with inputs J and K that can toggle its output based on input conditions. Flip-Flop as Data Storage Using flip-flops to hold binary data temporarily in sequential circuits. Boolean Algebra A branch of algebra used to simplify and analyze logic circuits using TRUE/FALSE values. De Morgan’s Laws Rules in Boolean algebra that relate conjunctions and disjunctions through negation, used for simplification. Simplify Logic Circuit The process of reducing a logic expression or circuit to fewer gates using Boolean algebra. Karnaugh Map (K-map) A graphical method to simplify Boolean expressions and logic circuits efficiently. Use of Karnaugh Maps Solving logic problems and minimizing circuit complexity by grouping ones or zeros in a grid representation. --- Chapter 17: System Software --- Operating System (OS) Software that manages computer hardware and software resources and provides services for computer programs. Resource Maximisation The ability of an OS to allocate CPU, memory, and peripheral devices efficiently to optimize performance. User Interface The part of the OS that hides hardware complexities and allows the user to interact with the computer. Process Management The OS function that handles processes, including multi-tasking, scheduling, and state management. Process An instance of a program in execution managed by the OS. Process States The statuses of a process: running, ready, and blocked. Scheduling The method used by the OS to determine the order in which processes are executed. Round Robin Scheduling A scheduling method where each process is assigned a fixed time slice in turn. Shortest Job First Scheduling A scheduling method where the process with the shortest execution time is selected next. First Come First Served Scheduling A scheduling method where processes are executed in the order they arrive. Shortest Remaining Time Scheduling A scheduling method where the process with the smallest remaining execution time is selected. Kernel as Interrupt Handler The OS component responsible for responding to interrupts and managing low-level scheduling. Virtual Memory A memory management technique that uses disk storage to extend available RAM for running processes. Paging Dividing memory into fixed-size blocks called pages to manage virtual memory. Segmentation Dividing memory into variable-sized segments corresponding to logical units of a program. Page Replacement The process of swapping pages in and out of physical memory to manage limited RAM. Disk Thrashing A condition where excessive paging slows system performance due to constant reading/writing to disk. Interpreter Software that executes programs line by line without producing a separate translated file. Compilation The process of translating high-level code into machine code, involving multiple stages. Lexical Analysis The compilation stage where source code is broken into tokens representing keywords, identifiers, and symbols. Syntax Analysis The compilation stage where the structure of tokens is checked against language grammar. Code Generation The compilation stage where machine code or intermediate code is produced from parsed structures. Code Optimisation The compilation stage where code is improved for performance or efficiency without changing functionality. Syntax Diagrams Graphical representations of a language’s grammar used to guide parsing of code. Backus-Naur Form (BNF) A notation for formally expressing the grammar of programming languages. Reverse Polish Notation (RPN) A method of writing expressions where operators follow their operands, used to simplify evaluation without parentheses. --- Chapter 18: Security --- Encryption The process of converting plain text into cipher text to prevent unauthorized access to data. Plain Text Data in its original, readable form before encryption. Cipher Text Encrypted data that is unreadable without the appropriate key for decryption. Symmetric Key Cryptography Encryption using a single shared key for both encryption and decryption of data. Asymmetric Key Cryptography Encryption using a pair of keys, one public and one private, for secure communication and verification. Public Key A key used to encrypt data or verify digital signatures, shared openly. Private Key A key used to decrypt data or create digital signatures, kept secret by the owner. Sending Private Messages Using a recipient’s public key to encrypt a message that only the recipient can decrypt with their private key. Sending Verified Messages Using a sender’s private key to create a signature that can be verified by anyone using the sender’s public key. Quantum Cryptography An encryption method using quantum mechanics principles; provides theoretically unbreakable security, but limited practical use. SSL/TLS Secure communication protocols (Secure Socket Layer / Transport Layer Security) used to encrypt data between client and server. Purpose of SSL/TLS To provide secure communication over networks by encrypting data and ensuring authenticity. Client-Server Communication with SSL/TLS The use of SSL/TLS to protect data exchanged between a client and a server, such as in web browsing or online transactions. Appropriate Use of SSL/TLS Situations where sensitive information, such as passwords, personal data, or financial transactions, must be securely transmitted. Digital Certificate An electronic document issued by a trusted authority to verify the identity of an individual or organization and enable secure communication. Acquiring a Digital Certificate The process of obtaining a certificate from a certificate authority (CA) to establish identity and trust. Digital Signature A cryptographic value derived from a digital certificate used to verify the authenticity and integrity of a message or document. --- Chapter 19: Artificial Intelligence (AI) --- Graph A data structure consisting of nodes (vertices) connected by edges, used to represent relationships or paths in AI problems. Use of Graphs in AI Graphs are used to model problems, optimize routes, and represent relationships in search and decision-making algorithms. A* Algorithm A graph search algorithm that finds the shortest path to a goal by combining cost and heuristic estimates. Dijkstra’s Algorithm A graph search algorithm that finds the shortest path from a source node to all other nodes in a weighted graph. Artificial Neural Network (ANN) A computational model inspired by the human brain, used in machine learning to recognize patterns and make predictions. Machine Learning A subset of AI where systems learn from data to improve performance on tasks without being explicitly programmed. Deep Learning A type of machine learning using multi-layered neural networks to model complex patterns and representations. Reinforcement Learning A type of machine learning where an agent learns to make decisions by receiving rewards or penalties for actions. Supervised Learning A machine learning approach where the model is trained on labeled data to make predictions or classify inputs. Unsupervised Learning A machine learning approach where the model identifies patterns or structures in unlabeled data. Back Propagation A training method in neural networks where errors are propagated backward to update weights and improve accuracy. Regression in Machine Learning A technique used to predict continuous numerical values based on input data. --- Chapter 20: Computational Thinking and Problem-solving --- Linear Search A search method that checks each element in a list sequentially until the target is found or the list ends. Binary Search A search method that repeatedly divides a sorted list in half to locate a target element efficiently. Conditions for Binary Search The list must be sorted in order to use a binary search. Insertion Sort A sorting algorithm that builds a sorted list one item at a time by inserting each new element into its correct position. Bubble Sort A sorting algorithm that repeatedly compares and swaps adjacent elements until the list is sorted. Performance of Sorting The efficiency of a sorting routine depends on the initial order of data and the number of items to sort. Abstract Data Type (ADT) A data structure defined by its behavior and operations rather than its implementation. Finding Items in ADTs Algorithms to locate an item in structures like linked lists or binary trees. Inserting Items in ADTs Algorithms to add an item to structures such as stacks, queues, linked lists, or binary trees. Deleting Items from ADTs Algorithms to remove an item from structures like stacks, queues, or linked lists. Graph as an ADT A collection of nodes connected by edges used to model relationships; justified for problems involving networks or connectivity. ADT Implementation ADTs can be implemented using built-in types or other ADTs to achieve required functionality. Stack ADT A last-in, first-out (LIFO) data structure supporting push and pop operations. Queue ADT A first-in, first-out (FIFO) data structure supporting enqueue and dequeue operations. Linked List ADT A sequence of elements where each element points to the next, allowing dynamic memory allocation. Dictionary ADT A collection of key-value pairs allowing efficient data retrieval by key. Binary Tree ADT A hierarchical structure where each node has at most two children, used for sorted data and efficient searching. Algorithm Comparison Different algorithms performing the same task can be compared using criteria such as time and memory usage. Big O Notation A mathematical notation used to describe the time or space complexity of an algorithm. Recursion A programming technique where a function calls itself to solve a problem in smaller sub-problems. Features of Recursion Includes a base case, recursive case, and termination condition to prevent infinite loops. Recursive Algorithm An algorithm expressed using a function that calls itself to solve smaller instances of the problem. Tracing Recursive Algorithms Following the sequence of function calls and returns to understand the execution flow. Benefits of Recursion Useful for problems that are naturally hierarchical or involve repeated sub-problems. Compiler Handling of Recursion The compiler manages recursive calls using stacks to store return addresses and local variables. Stack and Unwinding The use of a call stack to handle recursive function calls, with unwinding occurring as base cases are reached and functions return. --- Chapter 21: Further Programming --- Programming Paradigm A fundamental style or approach to programming, defining how problems are solved and programs are structured. Low-Level Programming Programming using machine-level or assembly code, often requiring knowledge of memory and addressing modes. Immediate Addressing An addressing mode where the operand is directly specified in the instruction. Direct Addressing An addressing mode where the instruction contains the address of the operand. Indirect Addressing An addressing mode where the instruction specifies a memory location that contains the address of the operand. Indexed Addressing An addressing mode where the final address of the operand is obtained by adding an index value to a base address. Relative Addressing An addressing mode where the operand address is determined relative to the current instruction location. Imperative (Procedural) Programming A programming paradigm using variables, control structures, procedures, and functions to perform tasks in a step-by-step manner. Object-Oriented Programming (OOP) A programming paradigm based on objects containing data (attributes) and behavior (methods) to model real-world entities. Object An instance of a class containing attributes and methods. Attribute/Property A variable associated with an object representing its data or characteristics. Method A function associated with an object that defines its behavior. Class A blueprint for creating objects, defining attributes and methods. Inheritance A mechanism where a class can acquire properties and behaviors from another class. Polymorphism The ability of different objects to be treated as instances of the same class and respond differently to the same method call. Encapsulation The principle of restricting direct access to an object's attributes and providing access via methods (getters/setters). Getter A method used to retrieve the value of an object's attribute. Setter A method used to set or update the value of an object's attribute. Instance A concrete occurrence of a class (i.e., an object). Declarative Programming A programming paradigm that expresses the logic of computation using facts and rules rather than explicit control flow. Facts and Rules Statements in declarative programming representing known truths (facts) and logical relationships (rules) used to derive solutions. File Processing Operations performed on files including opening, reading, writing, appending, and closing records. Open File Modes Modes for opening a file: read, write, and append. Serial File A file where records are stored sequentially without a particular order. Sequential File A file where records are stored in a defined order based on a key field. Random File A file where records can be accessed directly using a record key. Exception An event or error that occurs during program execution requiring special handling. Exception Handling Code written to detect, manage, and respond to exceptions to prevent program crashes or undesired behavior. When to Use Exception Handling Use when input errors, file errors, or unexpected events may occur during program execution.