Context Stakeholder
Scope Requirements
Constraints Assumptions
Dependencies Risks

 

Any person or group that can affect or be affected by a system, or who has an interest in the success of the system. The specific situation or environment in which a system is planned and will operate.
The specifications or capabilities that a system must meet in order to satisfy the needs and goals of its stakeholders. The boundary or extent of what a system will and will not include or address.
Factors or conditions that are considered to be true or certain, but which have not been fully validated or confirmed. Limitations or restrictions on the design, implementation, or operation of a system, such as resource availability, budget, timing, or legal requirements.
Potential negative consequences or uncertain outcomes that could result from the design, implementation, or operation of a system. The relationships or interconnections between different elements or components of a system or between the system and its environment.

 

Goals Objectives
Feasibility Design Thinking
Legacy systems Compatibility issues
Business mergers Migration

 

The specific, measurable, achievable, relevant, and time-bound (SMART) targets that are set for a system in order to achieve its goals. The desired objectives or outcomes that a system is intended to achieve, often expressed in terms of measurable performance metrics or criteria.
The human-centered, iterative, and creative process of problem-solving and innovation that focuses on understanding the needs and perspectives of stakeholders, prototyping solutions, and testing and refining designs. The extent to which a system can be successfully designed, implemented, and operated within the given constraints, requirements, and assumptions.
Problems that arise when different systems or applications are unable to communicate or work together effectively. Systems that are no longer updated or maintained, but are still in use. They can pose compatibility issues with newer systems and applications.
The process of moving from one system or application to another. This can be necessary in order to address compatibility issues caused by legacy systems or business mergers. The combining of two or more companies into a single entity. This can result in compatibility issues between different systems and applications used by the companies.

 

Interoperability Vendor lock-in
API Middleware
Standardization Virtualization
Emulation Agile development

 

A situation where a company is dependent on a particular vendor's technology or products, making it difficult to switch to a different system or application. The ability of different systems or applications to work together effectively and seamlessly.
Software that acts as a bridge between different systems or applications, enabling them to communicate and work together effectively. An Application Programming Interface, which enables different systems or applications to communicate and exchange data with each other.
The creation of a virtual version of a system or application, which can be used to address compatibility issues or to enable different systems to work together effectively. The adoption of common standards and protocols to ensure that different systems or applications can work together effectively.
An approach to software development that emphasizes rapid iteration and collaboration, in order to address compatibility issues and other problems quickly and efficiently. The process of mimicking one system or application on another, in order to address compatibility issues or to enable different systems to work together effectively.

 

Data Migration Data Loss
Data Security Data Mapping
Data Transformation Redundant Data
Data Verification Data Cleansing

 

The unintentional or accidental loss of data during the data migration process, resulting in loss of important information. The process of transferring data from one system to another, or from one format to another, while maintaining data integrity and accuracy.
The process of creating a mapping or translation between two different data models, formats, or systems during data migration. The practice of protecting data from unauthorized access, use, disclosure, or destruction during data migration.
Data that is duplicated or unnecessary, often discovered during data migration and can cause issues with data accuracy and efficiency. The process of converting data from one format or structure to another, often required during data migration.
The process of identifying and removing or correcting inaccurate or irrelevant data during data migration. The process of verifying that data has been accurately migrated and is free of errors or inconsistencies.

 

Data Accuracy Legacy Systems
Data Backups Data Migration Plan
Client hardware implementation Remote hosting system
Implementation method Differences

 

Obsolete or outdated hardware or software systems that may need to be migrated to new systems during data migration. The degree to which data is correct, complete, and reliable.
A detailed plan outlining the steps, protocols, and timelines for migrating data from one system or format to another. The process of creating backups or copies of data prior to migration, to ensure that data is not lost or corrupted during the migration process.
The use of a third-party server to host and run software, which is accessed by a client over a network connection. The installation and use of software on a client's own hardware, such as a personal computer or mobile device.
The contrasting features and characteristics between client hardware implementation and remote hosting systems, such as ownership, control, and access. The approach taken to install and use software, such as client hardware implementation or remote hosting system.

 

Benefits Drawbacks
Appropriate implementation method Scenario
Knowledge Selection
Effectiveness Requirements

 

The disadvantages of client hardware implementation, such as limited resources and maintenance, and remote hosting systems, such as dependence on network quality and security. The advantages of client hardware implementation, such as local control and customization, and remote hosting systems, such as scalability and availability.
A specific use case or situation in which software is implemented and used, such as a business or educational environment. The selection of the best implementation method for a specific scenario, based on factors such as resources, requirements, and constraints.
The process of choosing the appropriate implementation method for a given scenario, based on available resources, requirements, and constraints. The understanding of the differences between client hardware implementation and remote hosting systems, and the ability to analyze their benefits and drawbacks.
The necessary features and characteristics that a software implementation must have in order to meet the needs of a specific scenario or user. The degree to which an implementation method meets the requirements and objectives of a specific scenario, such as efficiency, reliability, and user satisfaction.

 

Installation process Local installation
Cloud-based installation Offline installation
Online installation Manual installation
Automated installation Advantages of local installation

 

The process of installing software on a computer's hard drive. The process of installing software on a computer or device.
The process of installing software without an internet connection. The process of installing software on a remote server that can be accessed via the internet.
The process of installing software by following step-by-step instructions provided by the software manufacturer. The process of installing software with an internet connection.
Faster installation times, ability to work without an internet connection, complete control over the installation process. The process of installing software using a script or software tool that does the installation automatically.

 

Disadvantages of local installation Advantages of cloud-based installation
Disadvantages of cloud-based installation Comparing and contrasting installation methods
Evaluating installation methods Software testing
Unit testing Integration testing

 

Ability to access software from any device with an internet connection, automatic updates, lower risk of data loss. Limited mobility, need for regular updates, risk of losing data if the computer crashes.
Analyzing the advantages and disadvantages of different installation methods in order to make an informed decision on which method to use. Dependence on internet connection, potential for security breaches, need for regular subscription payments.
The process of evaluating software to find defects and ensure that it meets its requirements and produces the desired results. Assessing different installation methods based on their suitability for a specific scenario, taking into account factors such as cost, security, and performance.
Testing the integration between different units or components of software to ensure that they work together as intended. Testing individual units or components of software to ensure that each one is functioning properly in isolation.

 

System testing Acceptance testing
Regression testing Functional testing
Non-functional testing White box testing
Black box testing Gray box testing

 

Testing the software against the user's requirements and acceptance criteria to determine if it is ready for deployment. Testing the entire system or application to ensure that it meets its requirements and produces the desired results.
Testing the software to ensure that it meets its functional requirements and performs its intended tasks correctly. Testing the software after changes have been made to ensure that previously working features still function correctly.
Testing the software with knowledge of its internal workings and code structure. Testing the software to ensure that it meets non-functional requirements such as performance, usability, and security.
Testing the software with limited knowledge of its internal workings and code structure. Testing the software without knowledge of its internal workings and code structure.

 

Boundary value testing Change management
Change request Change control
Configuration management Version control
Auditing Risk management

 

The process of managing changes to a system or organization to achieve its desired outcomes. Testing the software with values that fall on the boundary of acceptable inputs to ensure that they are handled correctly.
A set of procedures, techniques, and tools used to manage change requests. A formal proposal to alter a component or system.
A system that records changes to a file or set of files over time so that you can recall specific versions later. The process of organizing and managing the components of a system or organization.
The process of identifying, assessing, and controlling risks that could affect an organization's objectives. The process of evaluating how well an organization is achieving its objectives and ensuring compliance with regulations and standards.

 

Business process Stakeholders
Business analysis Project management
Business case User documentation
Importance Clarity

 

Individuals or organizations who have a vested interest in the success or failure of a project or system. A series of steps or operations that convert inputs into outputs according to a set of rules.
The process of planning, organizing, and managing resources to achieve a specific goal or objective. The process of identifying business needs and determining solutions to business problems.
Information that is provided to the user to help them understand how to use a product or service. It includes instructions, explanations, and examples. A document that outlines the rationale for initiating a project or system and the expected benefits.
The quality of being clear and easy to understand. User documentation must be written with clarity to ensure users can follow the instructions easily. The value or significance of something. In the case of user documentation, it helps users understand how to use a product or service effectively and efficiently.

 

Consistency Ease of use
Helpfulness Manuals
Tutorials FAQs
Online help Context-sensitive help

 

The degree to which a product or service can be used with ease. User documentation helps users learn about a product or service which makes it easier to use. The quality of being consistent or uniform. User documentation must be consistent in language, formatting, and style to create a better user experience.
A document that provides instructions or information about a product or service. It is a type of user documentation. The quality of providing useful information. User documentation should provide helpful information that answers user questions and solves user problems.
A list of frequently asked questions and their answers. It is a type of user documentation. A step-by-step guide that teaches users how to use a product or service. It is a type of user documentation.
Help information that is specific to the context in which it is accessed. It is a type of user documentation. Help information that is provided within a product or service. It is a type of user documentation.

 

Interactive help User Documentation
Importance of User Documentation Various Methods
Help Files Online Guides
Videos Tutorials

 

Instructions and information provided to end-users of software products to help them use the software effectively and efficiently. Help information that allows users to interact with the product or service. It is a type of user documentation.
Different approaches and techniques that can be used to provide user documentation, including help files, online guides, videos, and tutorials. The critical role that user documentation plays in ensuring that end-users can use software products without frustration or difficulty.
Documentation that is available on a website or other online platform and can be accessed by users from anywhere with an internet connection. Documentation that is integrated into the software product and can be accessed by users while they are using the product.
A step-by-step guide that teaches users how to use a software product by leading them through a series of exercises and activities. Documentation that is presented in a video format, including tutorials, demonstrations, and walkthroughs.

 

Walkthroughs Effectiveness
Appropriateness Documentation Quality
Documentation Maintenance User training
Methods Effectiveness

 

The extent to which user documentation helps users understand and use a software product easily and efficiently. A type of tutorial that provides a visual guide to using a software product by showing users how to perform specific tasks.
The overall level of clarity, accuracy, and usefulness of user documentation. The extent to which user documentation is well-suited to the needs and expectations of end-users, taking into account factors such as language, reading level, and cultural context.
The process of teaching computer system users how to use a particular software or hardware system effectively. The ongoing process of updating and improving user documentation to reflect changes in the software product or the needs and expectations of end-users.
The ability of a user training method to achieve its intended objectives in a given context. Strategies or techniques used for delivering user training.

 

Evaluation Delivery mode
Self-directed learning Instructor-led training
Simulation Gamification
Blended learning Assessment

 

The manner in which user training is presented to the learners, for example, through online learning, face-to-face interaction, or blended learning. The process of assessing the strengths and weaknesses of different user training methods.
A type of user training where a skilled instructor guides the learners through the learning process. A type of user training where the learners have control over the pace, place, and style of learning.
The use of game design elements and mechanics in non-game contexts to engage and motivate users. A computer program that simulates real-world experiences and allows users to practice different scenarios and learn from their mistakes.
A process of evaluating user training effectiveness, such as through tests, quizzes, or surveys. A user training approach that combines different delivery modes, such as self-directed learning, instructor-led training, and online learning, to optimize learning outcomes.

 

Adaptive learning Data Loss
Human Error Hardware Failure
Software Corruption Malware Attack
Natural Disasters Data Backup

 

The unintended loss of digital data due to various factors such as human error, hardware failure, software corruption, malware attack, or natural disasters. A type of user training that uses technology to personalize the learning experience to meet individual learners' needs.
A cause of data loss where failure of physical components of computer systems such as hard drives, memory modules, or power supply can result in loss of data. A common cause of data loss where unintended deletion, formatting, or overwriting of data occurs due to mistakes made by people.
A cause of data loss where malicious software such as viruses, worms, trojan horses, or ransomware can infect and damage computer systems, data, and networks. A cause of data loss where files or applications become inoperable or unusable due to bugs, glitches, or conflicts with other software.
A preventive measure to protect against data loss by creating copies of important data and storing them in separate locations or on different media. A cause of data loss where events such as floods, fires, earthquakes, or storms can damage or destroy computer systems and data storage devices.

 

Data Recovery Redundancy
Access Control Encryption
Disaster Recovery Plan Data loss
Causes of data loss Backups

 

A strategy to prevent data loss by duplicating data across multiple devices or servers. A process of restoring lost or damaged data from backups or other sources by using specialized software or services.
A technique to prevent data loss by converting plaintext into ciphertext using mathematical algorithms, which makes it unreadable to unauthorized users. A mechanism to prevent data loss by limiting who can modify or delete data and by enforcing authentication and authorization policies.
The unintentional loss of data or information due to various reasons such as hardware failure, software corruption, malware attacks, or human error. A comprehensive plan that outlines the steps to be taken in case of a data loss event and includes strategies for backup, recovery, and business continuity.
A copy of data or system files that are created and stored separately from the original ones to prevent data loss in case of any emergency or accidental deletion. The various factors or events that lead to data loss such as hardware failure, software corruption, malware attacks, human error, natural disasters, or theft.

 

Redundancy Data recovery
Cost of data loss Disaster recovery plan
High availability Business continuity
Legal and compliance Prevention

 

The process of restoring lost or damaged data from backup copies or storage systems using specialized software or services. The use of multiple instances or backups of critical data or systems to ensure availability and prevent data loss in case of any failure or disaster.
A documented and tested strategy or set of procedures for responding to any event that might cause data loss or other disruptions to the operations or services of an organization. The financial, operational, or reputational impact of losing critical data or information, including the cost of recovery, downtime, legal penalties, or damage to brand image.
The ability of an organization to continue operating and delivering its services or products in the event of any disruption, including data loss or other disasters. The ability of a system or service to remain operational and accessible to users even in the event of hardware or software failures, network outages, or other disruptions.
The proactive measures or best practices that can be taken to prevent or minimize the risk of data loss, such as regular backups, secure storage, malware protection, staff training, and proper system maintenance and monitoring. The obligations and requirements imposed by data protection laws, regulations, and industry standards, including the need to secure and manage critical data and protect the privacy of individuals.

 

Detection Backup
Redundancy Encryption
Authentication Access Controls
Testing Policies

 

A copy of data that can be used to restore the original data if it is lost or becomes corrupted. The ability to identify and respond to any potential or actual data loss or security incidents, using monitoring, alerts, and other tools or procedures to detect and mitigate any threats or vulnerabilities.
The process of converting data into a coded language to protect it from unauthorized access. An approach in which additional hardware or software components are used to ensure that data can be recovered in the event of a failure.
Security measures that limit physical or virtual access to data or computing resources. The process of verifying the identity of a user or entity.
Guidelines and rules that govern the use and protection of data. Regularly checking backup systems to ensure they are effective and up-to-date.

 

Training Disaster Recovery Plan
Redundant Array of Independent Disks (RAID) Offsite Storage
Version Control RAID
Mirroring Striping

 

A plan that outlines procedures for restoring data and computing resources in the event of a disaster. Educating users on data protection policies and procedures to reduce the risk of data loss.
Storing backup data in a location separate from the primary location to protect against physical disasters such as floods or fires. A method of storing data that distributes it across multiple hard drives to provide redundancy and improve performance.
Redundant Array of Independent Disks, a technology used to improve data storage reliability and performance by using multiple hard drives. A method of managing changes to data over time to ensure that previous versions can be restored if needed.
RAID type where data is split across multiple hard drives, improving performance but not providing redundancy. RAID type where data is written to two hard drives simultaneously, providing redundancy in case of drive failure.

 

Parity RAID 0
RAID 1 RAID 5
RAID 6 Hardware RAID
Software RAID Advantages of RAID

 

RAID type where data is striped across two or more hard drives, providing improved performance with no redundancy. RAID type where parity data is calculated and striped across multiple hard drives, providing redundancy in case of drive failure.
RAID type where data is striped across three or more hard drives, with parity data calculated and striped as well, providing redundancy in case of drive failure. RAID type where data is mirrored across two or more hard drives, providing redundancy with no performance improvement.
RAID configuration where a dedicated hardware controller manages the RAID functions. RAID type where data is striped across four or more hard drives, with two sets of parity data calculated and striped as well, providing even more redundancy than RAID 5.
Improved data storage reliability and performance, as well as increased flexibility in managing data storage. RAID configuration where the operating system manages the RAID functions.

 

Disadvantages of RAID Full backup
Differential backup Incremental backup
Mirror backup Cloud backup
Local backup Offsite backup

 

A backup process that copies all data and files on a system to a backup storage device. Higher cost compared to single hard drive configurations, as well as increased complexity in setup and maintenance.
A backup process that copies only the changes made to data since the last backup, whether it was a full or incremental backup. A backup process that copies all changes made to data since the last full backup.
A backup process that stores data on a remote cloud server, making it accessible from anywhere with an internet connection. A backup process that creates an exact duplicate of a system or data on a separate storage device.
A backup process where data is stored in a location separate from the device being backed up, usually for disaster recovery purposes. A backup process where data is stored on a physical storage device located physically close to the device being backed up.

 

Automated backup Manual backup
Disk backup Tape backup
Snapshot backup Confidentiality
Integrity Availability

 

A backup process that is initiated by a user manually, typically by copying files to a separate storage device. A backup process that is scheduled and performed automatically, without the need for user intervention.
A backup process where data is copied to magnetic tape, which can be stored offline for long-term archiving. A backup process where data is copied to a physical storage device, such as a hard drive or solid-state drive.
The concept of maintaining the privacy of data, ensuring that it can only be accessed by those authorized to do so. A backup process that captures the state of a system or data at a specific point in time, allowing for quick recovery to that point if necessary.
The concept of ensuring that data is available when needed, and can be accessed by those authorized to do so. The concept of ensuring that data remains accurate and uncorrupted throughout its lifecycle.

 

Security threats Malware
Phishing attacks Encryption
Digital certificates Secure data storage
Secure data transmission Security breaches

 

Software that is specifically designed to harm or compromise the security of computer systems, networks or devices. Any potential event or situation that can compromise the confidentiality, integrity, or availability of data.
The process of encoding data in such a way that only authorized parties can read it. A type of social engineering attack that involves tricking users into revealing sensitive information such as usernames, passwords or personal information.
The process of protecting data by ensuring that only authorized parties can access it, and by implementing measures to prevent data loss or corruption. A digital file that contains information about the identity of the user or organization that it belongs to, and is used to verify the authenticity of data.
Any event or situation that leads to the compromise of the confidentiality, integrity, or availability of data. The process of protecting data as it is transmitted over a network, by ensuring that it is encrypted, and by implementing measures to prevent interception or unauthorized access.

 

Impact analysis Hardware failure
Software corruption Human error
Natural disasters Malware
Theft Power failures

 

The malfunction or breakage of physical components of a computing system resulting in data loss. The process of analyzing the potential consequences of a security breach, and evaluating the potential impact on businesses and individuals.
Mistakes or intentional actions made by individuals that lead to data loss, such as accidental deletion or overwriting of files. The damage or errors occurring in system software or application software that result in data loss.
Malicious software, such as viruses, worms, or Trojan horses that infiltrate a computing system, damage data, and compromise security. Environmental events, such as floods, earthquakes, or fires that result in damage or destruction of computing systems and data loss.
Sudden loss of electrical power that can lead to data loss due to unsaved data in volatile storage or damage to storage devices. Unauthorized access or physical removal of computing system components or storage media that contains valuable data.

 

Data corruption Insufficient backups
Obsolete technology Accidental Damage
Hackers and cybercriminals Data backup
Data loss Risk

 

Inadequate or infrequent backup procedures that fail to protect against data loss due to unexpected events or system failures. The alteration of data due to an error in transmission, processing, or storage that makes the data unusable or inaccurate.
Unintentional damage or destruction of computing systems or storage media that results in permanent loss of data. The use of outdated or unsupported hardware, software, or storage media that may fail to function or become incompatible with newer systems.
The process of creating a copy of important data to protect against data loss in case of an unexpected event. Individuals or groups who exploit vulnerabilities in computing systems and networks to steal or destroy valuable data, compromising security.
The likelihood that a potential threat will exploit a vulnerability to cause harm to an asset or data. Occurs when data is destroyed, corrupted or made inaccessible due to an unexpected event or human error.

 

Consequences Hardware solutions
Software solutions Importance
Backups Recovery plan
Redundancy Prevention

 

The use of physical devices such as backup drives or servers to store and protect data against loss. The negative outcomes that can occur from not having a proper data backup and loss prevention plan in place.
The significance of having a robust data backup and loss prevention plan in place, helping to ensure continuity of operations and protect against financial or reputational loss. The use of software applications such as antivirus software or backup and recovery tools to protect and recover data in case of loss.
A plan that outlines the process of restoring data back to its original state in case of data loss. Copies of important data that are stored in a safe and secure location to protect against data loss.
The implementation of security measures to reduce the likelihood of data loss. The use of multiple components or systems to ensure that if one fails, there are others to take its place.

 

Continuity RAID
Redundancy Data striping
Mirroring RAID 0
RAID 1 RAID 5

 

A technology used for enhancing data storage reliability by combining multiple disks into a single logical unit. The uninterrupted operation of an organization, especially in the face of unexpected events such as data loss.
The process of dividing data into segments and distributing them across multiple disks in a RAID system. This helps to improve the system's performance by allowing multiple drives to read and write data simultaneously. The duplication of critical components or data with the intention of increasing the system's reliability. In RAID, this means storing multiple copies of data across different disks.
A RAID level that uses data striping without redundancy, providing high performance but no fault tolerance. A technique used in RAID where data is replicated on two disks simultaneously. This provides redundancy and helps to ensure that data is not lost in the event of a drive failure.
A RAID level that uses data striping with parity to provide both high performance and fault tolerance. If one disk in the array fails, the system can rebuild the lost data using the parity information stored on the remaining disks. A RAID level that uses disk mirroring to provide redundancy. Each disk in the array contains a complete copy of the data, so if one disk fails, the other can continue to function without data loss.

 

RAID 6 Disk array
Hot spare Parity
Capacity Backup
Data Management Full Backup

 

A configuration of multiple disks in a single logical unit, typically used in RAID systems to enhance data storage reliability, redundancy, and performance. A RAID level that uses data striping with double parity to provide even greater fault tolerance than RAID 5. It can withstand the failure of up to two disks in the array without data loss.
A technique used in RAID to provide redundancy and fault tolerance. It involves calculating and storing parity information with the data on each disk, which can be used to reconstruct lost data in case of a disk failure. A spare disk that is inserted into a RAID system and made available for use in case of a disk failure. The hot spare is typically preconfigured to automatically take over for a failed disk without interruption to the system.
A copy of data that is used to restore and recover lost or damaged data. The amount of data that can be stored on a disk or in a RAID system. RAID configurations can affect the overall capacity of the system, depending on the level of redundancy and performance required.
A complete backup of all the data in a system or device. The process of organizing, storing, securing, and maintaining data.

 

Incremental Backup Differential Backup
Mirror Backup Offsite Backup
Cloud Backup Local Backup
Automated Backup Manual Backup

 

A backup that saves all data that has changed since the last full backup. A backup that only saves data that has changed since the last backup.
A backup that is stored in a different physical location from the original data. A backup that creates an exact copy of the original data.
A backup that is stored on a physical medium in the same location as the original data. A backup that is stored on remote servers accessed through the Internet.
A backup that is performed by a user or administrator manually. A backup that is scheduled and performed automatically without human intervention.

 

Recovery Point Objective (RPO) Security
Privacy Integrity
Threats Cybersecurity
Malware Encryption

 

The practice of protecting electronic data from unauthorized access and theft. The maximum amount of data that a system can afford to lose after a disruptive event.
The accuracy, completeness, and consistency of data stored in electronic systems. The ability to keep personal information confidential and prevent it from being accessed unlawfully.
The set of practices, techniques, technologies, and policies designed to protect electronic data from cyber attacks and unauthorized access. Potential risks that may endanger data security, privacy, and integrity in computing systems.
The process of converting plain text into coded text to make it unreadable for unauthorized users. Malicious software that is designed to harm files, systems, and networks.

 

Access control Firewalls
Backup Disaster recovery
Vulnerability Data loss
Hardware failure Software failure

 

Hardware or software that monitors incoming and outgoing network traffic to prevent unauthorized access and attacks. The practice of restricting access to electronic resources based on predefined policies and rules.
The process of restoring electronic systems and data after a disaster or a disruptive event. The process of creating duplicate copies of important electronic files and data to prevent data loss and damage.
The unexpected destruction, corruption, or accidental deletion of data. A weakness in a computing system that can be exploited by attackers and can compromise its security, privacy, and integrity.
The malfunction, crash, or corruption of software applications or system files that affect the handling of data. The breakdown or malfunction of computer hardware components that store, process, or transmit data.

 

Human error Malware
Natural disasters Power failures
Backup Redundancy
Encryption Cloud storage

 

Software programs designed to interfere with computer systems, steal data, or harm data storage devices. The unintentional or careless actions of individuals that lead to the loss or damage of data.
The sudden loss or reductions in electrical power that can cause data loss, system crashes, or hardware damage. Uncontrollable events including fire, flood, earthquakes, or hurricanes that damage or destroy computer equipment or storage media.
The use of multiple hardware or software components that provide backup or failover mechanisms to ensure continuous data availability. The process of creating duplicate copies of data or software files in a safe location, to be restored in case of data loss.
A remote data storage service that allows users to store, access, and manage data over the internet. The process of encoding sensitive or confidential data to protect it from unauthorized access or theft.

 

Business continuity Data backup
Data loss Consequences
Prevention Data recovery
Hardware failure Human error

 

The process of making a copy of important data to prevent data loss in case of unexpected events. The processes and procedures that organizations use to ensure that essential business functions can continue during and after a disaster or data loss event.
The negative effects or outcomes that occur as a result of data loss, such as financial loss, loss of productivity, loss of reputation, and legal implications. The situation where data is lost or destroyed beyond recovery due to various causes such as hardware failure, human error, cyber-attacks, and natural disasters.
The process of restoring lost or damaged data from backup sources or other recovery methods. The various measures that can be taken to protect data and prevent data loss, such as data backup, data recovery, and data security measures.
The mistakes or errors caused by humans that lead to data loss, such as accidental deletion, overwriting, or formatting of data. The situation where computer hardware components such as hard disk drives, processors, and RAM fail or malfunction, resulting in data loss.

 

Cyber-attacks Natural disasters
Backup frequency Offsite backup
Cloud backup Data Loss
Backup Redundancy

 

The unavoidable and unpredictable events such as floods, fires, and earthquakes that can cause physical damage to hardware systems and result in data loss. The intentional and malicious activities carried out by cybercriminals to steal, damage, or destroy data through various methods such as hacking, malware, and phishing.
The process of storing backup data in a remote location away from the primary site to protect against disasters that can affect the primary location. The time interval at which data is backed up to ensure that the most recent and important data is always available for recovery in case of data loss.
The unintentional loss of data that can occur due to various reasons like software crashes, hardware malfunctions, power outages, or human errors. The process of backing up data to a remote cloud server, providing high availability, ease of access, and automatic data synchronization.
The practice of creating duplicate copies of data to ensure its availability in case of loss or corruption of the primary data copy. A copy of data created to prevent data loss in case the primary data copy gets damaged or lost.

 

Encryption Firewall
Anti-virus software Data Recovery
Data Migration User Training
Checksum Disaster Recovery Plan

 

A network security system designed to prevent unauthorized access to or from a private network by controlling inbound and outbound network traffic. The process of converting data into a coded language to protect it from unauthorized access during transmission or storage.
The process of restoring lost or damaged data from backups or other sources after a data loss incident. A program that is designed to prevent, detect, and remove malicious software or viruses from a computer system.
The process of educating users on best practices for handling and protecting data to prevent data loss incidents from occurring. The process of transferring data from one storage system or device to another, often used as a preventive measure against data loss.
A documented process or set of procedures designed to recover and protect a business from a disaster, such as a natural disaster or a cyberattack. A mathematical function used to verify data integrity and authenticity by generating a unique digital signature for data.

 

Offsite Backup Release Management
Version Control Beta Testing
Agile Development Continuous Integration
Rolling Release Patch Management

 

A process that ensures IT software products and services are released efficiently and with quality assurance. A backup copy of data that is stored at a location separate from the primary data storage facility, often used as a preventive measure against physical damage or loss of the primary data storage facility.
A testing phase where a subset of users try out a software product before it's released to the wider public for feedback and bug reporting. A system that records and manages changes to software code or documents, allowing developers to keep track of version history and collaborate effectively.
A practice where developers merge code changes into a central repository for quality control and to detect issues early in the development cycle. An iterative development process that emphasizes flexibility, rapid prototyping, and adaptive planning to deliver working software incrementally.
A process for applying software updates, fixes, and patches to systems to eliminate vulnerabilities, enhance security, and improve performance. A software distribution model where updates are continuously released to users without a specific version number, allowing users to always have the latest version.

 

Configuration Management Deployment Automation
Fallback Plan Release Schedule
Change Management Server
Client Router

 

The use of software tools to automate the deployment and delivery of software applications to production environments for faster and more reliable releases. A practice of tracking and managing changes to software and hardware configurations, ensuring that any changes are recorded and controlled.
A timeline that outlines the planned release dates for software updates, ensuring that releases are coordinated and communicated effectively to stakeholders. A contingency plan that outlines the steps to be taken in case a software release or update fails, ensuring that system downtime and impact is minimized.
A computer that provides data or services to other computers on the network. A process that tracks and manages changes to IT infrastructure, including releases and updates, to ensure that changes are controlled, documented, and approved.
A device that forwards data packets between computer networks. A computer that requests data or services from a server on the network.

 

Gateway Firewall
Hub Switch
Protocol IP Address
MAC Address Bandwidth

 

A security system that controls the incoming and outgoing traffic on a network. A device that connects different networks together.
A device that connects multiple computers on a network together and directs data packets to their destination. A central device that connects multiple computers on a network together.
A unique numerical identifier assigned to each computer on a network. A set of rules that govern the communication between computers on a network.
The amount of data that can be transmitted over a network in a given amount of time. A unique hardware identifier assigned to each network interface controller (NIC).

 

Latency Networked World
Social Issues Ethical Issues
Privacy Security
Cyberbullying Intellectual Property

 

A world where individuals and organizations are connected through computer networks and can exchange information and interact with one another electronically. The amount of time it takes for a data packet to travel from one computer on a network to another.
Moral dilemmas or controversial situations that arise due to the use of computational technologies in a networked world. Problems or concerns that arise due to the interaction of individuals within a society, which may be exacerbated by the use of computer networks.
The protective measures taken to safeguard electronic information and systems from theft, damage, or unauthorized access. The right of an individual to be free from unauthorized intrusion, monitoring, or surveillance of their personal information.
The legal rights that protect the creations of individuals, such as artistic works, inventions, and trade secrets. Harassment or intimidation that takes place electronically via social media, messaging apps, or other digital platforms.

 

Access Digital Divide
Responsibility Accountability
Evaluation Hardware
Software Peripheral

 

The gap between those who have access to digital technologies and those who do not, which can create social and economic disparities. The ability of individuals and organizations to connect to computer networks and access the information and resources that they need.
The expectation that individuals and organizations will be held responsible for the consequences of their actions in a networked world. The obligation of individuals and organizations to act ethically and with consideration for the effects of their actions on others in a networked world.
Refers to the physical components of a computer system, such as the monitor, keyboard, and hard drive. The process of assessing the impact of technology on social and ethical issues, and determining the effectiveness of measures taken to address these issues.
Refers to any device that can be connected to a computer system, such as a printer or scanner. Refers to the programs, data, and instructions that tell the computer what to do.

 

Network Human resources
Input device Output device
Operating system Server
Router Firewall

 

Refers to the people who design, build, and program computer systems. Refers to a group of interconnected devices that can communicate with each other and share resources.
Refers to peripheral devices that allow a computer to output information, such as a monitor or printer. Refers to peripheral devices that allow you to input data and commands into the computer, such as a keyboard or mouse.
Refers to a computer system that provides services to other computers on a network. Refers to the software that manages the computer's resources and provides the user with a means of controlling the computer.
Refers to a system that helps to protect a network from unauthorized access by filtering incoming and outgoing traffic. Refers to a device that forwards data packets between computer networks.

 

Database Brainstorming
Interviews Surveys
Focus Groups Observation
Document Analysis Prototype

 

A group problem-solving technique that involves generating a large number of ideas in a short amount of time. Refers to a collection of data that is organized in a way that allows it to be easily accessed, managed, and updated.
A systematic method of collecting information from a sample of people using standardized questionnaires or interviews. One-on-one discussions with individuals in order to gather information about their experiences, opinions, or insights on a particular topic.
The act of watching and recording data about people, objects, or processes in order to gather information. A moderated group discussion with a selected target audience to obtain feedback on a particular product or service.
A working model of a product or design that allows for user feedback and testing. The process of examining written, electronic, or other materials for the purpose of collecting data or insights.

 

Simulation Benchmarking
Expert Opinion Data Mining
Case Studies System requirement representations
Functional requirements Non-functional requirements

 

The practice of comparing one's own processes or performance to that of industry leaders or best practices in order to identify areas for improvement. The act of creating a virtual or physical model of a system in order to observe how it behaves under different conditions.
The process of extracting knowledge or insights from large volumes of data. Advice or guidance provided by individuals with specialized knowledge or experience in a particular area.
Illustrations that communicate the specific needs and specifications of a particular software system. In-depth investigations of a particular organization, group, or phenomenon in order to generate insights and recommendations.
The specific constraints and limitations a software system must adhere to such as performance, security, and usability. The specific tasks and functions a software system must perform.

 

User interface diagram Use case diagram
State transition diagram Class diagram
Sequence diagram Data flow diagram
Entity relationship diagram Context diagram

 

A visual representation of the interactions between actors and a software system to achieve specific tasks. A visual representation of the flow and layout of a software system's user interface.
A visual representation of the relationships between classes and objects in a software system. A visual representation of the changes in state a software system undergoes based on given inputs and events.
A visual representation of the flow of data through a software system and its different components. A visual representation of the interactions between objects in a software system to accomplish specific tasks.
A visual representation of the external entities that interact with a software system and the broader context in which the system operates. A visual representation of the relationships between entities and their attributes in a data model.

 

Deployment diagram Prototype
Software development Client
Proposal Demonstration
Communication Development process

 

A preliminary version of a product or system used for testing and demonstration purposes, with the goal of gathering feedback and making improvements. A visual representation of the physical components and their connections in a software system's deployment environment.
The entity or person who will use the product or system being developed, and who provides feedback and requirements. The process of creating, designing, building, testing, and maintaining software.
A visual or interactive display of a product or system that showcases its functionality and features in action. A document or presentation that outlines the details and goals of a project or system that is being proposed to a client or stakeholder.
The steps and stages involved in creating and refining a product or system, including planning, designing, building, testing, and maintenance. The exchange of information, ideas, and feedback between parties involved in a project or system development.

 

Feedback Iteration
Functionality Refinement
Design End-user
Design process Consequences

 

A repetitive process of refining and improving a product or system, often based on client feedback and testing. Information, comments, or suggestions provided by clients or users about a product or system, used to improve its functionality, usability, and design.
The process of improving and enhancing a product or system, often by making it more efficient, user-friendly, and effective in achieving its goals. The ability of a product or system to perform its intended tasks and meet its requirements and objectives.
The person who is the final user of a product or system. The process of planning and creating a product or system, including its layout, structure, functionality, and user interface.
The results or effects that follow a particular action or decision. A structured approach to creating a product or system that involves planning, prototyping, testing, and refining.

 

User-centered design Usability
Frustration Wasted resources
User feedback Lack of adoption
Increased support costs Poor product reputation

 

The degree to which a product or system can be easily used and understood by its end-users. A design approach that focuses on the needs and preferences of the end-users throughout the design process.
The time, money, and effort that are invested in a product or system that does not meet the needs of the end-users and must be redesigned. The feeling of disappointment or annoyance that can arise when a product or system does not work as expected or is difficult to use.
The failure of a product or system to be accepted and used by its intended audience, which can result from a lack of focus on end-user needs and preferences. The opinions, criticisms, and suggestions that are provided by the end-users to improve the usability and functionality of a product or system.
The negative image and perceptions that can arise among potential customers when a product or system is difficult to use and fails to meet the needs of its end-users. The expenses associated with providing assistance and training to end-users who are struggling to use a product or system that was not designed with their needs and preferences in mind.

 

Inefficient design Privacy
Data Ownership Cybercrime
Bias Automation
Job Displacement Digital Divide

 

The right of individuals to keep their personal information confidential and protected from unauthorized access. A product or system that is not optimized for the needs and preferences of its end-users, which can result in wasted time, effort, and resources.
Illegal activities that are carried out using IT systems, such as hacking, identity theft, and online scams. The legal rights and control that individuals or organizations have over the data that they create or generate using IT systems.
The use of IT systems to automate tasks that were previously performed by humans, such as manufacturing, transportation, and customer service. The tendency of IT systems to favor certain groups of people or types of data over others, resulting in unfair or discriminatory outcomes.
The gap between those who have access to IT systems and those who do not, often due to economic or geographic barriers. The loss of employment opportunities that can result from the introduction of new IT systems, such as robots and artificial intelligence.

 

Intellectual Property Surveillance
Net Neutrality Ethical Hacking
Digital Responsibility Stakeholder
Requirements Gathering

 

The monitoring of individuals or groups using IT systems, often for purposes of security or law enforcement. Legal rights to creative works such as music, writing, and inventions that are protected by patents, copyrights, or trademarks.
The use of hacking techniques to identify vulnerabilities in IT systems with the goal of improving security and preventing unauthorized access. The principle that all data on the internet should be treated equally, without discrimination or favoritism based on its source or content.
An individual or organization that has an interest in a project or product, and can either affect or be affected by the project or product. The ethical and social obligations of individuals and organizations to use IT systems in ways that are responsible, ethical, and respectful of others.
The act of collecting data and information from stakeholders in order to create a comprehensive understanding of the project or product requirements. A documented set of needs and expectations of stakeholders that must be met to achieve the desired outcome of the project or product.

 

Method Questionnaire
Interview Focus group
Prototype Observation
Document analysis Advantage

 

A form or set of questions used to collect information from stakeholders, often in a standardized format. A specific way of accomplishing a task or achieving a goal.
A meeting with several stakeholders who discuss their needs and opinions about the project or product, often facilitated by a moderator. A one-on-one conversation between the project team and a stakeholder to gather information and understand their needs and expectations.
The act of watching and recording stakeholder behaviors, interactions, and needs in order to better understand their requirements. A preliminary version of a product or system used to gather feedback and refine requirements.
A positive aspect or benefit of a method for obtaining requirements from stakeholders. The act of reviewing existing documents, such as reports or contracts, to identify stakeholder requirements and expectations.

 

Disadvantage Iteration
Design process Iterative thinking
Feedback Prototyping
Debugging Refactoring

 

A process of repeating a set of instructions or operations until a specific condition is met or a desired result is achieved. A negative aspect or limitation of a method for obtaining requirements from stakeholders.
A mindset that involves breaking down a problem into smaller steps, testing and refining solutions multiple times, and seeking feedback throughout the process. A problem-solving approach that involves defining the problem, researching, prototyping, and testing.
The process of creating a preliminary model or sample of a product or system to test and refine before creating the final version. Information received by an individual or group about their performance or behavior that can be used to improve subsequent performance or behavior.
The process of restructuring an existing code without changing its external behavior to improve its quality, readability, and maintainability. The process of identifying and fixing errors or bugs in a program.

 

Testing Incremental development
Agile methodology Scrum
Kanban Stakeholder
System Planning

 

A software development approach that involves building and testing small parts of a system and adding new features gradually until the final product is completed. The process of evaluating a software application or system to identify defects, errors, or other issues before it is released to the end-users.
An agile project management framework that involves a team collaborating to complete a set of tasks in short, iterative cycles called sprints. A software development approach that emphasizes flexibility, collaboration, and rapid prototyping to deliver high-quality products that meet customer needs.
An individual, group, or organization that has a vested interest in the success or failure of a new system. An agile project management method that visualizes work on a board and limits the amount of work in progress to improve productivity and efficiency.
The process of developing a comprehensive approach to achieving a specific goal or goals. A collection of related components that work together to achieve a specific goal or goals.

 

Management Project Sponsor
Project Manager End User
IT Department Vendors
Regulators Competitors

 

A person or group within an organization that has the authority to approve funding for a new system project. The process of organizing resources to achieve a specific goal or goals.
The person or group of people who will ultimately use the new system. The person responsible for overseeing the planning, development, and implementation of a new system project.
The companies or individuals who provide hardware, software, or other resources to support the development and implementation of a new system. The department within an organization responsible for managing the organization's computer systems and technology infrastructure.
Other companies or organizations that are competing with the organization that is developing a new system. The organizations or government agencies responsible for enforcing regulations and standards related to the development and implementation of a new system.

 

Investors Usability
User Interface Design Heuristics
User Experience Accessibility
User-Centered Design Navigation

 

The extent to which a software product can be used by specified users to achieve specified goals with effectiveness, efficiency and satisfaction in a specified context of use. The individuals or groups who have invested in the new system project and who stand to gain financially from its success.
A set of guidelines or best practices that are used in the evaluation of usability of any computer system design or interface. The design of user interfaces for software or machines aims to make it easy and efficient for users to interact with the system.
The extent to which a product can be used by people with disabilities, including visual, auditory, physical, speech, cognitive, and neurological disabilities. The overall experience of a user when interacting with a product or system, including its usability, accessibility, and aesthetics.
The process of moving through a website or application to find information or accomplish a task. An approach to design that focuses on the needs, wants, and limitations of end users of a product, rather than the preferences of the designer.

 

Satisfaction Efficiency
Effectiveness Consistency
Interactivity Usability
Accessibility Learnability

 

The ability of a product or system to enable users to accomplish tasks quickly and easily, without unnecessary or repetitive actions. The degree to which a user is pleased with the performance, quality, and overall experience of a product or system.
The degree to which a product or system uses the same design and interaction patterns throughout, providing a predictable experience for users. The ability of a product or system to allow users to accomplish tasks accurately and completely, without errors or omissions.
The degree to which a digital device can be used by specified users to achieve specified goals with effectiveness, efficiency, and satisfaction in a specified context of use. The degree to which a user can interact with a product or system, including through input devices, feedback mechanisms, and other methods of communication.
The ease with which a user can learn to operate a digital device. The degree to which a digital device can be used by people with varying abilities and disabilities.

 

Navigation Error messages
Cluttered interface Poor contrast
Inconsistent layout Slow response time
Poor typography Poor feedback

 

Information presented to the user indicating that an unexpected condition has occurred. The ability to move around and find information within a digital device.
A lack of contrast between text or other elements on a digital device screen, making it difficult to read or discern important information. A digital device interface that is overcomplicated or cluttered with too many features or options.
A delay in a digital device's response time, causing frustration and hindering the user's ability to complete tasks efficiently. A digital device with an inconsistent layout can cause confusion and make it difficult for users to find information or complete tasks.
The lack of feedback or insufficient feedback provided by a digital device, causing uncertainty and confusion among users. The use of inappropriate font styles, sizes, or spacing, which can negatively impact the readability and usability of a digital device.

 

Insufficient user testing Usability
Accessibility Consistency
Learnability Navigation
Feedback Error prevention

 

The quality of being easy and efficient to use. The lack of user testing during the development process of a digital device, resulting in usability issues that are not discovered until the device is released to users.
The system behaves predictably, so that users can anticipate what will happen when they take an action. The ease with which users with disabilities can navigate and use the system.
The ease with which users can move through the system to accomplish their goals. The ease with which new users can learn to operate the system.
The design of the system prevents users from making errors or helps them recover easily from errors. The system provides users with information about what is happening and what they need to do next.

 

Clarity Visual appeal
Reliability Performance
Security Moral implications
Ethical implications Social implications

 

The system is aesthetically pleasing and visually coherent to the user. The system communicates its purpose and function clearly to the user.
The system operates efficiently and responds quickly to user requests. The system operates accurately and consistently over time.
The impact of human-machine interaction on ethical standards or principles of behavior. The system protects confidential data and prevents unauthorized access.
The impact of human-machine interaction on human society, including cultural, economic, and societal changes. The impact of human-machine interaction on moral principles or values.

 

Economic implications Environmental implications
Human-machine interaction Computer Science
Technology ethics Artificial intelligence
Automation Case studies

 

The impact of human-machine interaction on the natural environment, including depletion of resources, pollution, and climate change. The impact of human-machine interaction on economic systems, such as employment, productivity, and wealth distribution.
The study of technology, algorithms, programming, and computation in the context of information processing and data analysis. The collaboration or communication between humans and machines, including robotics, automation, and artificial intelligence.
The simulation of human-like intelligence in machines, including machine learning, natural language processing, and expert systems. The principles, values, and guidelines for using technology in an ethical and responsible manner, including issues related to privacy, security, and social impact.
An in-depth investigation of a particular event, phenomenon, or situation to analyze its causes, effects, and implications. The use of technology to perform tasks or processes without human intervention, including robotics, assembly lines, and self-driving vehicles.

 

Positive effects Negative effects
Accessibility Assistive Technology
Keyboard Navigation Sighted Assistance
Color Contrast Screen Readers

 

The harmful or undesirable outcomes of human-machine interaction, including job displacement, social isolation, and loss of privacy. The beneficial or desirable outcomes of human-machine interaction, including improved efficiency, safety, and quality of life.
Hardware or software used to make it easier for people with disabilities to use computer systems. The degree to which a system can be used by people with a wide range of abilities and disabilities.
Assistance provided to a user with visual impairments, such as alt text or audio descriptions. Controlling a computer system using only the keyboard, without requiring a mouse or touch screen.
Software that reads the contents of a computer screen aloud, allowing users with visual impairments to access the system. The difference in tone between two colors used in a computer system, which affects readability for some users.

 

Closed Captions Accessible Design
Markup Accessible Content
User-Centered Design Alternative Input Devices
Central Processing Unit (CPU) Arithmetic Logic Unit (ALU)

 

The process of designing computer systems with the goal of ensuring that people with disabilities can use them. Text displayed on a screen that provides a visual representation of audio content, intended for users who are deaf or hard of hearing.
Content presented in a format that can be understood by users with a wide range of abilities and disabilities. Tags added to documents to provide additional information about their structure, allowing assistive technologies to navigate the content more effectively.
Devices such as switches, joysticks, or eye-tracking systems that allow users with disabilities to provide input to a computer system. A design approach that involves designing computer systems with the users in mind, with a focus on meeting their needs and preferences.
The part of the CPU that performs arithmetic and logical operations. The part of a computer that performs most of the processing of data and instructions.

 

Control Unit (CU) Registers
Program Counter (PC) Instruction Register (IR)
Memory Data Register (MDR) Memory Address Register (MAR)
Accumulator Fetch-Decode-Execute Cycle

 

Small, high-speed storage locations within the CPU that hold data and instructions for processing. The part of the CPU that manages the flow of data and instructions within the CPU.
A register that holds the current instruction being executed. A register that contains the memory address of the next instruction to be executed.
A register that holds the memory address of data being transferred to or from memory. A register that holds data being transferred to or from memory.
The process by which the CPU retrieves, interprets, and executes instructions. A register that holds the result of arithmetic and logical operations performed by the ALU.

 

Clock Speed Cache Memory
Machine instruction cycle Fetch-decode-execute cycle
Processor Program counter
Instruction register Opcode

 

A small amount of high-speed memory located within or near the CPU that is used to temporarily store frequently accessed data and instructions. The rate at which the CPU's clock generates pulses that synchronize the operations of the CPU.
The process by which a computer retrieves an instruction from memory, decodes it, and executes it. The process by which a computer retrieves a program instruction from memory, interprets it, and executes it.
A register in a computer's processor that holds the address of the next instruction to be executed. A part of a computer that carries out instructions and performs arithmetic and logical operations.
A code that identifies a specific operation to be performed by a computer's processor. A register in a computer's processor that holds the instruction currently being executed.

 

Operand Addressing mode
Control unit Execution cycle
Memory Registers
Cache memory Cache hit

 

A method used by a computer's processor to identify the location of data in memory. A value on which an operation is performed by a computer's processor.
The phase in the machine instruction cycle where the processor executes the instruction. A part of a computer that manages the flow of data within the computer and controls the execution of instructions.
Small, high-speed storage locations within a computer's processor that hold data and instructions temporarily during processing. A device that stores data and instructions for a computer to use.
When the CPU requests data that is already stored in the cache. A high-speed component of a computer's memory hierarchy designed to store frequently accessed data for rapid access.

 

Cache miss Cache line
Level 1 (L1) cache Level 2 (L2) cache
Level 3 (L3) cache Write-through cache
Write-back cache Cache coherence

 

The smallest unit of data that can be cached. When the CPU requests data that is not in the cache.
A larger cache that is slower than L1 cache, but still faster than main memory. The cache closest to the CPU, typically smaller but faster than higher levels of cache.
A type of cache that immediately writes any changes to both the cache and main memory. A cache that is even larger and slower than L2 cache, typically found on multi-core processors or in server systems.
The process of ensuring that all caches in a multi-processor system have a consistent view of the system memory. A type of cache that does not immediately write changes to main memory, but instead waits until the cache line is replaced or the system is shut down.

 

Temporal locality Spatial locality
Primary Memory Random Access Memory (RAM)
Read-Only Memory (ROM) Volatile Memory
Non-Volatile Memory Memory Address

 

The tendency of computer programs to access data that is located close to other recently accessed data. The tendency of computer programs to access data that was recently accessed.
A type of primary memory in which any location can be easily accessed in a random manner, and data can be written or read from any memory location independently of other locations. The main memory of a computer that stores data and instructions for immediate use by the CPU. This memory can be both volatile and non-volatile.
Memory that requires a constant supply of power to retain its contents. RAM is an example of volatile memory. A type of primary memory that contains data that cannot be modified or deleted. It is used to store system software such as BIOS.
A unique identifier that is assigned to each memory location in the primary memory. Memory that retains its contents even when power is turned off. ROM is an example of non-volatile memory.

 

Memory Access Time Cache Memory
Memory Hierarchy Memory Controller
Memory Module Memory Bank
Persistent Storage Volatile Storage

 

A small amount of high-speed memory used to temporarily store frequently accessed data or instructions for faster access. The time taken by the primary memory to read or write data from or to a memory location.
The circuitry in a computer system that controls the flow of data between the CPU and the memory. An arrangement of storage devices in a computer in which each type of storage is used for a different purpose and has a different access speed and capacity.
A group of memory modules that work together to provide a larger memory capacity for the computer. A small circuit board that contains several memory chips used to expand the memory capacity of a computer.
Refers to temporary storage of data on a computer system. The data is lost when the power to the system is turned off. Refers to long-term storage of data on a computer system. The data remains even after the power to the system is turned off.

 

Non-Volatile Storage Hard Disk Drive
Solid-State Drive USB Flash Drive
SD Card Cloud Storage
Magnetic Tape RAID

 

A non-volatile storage device that stores data permanently on magnetic disks. Refers to long-term storage of data on a computer system. The data remains even after the power to the system is turned off.
A non-volatile storage device that uses flash memory to store data temporarily or permanently. A non-volatile storage device that stores data permanently on memory chips.
A non-volatile storage service provided by companies like Google, Amazon and Microsoft that allows users to store and access data over the internet. A non-volatile storage device used in cameras, phones, and other mobile devices.
A storage technology that uses multiple disks to provide data redundancy and improve performance. A non-volatile storage medium used for backup or archiving data.

 

Backup Archive
Operating System Kernel
Memory Management Multitasking
Device Drivers Shell

 

A process of storing historical data that is not frequently accessed to free up space on the primary storage. A process of copying and archiving data to prevent data loss from hardware failure, human error or natural disasters.
The kernel is a central component of most computer operating systems; it is the core part of the OS that manages input/output requests from software, translates them into data-processing instructions for the central processing unit and interfaces with the computer's memory and peripheral devices. An operating system (OS) is a collection of software that manages computer hardware resources and provides common services for computer programs.
Multitasking is the ability of an operating system to run multiple programs or processes at the same time. Memory management is the function of an OS that allocates and de-allocates available space in computer memory, and may also include tasks such as moving data between memory locations to optimize usage.
A shell is a user interface for accessing an operating system's services and commands. It provides a command-line interface (CLI) or graphical user interface (GUI) for interacting with the operating system. Device drivers are software components that enable communication and control of hardware devices by the operating system.

 

File Management Security
Virtual Memory Batch Processing
Real-time Processing Multiprocessing
Application Common Features

 

The security function of an operating system is to protect the computer system and its data from unauthorized access, modification, or destruction. File management is the process by which an operating system organizes and manipulates files and directories (folders) of data on a computer storage device.
Batch processing is a technique used by operating systems to execute large batches of computer tasks automatically, without manual intervention. Tasks are usually initiated by a user command or scheduled using system tools. Virtual memory is a technique used by an operating system to allow a computer to compensate for shortages of physical memory by temporarily transferring pages of data from random access memory (RAM) to disk storage.
Multiprocessing is the ability of an operating system to use multiple computer processors or cores to perform tasks more efficiently and improve overall system performance. Real-time processing is a technique used by operating systems to process data as it comes in, without waiting for a batch process to finish. It is typically used for time-sensitive applications such as process control or simulation.
The interface elements and functionalities that are shared across different applications. A software program designed to perform a specific task or set of tasks.

 

User Interface Input Validation
Security Data Storage
Error Handling Compatibility
Localization Accessibility

 

The process of checking user input to ensure that it is safe and appropriate for the application's intended use. The visual elements and controls that allow a user to interact with an application.
The manner in which an application stores and retrieves information from a database or other data store. The measures put in place to protect the integrity, confidentiality, and availability of an application's data and resources.
The ability of an application to function correctly across different hardware and software platforms. The methods used by an application to respond and recover from errors and exceptions.
The design of an application to enable people with disabilities to use it successfully. The adaptation of an application to fit the language and cultural preferences of its users in different regions.

 

Scalability Usability
Application software Operating system
Word processor Spreadsheet application
Presentation software Project management software

 

The ease with which an application can be learned and used by its intended audience. The ability of an application to accommodate a growing number of users, data, or processing demands.
The software that manages the hardware and software resources of a computer system. Computer software designed to perform a group of coordinated functions, tasks, or activities for the benefit of the user.
An application software used for organizing, analyzing, and manipulating numerical data. An application software used for creating, editing, and formatting text documents.
An application software used for planning, organizing, and managing resources to complete specific tasks or projects. An application software used for creating visual presentations with a set of slides.

 

Database management system Web browsers
Email clients Media player
Graphics software Antivirus software
Bit Byte

 

The software used to access the World Wide Web, including browsing web pages and downloading files. An application software used for managing and organizing data in a database system.
An application software used for playing audio and video files. An application software used for managing email accounts, sending and receiving messages, and organizing emails.
An application software used for preventing, detecting, and removing malicious software such as viruses, spyware, and adware from a computer system. An application software used for creating, editing, and manipulating digital images or graphics.
A group of eight bits that represents a single unit of data. A binary digit that can be either 0 or 1.

 

Binary Denary/Decimal
Hexadecimal Conversion
Binary to Denary/Decimal Denary/Decimal to Binary
Binary to Hexadecimal Hexadecimal to Binary

 

A numbering system that uses ten digits (0-9) to represent numbers. A numbering system that uses only the digits 0 and 1 to represent numbers.
The process of changing a number from one numbering system to another. A numbering system that uses sixteen digits (0-9 and A-F) to represent numbers.
The process of converting a denary/decimal number to a binary number. The process of converting a binary number to a denary/decimal number.
The process of converting a hexadecimal number to a binary number. The process of converting a binary number to a hexadecimal number.

 

Radix Positional Notation
Data Representation Binary representation
ASCII Unicode
Hexadecimal Octal

 

A system of representing numbers where the value of a digit is determined by its position in the number. The base of a numbering system. Binary has a radix of 2, denary/decimal has a radix of 10, and hexadecimal has a radix of 16.
A way of representing data using only two digits, usually 0 and 1. The method used to represent data in a computer system.
A universal character encoding standard that can represent any character from any language in the world. A standard code used to represent characters as binary numbers.
A base-8 number system that uses eight distinct symbols to represent numbers. A base-16 number system that uses sixteen distinct symbols to represent numbers.

 

Byte Bit
Analog data Digital data
Metadata Checksum
AND OR

 

The smallest unit of data in a computer system, representing either a 0 or a 1. A unit of data that consists of eight bits.
Data that is represented using a finite set of discrete values, usually 0 and 1. Data that is continuous and can have any value within a range.
A value used to verify the integrity of a data transmission, by calculating the sum of the transmitted data. Data that describes other data, providing information about its content, quality, condition, etc.
A Boolean operator that returns true if at least one of the operands is true. A Boolean operator that returns true if both operands are true.

 

NOT NAND
NOR XOR
Boolean operator Logical operator
Binary operator Unary operator

 

A Boolean operator that returns false if both operands are true, and true otherwise. A Boolean operator that reverses the logical state of its operand.
A Boolean operator that returns true if the operands have different values, and false otherwise. A Boolean operator that returns false if at least one of the operands is true, and true otherwise.
A type of operator that performs logical operations on two or more Boolean expressions. A type of operator that operates on Boolean values. The result of a Boolean operation is either true or false.
A type of operator that operates on a single operand. A type of operator that operates on two operands.

 

Operand Truth table
Truth table Logical operator
AND OR
NOT XOR

 

A table used to represent the relationship between the inputs and the outputs of a logical circuit or a Boolean function. A value on which an operator operates.
A symbol or word used to connect two or more expressions, producing a compound proposition. Common logical operators include AND, OR, NOT, and XOR. A table used in logic to determine the truth value of a compound proposition. It lists all possible combinations of truth values for the propositions in the compound proposition and the resulting truth value of the compound proposition.
A logical operator that returns true if at least one of its operands is true. A logical operator that returns true only if both of its operands are true.
A logical operator that returns true if its operands have opposite truth values. A logical operator that returns the opposite of the truth value of its operand.

 

Compound proposition Propositional variable
Truth value Open sentence
Atomic proposition Tautology
AND gate OR gate

 

A symbol or letter used to represent a proposition in a logical expression. A proposition that is formed by combining two or more propositions using logical operators.
A propositional expression that contains a variable or variables instead of specific values. The value assigned to a proposition to indicate whether it is true or false.
A compound proposition that is always true, regardless of the truth values of its constituent propositions. A proposition that cannot be further subdivided into simpler propositions.
A logic gate that performs the OR operation on two or more inputs, producing a high output if at least one input is high. A logic gate that performs the AND operation on two or more inputs, producing a high output only if all inputs are high.

 

NOT gate NAND gate
NOR gate XOR gate
Truth table Logic expression
Logic diagram Gate combination

 

A logic gate that performs the NAND operation on two or more inputs, producing a low output only if all inputs are high. A logic gate that performs the NOT operation on a single input, inverting the input to produce the opposite output.
A logic gate that performs the XOR operation on two inputs, producing a high output if the inputs are different and a low output if the inputs are the same. A logic gate that performs the NOR operation on two or more inputs, producing a low output if at least one input is high.
A mathematical formula used to represent the logical operation of a circuit, using Boolean operators such as AND, OR, NOT, and XOR. A table used to represent the inputs and outputs of a logic circuit, showing all possible combinations of input values and the corresponding output value.
The arrangement of two or more logic gates to perform a specific logical function, such as AND, OR, or NOT. A graphical representation of a logic circuit, showing the logic gates and how they are connected to produce the desired output.

 

Boolean algebra Digital circuit
Network LAN
WAN PAN
MAN Topology

 

An electronic circuit that uses digital signals to perform logical operations, such as those used in computers and other digital devices. A mathematical system used to represent logical operations, using two values: true (1) and false (0).
A local area network is a network that connects devices in a limited geographical area such as a home, school, or office building. A collection of computers and other hardware devices that are connected together to allow communication and resource sharing between them.
A personal area network is a network that connects devices in a small area such as a personal computer, smartphone, and other Bluetooth enabled devices. A wide area network is a network that covers a broad area such as a city, country, or even the whole world, and uses leased telecommunication lines to connect devices.
The physical or logical arrangement of computers and other devices on a network. A metropolitan area network is a network that connects devices in a geographical area that spans a city or a region, using optical fibers, copper wires, or wireless transmission.

 

Bus topology Ring topology
Star topology Mesh topology
Client-server Peer-to-peer
Communication layers TCP/IP protocol

 

A network topology in which all devices are connected to each other in a circle or ring, with data transmitted in one direction only. A network topology in which all devices are connected to a single cable, with both ends of the cable terminated by a device called the terminator.
A network topology in which devices are connected to each other in a non-linear way, with redundant paths to provide alternate routes in case of failure. A network topology in which all devices are connected to a central hub or switch using point-to-point connections.
A network architecture in which all devices have equal status and can act as both clients and servers, sharing resources and communicating with each other directly. A network architecture in which one or more computers act as servers, providing services or resources to client computers on the network.
A protocol used for communication over networks that divides communication into four layers - link layer, internet layer, transport layer, and application layer. The way communication over networks is divided into different layers - each layer accomplishing a specific task.

 

Data encapsulation Physical layer
Data link layer Network layer
Transport layer Session layer
Presentation layer Application layer

 

The first layer in the OSI model for network communication which deals with the physical characteristics of the medium that sends data and the data encoding scheme. The process of adding header and footer information to data as it moves down the communication layers. This information helps in identifying the sender, receiver, and other important information about the data.
The third layer in the OSI model for network communication which deals with routing data packets from the source to destination via the most efficient path. The second layer in the OSI model for network communication which deals with node to node delivery of data over the network.
The fifth layer in the OSI model for network communication which deals with establishing, managing, and terminating communication sessions between applications. The fourth layer in the OSI model for network communication which deals with ensuring error-free end-to-end delivery of data between systems.
The seventh layer in the OSI model for network communication which deals with application software that uses network services for communication. The sixth layer in the OSI model for network communication which deals with the format and syntax of data being exchanged between applications.

 

OSI model Layered approach
VPN Computer networks
Advantages Disadvantages
Security Encryption

 

The approach taken to network communication where communication is partitioned into logical layers, with each layer performing a distinct service keeping implementations modular and separate. Open Systems Interconnection (OSI) model is a conceptual model used for network communication that divides the communication process into seven layers.
A set of interconnected devices, such as computers and servers, that communicate with each other to share resources and information. A virtual private network that uses encryption and other security mechanisms to provide a private connection between two or more devices over the internet.
The drawbacks or negative aspects of using a VPN, such as slower connection speeds, increased complexity, and potential for service disruptions. The benefits or positive aspects of using a VPN, such as improved security, privacy, and access to resources.
The process of encoding information in such a way that only authorized parties can access or read it. The measures taken to protect information and resources from unauthorized access, use, disclosure, disruption, modification, or destruction.

 

Configuration Legal
Ethical Privacy
Access control Internet
Data transmission Transmission media

 

Relating to or authorized by law, such as government regulations, contracts, or intellectual property rights. The settings and options that determine how a device or system operates and interacts with other devices or systems.
The right to control access to personal information and avoid unwanted surveillance or tracking. Relating to moral principles and values, such as privacy, fairness, and responsibility.
A global network of interconnected computer networks that use standard protocols to communicate and exchange information. The process of granting or restricting the ability of users or devices to access resources or perform actions based on their identity, role, or other criteria.
The physical media used to transmit data such as copper wire, fiber optic cable, radio waves, or infrared signals. The process of transmitting digital or analog signals over a medium from a source to a destination.

 

Factors affecting data transmission Transmission errors
Data transmission modes Analog signals
Digital signals Synchronous transmission
Asynchronous transmission Simplex transmission

 

Errors that can occur during data transmission due to noise, interference, or other factors that can cause data corruption. The various factors such as noise, attenuation, distortion, and interference that can affect the quality of data transmission.
A continuous signal that varies in amplitude or frequency over time and is used in analog transmission. The methods used to transmit data such as simplex, half-duplex, and full-duplex transmission, synchronous and asynchronous transmission, and parallel and serial transmission.
Data transmission in which the sender and receiver are synchronized in time and use a clock signal to coordinate data transmission. Discrete signals that are used in digital transmission and have only two values, 0 and 1.
A one-way communication mode in which data can be transmitted only in one direction, from the sender to the receiver. Data transmission in which the sender and receiver do not use a clock signal to synchronize data transmission.

 

Half-duplex transmission Full-duplex transmission
OSI model TCP/IP protocol suite
Networking Network topologies
Protocol Data packet

 

A two-way communication mode in which data can be transmitted in both directions at the same time. A two-way communication mode in which data can be transmitted in both directions, but not at the same time.
The Transmission Control Protocol/Internet Protocol suite is a set of communication protocols used for the internet and other similar networks. The Open Systems Interconnection model is a conceptual model that describes the communication functions of a telecommunication or computing system.
The physical or logical layout of a network, including bus, ring, star, and mesh topologies. The process of connecting two or more devices together for the purpose of sharing resources such as data, information, and hardware devices.
The basic unit of data that is transmitted across a network. A set of rules that governs the communication between devices in a network.

 

Computer network TCP/IP
HTTP SMTP
FTP Ethernet
Wi-Fi IP address

 

A set of protocols that governs the communication between devices in the Internet. A collection of computers and other devices that are connected together to enable communication and resource sharing.
A protocol that is used to transfer email messages between servers and clients. A protocol that is used to transfer data between a web server and a web client.
A protocol that governs the communication between devices in a local area network. A protocol that is used to transfer files between servers and clients.
A unique identifier that is assigned to devices in a network to enable communication and resource sharing. A protocol for wireless local area networks that enables devices to connect to the Internet or other networks.

 

DNS Router
Data Compression Network Transmission
Bandwidth Latency
Lossless Compression Lossy Compression

 

A device that forwards data packets between networks. A protocol that is used to translate domain names into IP addresses.
The process of sending data from one device to another over a network or the internet. The process of reducing the size of data to transmit it more efficiently over a network.
The amount of delay between the sending and receiving of data over a network. The maximum amount of data that can be transmitted over a network in a given amount of time.
A compression technique that reduces the size of data by removing non-essential information. A compression technique that reduces the size of data without losing any information.

 

JPEG MPEG
ZIP GZIP
DEFLATE Huffman Coding
Transmission Media Copper

 

A common video compression algorithm that uses lossy compression techniques. A common image compression algorithm that uses lossy compression techniques.
A common file compression algorithm that uses lossless compression techniques. A common data compression algorithm that uses lossless compression techniques.
A lossless compression technique that uses variable-length codes to represent data more efficiently. A compression algorithm used in many file formats, including PNG, ZIP, and gzip.
A type of wired transmission media that uses copper wires to transmit data. It is commonly used for local area networks (LANs). Refers to the physical media that carry signals from sender to receiver. The different types include wired (copper, fiber-optic) and wireless (satellite, microwave, radio) transmission media.

 

Fiber-optic Satellite
Microwave Radio
Bandwidth Latency
Reliability Attenuation

 

A type of wireless transmission media that uses communication satellites in orbit to transmit signals. It offers wide coverage area, but is affected by weather and has high latency. A type of wired transmission media that uses glass or plastic fibers to transmit data. It offers high bandwidth and long distance transmission capabilities, but is expensive to install.
A type of wireless transmission media that uses radio signals to transmit data. It is commonly used for wireless LANs and mobile communication. A type of wireless transmission media that uses microwave signals to transmit data. It offers high bandwidth and is commonly used for point-to-point communication.
Refers to the time delay between the transmission and reception of a signal. It is affected by the distance between sender and receiver, and the type of transmission media used. Refers to the amount of data that can be transmitted over a given period of time. It is measured in bits per second (bps).
Refers to the loss of signal strength as it travels along the transmission media. It is affected by factors such as distance, interference, and the type of transmission media used. Refers to the ability of the transmission media to transmit data accurately and consistently. It is affected by factors such as interference, noise, and signal attenuation.

 

Interference Signal-to-Noise Ratio
Packet switching Circuit switching
Packets Router
Switch Header

 

Refers to the ratio of the signal power to the noise power in a transmission. It is a measure of signal quality, with higher ratios indicating better quality. Refers to the disruptions or noise that can affect the transmission of signals. It is caused by factors such as electromagnetic radiation, signal reflection, and environmental factors.
A method of transmitting data across a network by establishing a dedicated communication path, or circuit, between two devices. A method of transmitting data across a network by breaking it up into smaller units known as packets, which are then sent individually and reassembled at the destination.
A network device that forwards data packets between different computer networks. Small units of data that are transmitted across a network using packet switching.
The part of a packet that contains information about how it should be handled by the network. A network device that connects devices together on a local area network (LAN) and forwards data packets between them.

 

Payload Fragmentation
Reassembly Latency
Congestion Reliability
Data transmission Speed of data transmission

 

The process of breaking up a large packet into smaller ones to facilitate transmission across a network. The actual data being transmitted in a packet.
The time it takes for a packet to travel across a network. The process of putting together multiple smaller packets to recreate the original data.
The ability of packet switching to handle packet loss and deliver data accurately and efficiently. The situation that occurs when too many packets are being transmitted across a network, causing delays and packet loss.
The rate at which data is transmitted over a network or communication channel. The process of sending and receiving data over a network or communication channel.

 

Bandwidth Latency
Factors affecting data transmission speed Transmission medium
Network congestion Packet loss
Data compression Caching

 

The time it takes for data to travel from one point to another on a network or communication channel. The maximum amount of data that can be transmitted over a network or communication channel in a given amount of time.
The physical path through which data is transmitted on a network. The characteristics of the network, transmission medium, and devices in the network that affect the speed at which data is transmitted.
The failure of one or more transmitted packets to arrive at their destination on a network. The situation that occurs when there is more data being transmitted on a network than the network can handle.
The process of storing frequently accessed data in a local cache to reduce the amount of data that needs to be transmitted over a network. The process of reducing the size of data to be transmitted over a network by encoding it using fewer bits.

 

Quality of Service (QoS) Jitter
Wireless networks Radio waves
Bandwidth Mobility
Convenience Scalability

 

The variation in the delay of packet delivery on a network. The ability of a network to provide predictable levels of service and performance to different types of traffic.
Electromagnetic waves that are used to transmit data in wireless networks. A type of computer network that allows devices to connect and communicate without the need for physical wires or cables.
The ability to move around while staying connected to a wireless network. The amount of data that can be transmitted over a network in a given amount of time.
The ability to expand or contract a wireless network easily to meet changing demands. The ease and flexibility of being able to connect to a wireless network from almost anywhere.

 

Interference Security
Reliability Cost
Range Infrastructure
Wireless Network Hardware Components

 

A concern with wireless networks due to the potential for unauthorized access and data breaches. A problem with wireless networks that occurs when multiple signals are transmitted at the same frequency and interfere with each other.
The financial considerations associated with setting up and maintaining a wireless network. The ability of a wireless network to maintain a consistent and stable connection.
The physical components and systems that enable a wireless network to function. The maximum distance over which a wireless signal can be transmitted between devices.
The physical devices that make up a wireless network, including routers, access points, and antennas. A type of computer network that enables devices to communicate without using cables or wires.

 

Software Components Router
Access Point Antenna
Encryption Authentication
SSID MAC Address

 

A hardware device that connects multiple networks together and directs data traffic between them. The programs and applications that control and manage the hardware components of a wireless network, including protocols and security measures.
A device that transmits and receives wireless signals between devices on a network. A networking hardware device that allows Wi-Fi devices to connect to a wired network.
The process of verifying the identity of a user or device before allowing access to a network or system. The process of converting data into an unreadable format to prevent unauthorized access.
A unique identifier assigned to a network interface controller (NIC) for use as a network address in communications within a network. A unique identifier for a wireless network that allows devices to connect to it.

 

Firewall Protocol
Wireless Networks Radio Waves
Access Point SSID
Encryption Frequency Band

 

A set of rules that govern the format and transmission of data over a network. A security system that prevents unauthorized access to or from a private network.
The frequency range used to transmit wireless signals between devices. A type of computer network that allows devices to communicate without the need for cables or wires.
A unique identifier for a wireless network that allows devices to distinguish it from other networks in the vicinity. A device that allows wireless devices to connect to a wired network using Wi-Fi or other wireless protocols.
The range of radio frequencies used by a wireless network to transmit data. The process of encoding data transmitted over a wireless network to prevent unauthorized access.

 

Ad Hoc Network Infrastructure Network
Mesh Network Latency
Interference Cost
Encryption Firewall

 

A wireless network that uses an access point or router to connect devices to a wired network. A wireless network that connects devices directly without the need for an access point.
The delay between the transmission and reception of data over a wireless network. A decentralized wireless network in which all devices can communicate with each other.
The price of wireless equipment and service, which can be more expensive than wired networks. Any signal or noise that disrupts wireless transmissions and causes data errors or slowdowns.
A network security system that monitors and controls incoming and outgoing network traffic based on predetermined security rules. A method used to secure information by converting it into code that only authorized parties can read.

 

Intrusion Detection System Virtual Private Network
Authentication Access Control
Biometrics Penetration Testing
Vulnerability Assessment Antivirus

 

A secure, encrypted connection that allows remote access to a private network over the internet. Software or hardware systems that automatically detect and respond to unauthorized attempts to access a network or computer system.
A security process that limits access to a network or system based on the user's identity, role, or other factors. The process of verifying the identity of a user or device attempting to access a network or system, typically through a password or other credentials.
A process in which security professionals attempt to exploit vulnerabilities in a network or system to identify potential security risks. A security process that uses unique physical characteristics such as fingerprints or facial recognition to verify the identity of a user attempting to access a network or system.
Software programs designed to prevent, detect, and remove malicious software from a computer or network. A process that identifies and quantifies potential vulnerabilities in a network or system in order to determine the level of risk and plan appropriate security measures.

 

Patch Management Data Backup and Recovery
Authentication Encryption
Firewall Intrusion Detection System (IDS)
Intrusion Prevention System (IPS) Virtual Private Network (VPN)

 

A process of creating and storing copies of data for the purpose of restoring the original data in case of data loss, corruption, or other failures. A process that ensures a network or system is up-to-date with the latest security patches and updates to prevent vulnerabilities from being exploited.
The process of converting data into an unreadable form to prevent unauthorized access or data theft. The process of identifying a user or system, often by requiring a username and password.
A system that monitors network traffic for signs of possible malicious activity or policy violations. A hardware or software system designed to prevent unauthorized access to or from a private network.
A secure, encrypted network connection between two devices or networks over the internet. A system that monitors network traffic for signs of possible malicious activity or policy violations and takes action to prevent them.

 

Access Control Antivirus/Antimalware
Application Security Data Loss Prevention (DLP)
Penetration Testing Social Engineering
Sub-procedure Local variables

 

Software designed to detect, prevent, and remove malware and other malicious software. The process of limiting access to a system or network based on user permissions and privileges.
A strategy or system designed to prevent data loss or leakage, often by monitoring data usage and access. Protecting software applications and systems from unauthorized access, modification, or misuse.
The use of deception or manipulation to gain unauthorized access to sensitive information or systems. The process of testing a system or network for vulnerabilities by attempting to exploit them.
Variables that are only accessible within a sub-procedure. A named block of code that performs a specific task within a larger program.

 

Parameters Return statement
Abstraction Modularity
Code reuse Debugging
Top-down design Hierarchy chart

 

A statement that allows a sub-procedure to return a value to the calling code. Inputs that a sub-procedure can receive to customize its behavior.
The use of sub-procedures to break a program down into smaller, self-contained parts. The process of breaking down a problem into smaller, more manageable parts.
The process of identifying and fixing errors in code. The practice of using sub-procedures to solve common problems in multiple parts of a program.
A visual representation of a program's structure that shows the relationships between the sub-procedures. A problem-solving approach that involves breaking a problem down into smaller parts and solving them individually.

 

Flowchart Pseudocode
Decision Problem solving
Identify Solution
Specified problem IB Computer Science course

 

A high-level description of a program that uses a mixture of natural language and basic programming constructs. A diagram that shows how a program will execute, including the use of sub-procedures.
The process of finding solutions to difficult or complex issues. A choice or judgment made after consideration of various alternatives.
A method or process for resolving a problem or difficulty. To recognize, distinguish, or discern what something is.
A program of study that covers computer science concepts and principles, offered by the International Baccalaureate Organization. A particular problem that has been clearly defined or designated.

 

Importance Problem
Alternative Consideration
Judgment Process
System Components

 

A matter or situation regarded as unwelcome or harmful and needing to be dealt with and overcome. The quality of being significant or valuable.
Thoughtful and sympathetic regard or respect. One of two or more available possibilities or courses of action.
A series of actions or steps taken in order to achieve a particular end. The ability to make considered decisions or come to sensible conclusions.
Parts of the system that work together to achieve the overall function of the system. A collection of components that work together to achieve a particular function or set of functions.

 

Decisions Conditions
Logic Algorithms
Flowcharts Interactivity
Feedback Efficiency

 

Factors that influence the decisions made by the system to achieve its desired function or outcome. Choices made by the system to achieve its desired function or outcome.
A set of instructions used by the system to achieve its desired function or outcome. The reasoning behind the decisions made by the system.
The ability of the system to respond to user input or changes in the system's conditions. A visual representation of the steps taken by the system to achieve its desired function or outcome.
The amount of resources used by the system to achieve its desired function or outcome. Information provided by the system to the user or other components of the system to improve its overall function or outcome.

 

Reliability Usability
Logical Rule Deduction
Premise Conclusion
Truth Value Logical Connective

 

The ease with which the user can interact with and understand the system. The ability of the system to consistently achieve its desired function or outcome.
The process of using logical rules to draw a conclusion from a set of premises. A statement or rule that follows logically from a set of premises and can be used to reach a conclusion.
A statement that is reached after applying logical rules to a set of premises. A statement or assumption that is used as the basis for drawing a conclusion in a logical argument.
A word or phrase that connects two or more statements in logical reasoning. The truth or falsity of a statement or proposition.

 

Negation Conjunction
Disjunction Conditional
Biconditional Modus Ponens
Decision-making Situations requiring decision-making

 

A logical connective that joins two or more statements with the word 'and'. The opposite or negation of a statement or proposition.
A logical connective that joins two statements in a way that the first implies the second. A logical connective that joins two or more statements with the word 'or'.
A rule of inference that allows one to infer the consequent of a conditional statement from the antecedent. A logical connective that joins two statements in such a way that each implies the other.
Various situations in computer science where decisions need to be made, such as selecting an algorithm, designing a user interface, or choosing a programming language. The process of making choices or decisions, especially in computer science contexts where it involves selecting from various possible courses of action based on available information and resources.

 

Factors involved in decision-making Consequences of decisions
Decision-making strategies Hypothetical scenarios
Trade-offs Risk assessment
Optimization Algorithmic decision-making

 

The impact of decisions made on a project, such as success or failure, efficiency, user satisfaction, or financial outcomes. Different factors that might influence the decision-making process, such as available resources, time constraints, user needs, or technical requirements.
Imaginary situations or problems that are used to illustrate decision-making strategies and test their effectiveness. Various methods or approaches that can be used to facilitate the decision-making process, such as decision trees, cost-benefit analysis, or heuristics.
Evaluating different factors involved in a decision to determine the likelihood and impact of potential risks and hazards, especially in high-stakes technological environments such as aviation, healthcare, or finance. The process of sacrificing one feature or quality in order to gain another when making decisions in computer science contexts, such as functionality vs. usability, performance vs. security, or simplicity vs. flexibility.
The use of algorithms, data analysis, or machine learning to make decisions or recommendations in various fields such as finance, healthcare, education, or transportation, often with limited or no human involvement or oversight. The process of maximizing performance, efficiency, or effectiveness of a system or algorithm by selecting the best possible combination of inputs, parameters, or processes, often through automated or algorithmic means.

 

Human-centered design Ethical considerations
Inputs Outputs
Solution Problem
Data Parameters

 

The principles, values, and standards that guide decision-making in computer science contexts, such as privacy, security, fairness, transparency, and accountability, especially in cases where they conflict or compete with one another. A design approach that focuses on understanding the needs, behaviors, and preferences of users, and incorporating them into the design process to create more effective, usable, and satisfying products and services.
The results or responses produced by a program, function or system after processing the given input data or information. The data or information that is provided to a program, function or system in order to accomplish a task.
An issue or task that requires a solution or resolution. A program, function or system designed to solve a specific problem or accomplish a task.
Variables or values that are used to provide inputs to a program, function or system. Facts, figures or information that can be processed, analyzed, and used for decision making or to provide insights.

 

Function Algorithm
Variable Output Format
Syntax Data Types
Pre-conditions Assertion

 

A step-by-step process or procedure designed to solve a specific problem or accomplish a task. A predefined or user-defined sequence of instructions or code that performs a specific task or operation.
The structure or form in which the results or responses produced by a program, function or system are presented or displayed. A named data item or memory location used to store and manipulate data values within a program.
The classification or categorization of data values based on their characteristics, such as numeric, string, boolean, etc. The rules governing the structure and organization of programming languages or code.
A statement that must be true at a particular point in the execution of a program. The conditions that must be satisfied before a function or method is executed.

 

Input validation Boundary conditions
Pre-conditions vs post-conditions Error handling
Debugging Test cases
Code reuse Logical errors

 

Conditions that occur at the limits of a program's range of inputs or outputs. The process of ensuring that the data entered into a system or program is valid and correct.
The process of detecting, reporting, and correcting errors in a program. Pre-conditions check for the correct input or conditions before executing a function, post-conditions check for the expected output or end conditions after executing a function.
A set of inputs, execution conditions, and expected outcomes used to test a program or function. The process of identifying and fixing errors in code.
Errors that occur when the program logic does not behave as intended. The practice of using existing code in new programs or applications.

 

Syntax errors Runtime errors
Pre-Condition Post-Condition
Problem Unit Software Development
Programming Specification

 

Errors that occur when a program crashes or terminates unexpectedly during execution. Errors that occur when a program violates the rules of a programming language.
A condition that must be true after a program has executed. A condition that must be true before a program commences its execution.
The process of designing, creating, testing and maintaining all kinds of software related solutions. A specific problem or task that needs to be solved or completed using programming concepts.
A detailed description of the behavior of a program or system, including the inputs, outputs, and any other relevant details. The process of creating instructions to be executed by a computer in order to solve a particular problem or perform a particular task.

 

Invariant Formal Specification
Test Case Boundary Condition
Requirement Verification
Exception Exception Handling

 

A precise, unambiguous description of the behavior of a program or system, typically written using a mathematical notation. A condition that must always be true throughout the execution of a program.
A condition that occurs at the edge of the input domain for a program or function. Boundary conditions are important to test since they can often reveal bugs that might not otherwise be discovered. A specific input to a program or system, along with the expected output. Test cases are used to verify that the program behaves correctly under various conditions.
The process of checking that a program or system meets its stated requirements or specifications. Verification is typically performed by testing, inspection, or analysis. A statement of what a program or system must do in order to be considered correct or complete. Requirements can come from a variety of sources, such as users, customers, or regulatory agencies.
The process of anticipating, detecting, and resolving exceptions in a program. An unexpected event that occurs during program execution and disrupts the normal flow of the program.

 

Try-Catch Block Throw
Checked Exception Unchecked Exception
Finally Block Stack Trace
Exception Hierarchy RuntimeException

 

A statement used to explicitly throw an exception in a program. A programming construct used for handling exceptions. The 'try' block contains the code that could potentially generate an exception, while the 'catch' block contains the code that executes when an exception is caught.
An exception that need not be declared or caught in a program, as it cannot be anticipated at compile time. An exception that must be declared or caught in a program, as it can be anticipated at compile time.
The list of calls made to functions within a program, along with any exceptions that were caught during the course of their execution. A block of code that executes regardless of whether an exception is thrown or caught in a program.
A class of unchecked exceptions that may be thrown by the Java Virtual Machine or by a program at runtime. The ordering of exceptions in Java, such that some exceptions are subclasses of others.

 

ArithmeticException NullPointerException
Concurrent processing Parallel processing
Concurrency Deadlock
Race condition Critical section

 

A subclass of RuntimeException that may be thrown when a program attempts to access a null reference. A subclass of RuntimeException that may be thrown when an arithmetic operation produces an overflow or underflow.
A computing technique where multiple processors or cores are used to process data simultaneously, resulting in faster and more efficient processing. A type of computing where multiple processes are executed simultaneously, resulting in faster and more efficient processing.
A situation where two or more processes are unable to continue executing because they are waiting for a resource held by another process. The ability of different parts of a program to run simultaneously.
The part of a program that accesses shared resources and needs to be executed atomically. A situation that arises when two or more processes access shared data and the outcome depends on the order in which the access occurs.

 

Mutex Semaphore
Thread Process
Multithreading Multiprocessing
Abstraction Abstract Data Type

 

A synchronization primitive that is used to control access to a shared resource, especially in a multi-process or multi-threaded program. A synchronization primitive that is used to prevent multiple processes from accessing a shared resource simultaneously.
The instance of a program that is being executed; multiple processes can run concurrently on a single machine. A unit of execution within a program; many threads can run concurrently within a program.
The ability of a program or operating system to use multiple CPUs or cores for processing tasks. The ability of a program to execute multiple threads concurrently.
A data type that is defined by its behavior and not by its implementation. A technique in computer science where complex ideas are represented by simpler concepts or models.

 

Encapsulation Polymorphism
Inheritance Function
Procedure Class
Object Attribute

 

The ability of an object to take on many forms or have many behaviors. A technique where data is hidden and can only be accessed through certain methods.
A block of code that performs a specific task and can be reused throughout the program. A mechanism where one object acquires all the properties and behaviors of another object of a different type.
A blueprint for creating objects that defines a set of attributes and methods that the objects will have. A block of code that performs a specific task but does not return a value.
A characteristic of an object that defines its state. An instance of a class that has its own values for the attributes defined in the class and can call its own methods.

 

Method Variable
Linear search algorithm Binary search algorithm
Selection sort Bubble sort
Insertion sort Merge sort

 

A storage location in memory that holds a value of a specific type. A function that is defined in a class and can only be called on objects of that class.
A searching algorithm that divides the list of elements into halves, and checks which half the element may be in until the target value is found. A searching algorithm that traverses a list of elements from start to end, comparing each element with the target value until a match is found.
A sorting algorithm that repeatedly swaps adjacent elements if they are in the wrong order. A sorting algorithm that repeatedly selects the smallest element from the unsorted portion of the list and moves it to the front of the sorted portion.
A sorting algorithm that divides the list into two halves, recursively sorts each half, and then merges the sorted halves into a single sorted list. A sorting algorithm that builds the final sorted list one element at a time by inserting each element into its correct position.

 

Quick sort Radix sort
Heap sort Shell sort
Counting sort Bucket sort
Pseudocode Algorithm

 

A sorting algorithm that sorts integers by grouping them by each digit and sorting each group by that digit. A sorting algorithm that selects a pivot and partitions the elements into two groups, one with elements less than the pivot and the other with elements greater than the pivot, then recursively sorts each group.
A sorting algorithm that sorts elements that are far apart from each other first, then sorts the elements that are less far apart, and finally sorts the elements that are adjacent to each other. A sorting algorithm that builds a heap data structure from the list and repeatedly removes the maximum element and rebuilds the heap until all elements are sorted.
A sorting algorithm that divides the elements into several buckets, each of which is then sorted using another algorithm or by recursively applying the bucket sort. A sorting algorithm that counts the number of occurrences of each element and uses this information to place each element into its sorted position.
A step-by-step procedure or formula used to solve a problem. A high-level description of a computer program or algorithm that uses natural language statements and common programming terms.

 

Syntax Conventions
Flowchart Variable
Control Structures Function
Parameter Return Value

 

The standard and commonly accepted ways of formatting and organizing code, including the use of indentation, comments, and naming conventions. The rules that govern the structure of programming languages, including the correct use of punctuation, keywords, and other elements.
A named storage location in a computer program that can hold a value that may change during the program's execution. A visual representation of the steps in an algorithm or program, often using diagrams or symbols, to aid in understanding and debugging.
A reusable block of code that performs a specific task, often with inputs and outputs. Statements or blocks of code that control the flow of execution in a program, including loops, conditionals, and exceptions.
The output or result of a function or calculation, often used to assign a value to a variable or display information to the user. A value or variable that is passed into a function as input, to be used in computations or operations.

 

Comment Debugging
Algorithm efficiency Time complexity
Space complexity Big O notation
Asymptotic analysis Best case scenario

 

The process of identifying and fixing errors or bugs in a computer program, often using tools like print statements or software debuggers. Text within a program that explains or clarifies the code, but is not executed by the computer during runtime.
The amount of time taken for an algorithm to run based on the input size. The measure of how well an algorithm performs based on its use of computer resources such as time and memory.
A mathematical notation used to describe the upper bound of the time or space complexity of an algorithm. The amount of memory an algorithm requires to execute based on the input size.
The scenario in which an algorithm performs at its best based on the input size. The analysis of the algorithm performance as the input size approaches infinity.

 

Worst case scenario Average case scenario
Linear search Binary search
Selection sort Bubble sort
Algorithm Input data

 

The scenario in which an algorithm performs on average based on a range of input sizes. The scenario in which an algorithm performs at its worst based on the input size.
An algorithm that searches for a specific value in a sorted list by repeatedly dividing the search interval in half. An algorithm that searches for a specific value in a list by checking each element one by one.
An algorithm that sorts a list by repeatedly swapping adjacent elements if they are in the wrong order. An algorithm that sorts a list by repeatedly finding the minimum element and swapping it with the first unsorted element.
The data that is given to an algorithm as input. A set of instructions that solve a problem or perform a specific task in a finite amount of time.

 

Step Run time
Efficiency Analyze
Determine Data unit
Complexity Asymptotic

 

The amount of time it takes for an algorithm to execute. A single operation or action that is performed by an algorithm.
To examine and evaluate the structure and performance of an algorithm. The ability of an algorithm to use the least amount of resources possible to solve a problem.
The smallest piece of data that an algorithm can process. To find out or calculate the number of times a step in an algorithm will be performed.
A way of analyzing the performance of an algorithm as the input size grows to infinity. A measure of the performance of an algorithm as the input size increases.

 

Big O notation Time complexity
Fundamental operations Compound operations
Instruction set Instruction cycle
Machine code Assembly language

 

The amount of time it takes for an algorithm to run, as a function of the size of its input. A notation used to describe the complexity of an algorithm in terms of its worst-case performance.
Operations consisting of multiple fundamental operations, often resulting in more complex computations. Basic operations performed by a computer processor, such as arithmetic and logic operations.
The sequence of steps a processor goes through to fetch, decode, execute, and store an instruction. The collection of fundamental and compound operations that a computer processor can execute.
A low-level programming language that uses mnemonics to represent instructions, providing a more human-readable alternative to machine code. The binary representation of instructions that a processor can execute directly.

 

Compiler Interpreter
Algorithm Flowchart
Pseudocode Cache
Syntax Data Types

 

A program that executes high-level code directly, without translating it into machine code or assembly language. A program that translates high-level code into machine code or assembly language.
A graphical representation of an algorithm, using symbols and arrows to depict the sequence of operations. A step-by-step procedure for solving a problem, often expressed as a sequence of fundamental and/or compound operations.
A high-speed memory that stores frequently accessed data or instructions, to reduce the time required to fetch them from main memory or secondary storage. A human-readable language for expressing algorithms, using a syntax that resembles high-level programming languages but without enforcing strict rules.
Categories that define what type of data can be stored and manipulated in a programming language, such as integers, floating point numbers, and strings. The set of rules that define the correct structure and formatting for statements and commands in a programming language.

 

Variables Conditional Statements
Loops Functions
Objects Class
Inheritance Polymorphism

 

Statements that allow a program to make decisions and execute certain actions based on certain conditions being met. Named storage locations in a program that store data values for later use.
Reusable blocks of code that perform a specific task and can be called by other parts of the program. Statements that allow a program to repeat a set of actions multiple times, either for a fixed number of iterations or until a certain condition is met.
A blueprint or template for creating objects that define the properties and behaviors that those objects will have. Instances of classes that contain data and methods for manipulating that data.
The ability of objects to take on multiple forms or behaviors based on their context or the type of object they are interacting with. The ability of objects to acquire properties and methods from parent objects, allowing for code reuse and modularity.

 

Debugging High-Level Language
Higher Level Languages Interpreted Language
Compiled Language Object-Oriented Programming
Python Java

 

A programming language that is designed to be easy for humans to read and write, often using words and phrases that are similar to natural language. The process of identifying and fixing errors or bugs in a program.
A type of programming language where code is interpreted and executed by the computer, without the need for compilation. Programming languages that are closer to human language and easier to read and write than low-level languages, such as assembly or machine code.
A programming paradigm that focuses on the creation of objects that can interact with each other to perform certain tasks. A type of programming language where code is translated into machine language and executed directly by the computer after compilation.
A high-level, object-oriented programming language that is widely used for developing desktop applications, web applications, and mobile apps. A high-level, interpreted programming language that is widely used for scripting, automation, web development, and scientific computing.

 

C++ JavaScript
PHP Ruby
Limitations Benefits
Translation Process Compiler

 

A high-level, interpreted programming language that is widely used for front-end and back-end web development, game development, and desktop applications. A high-level, object-oriented programming language that is widely used for developing system software, game engines, and complex applications.
A high-level, interpreted programming language that is widely used for web development, especially for building web applications with the Ruby on Rails framework. A high-level, server-side scripting language that is widely used for web development, especially for building dynamic websites and e-commerce platforms.
The advantages or strengths of using higher level programming languages, such as improved productivity, readability, portability, and flexibility. The weaknesses or disadvantages of low-level programming languages, such as poor readability, high complexity, and hardware dependency.
A program that translates code written in a high-level language to machine code all at once, generally resulting in an executable file. The process of converting code written in a high-level language to machine executable form.

 

Interpreter Assembler
High-level Language Low-level Language
Source Code Object Code
Linker Loader

 

A program that translates assembly language code into machine code. A program that reads code written in a high-level language and immediately executes it.
A language that is designed to be easily understood by machines, typically represented in binary form. A language which is designed to be easily read and written by humans, and typically has a complex syntax and a large set of operations built-in.
The machine-readable code that results from compiling or otherwise translating source code. The human-readable code written in a high-level language before it is compiled or otherwise translated into machine code.
A program that loads an executable file into memory so that it can be executed by a computer. A program that combines object code files into a single executable file that can run on a computer.

 

Debugging Variable
Constant Operator
Object Data Type
Primitive Data Type Reference Data Type

 

A named storage location in memory whose value can be changed during program execution. The process of finding and fixing errors or bugs in code.
A symbol that represents a specific operation to be performed on one or more operands. A named storage location in memory whose value cannot be changed during program execution.
A classification of data that specifies the type of operations that can be performed on it. An instance of a class that contains data and the operations that can be performed on that data.
A data type that is used to refer to an object, rather than directly containing its data. A data type that is not an object, but a basic type that is built into the programming language.

 

Declaration Initialization
Arithmetic Operator Relational Operator
Logical Operator =
. <

 

The process of assigning an initial value to a variable. The process of defining a variable, specifying its data type and name.
An operator that compares the values of two operands, such as 'less than', 'greater than', and 'equal to'. An operator that performs mathematical calculations, such as addition, subtraction, multiplication, and division.
The assignment operator used to assign a value to a variable. An operator that performs logical operations, such as 'and', 'or', and 'not'.
The less than operator used to check if one value is less than another. The dot operator used to access a member of an object.

 

<= >
>= mod
div AND
OR NOT

 

The greater than operator used to check if one value is greater than another. The less than or equal to operator used to check if one value is less than or equal to another.
The modulus operator used to get the remainder of a division operation. The greater than or equal to operator used to check if one value is greater than or equal to another.
The logical operator used to perform a logical AND operation. The integer division operator used to get the integer quotient of a division operation.
The logical operator used to perform a logical NOT operation. The logical operator used to perform a logical OR operation.

 

XOR

 

The logical operator used to perform a logical XOR operation.

 

Collection
List Set

 

A data structure that holds a group of elements, which could be of different data types.
A collection that is unordered and does not allow duplicates. A collection that is ordered and allows duplicates. Every element in the list has an index.

 

Dictionary Stack
Queue Array
Linked List Data Structure
Sorting Searching

 

An ordered collection where elements are added and removed from the top. It follows the Last-In-First-Out principle (LIFO). A collection that is unordered, but instead of having an index there is a key that can be used to access the elements.
A collection that is ordered and allows duplicates, but cannot change size. An ordered collection where elements are added to the back and removed from the front. It follows the First-In-First-Out principle (FIFO).
A way of organizing and storing data so that it can be accessed and modified efficiently. A collection that is ordered and allows duplicates. Every element is linked to the next element, and it can change size.
The process of finding a particular element in a collection. The process of arranging elements in a collection in a particular order.

 

Data Retrieval Collection
Access Method Index
Key Iterator
Algorithm Pseudocode

 

A data structure that holds a group of elements, which can be of different data types, and provides methods for accessing, adding, and removing elements from the collection. The process of accessing data from a collection or database.
A numerical value that represents the position of an element in a collection, starting from 0 for the first element. A way to retrieve or modify an element in a collection, such as using an index, a key, or an iterator.
An object that provides a way to traverse a collection and access its elements one by one, without knowing their specific positions or keys. A unique identifier that corresponds to an element in a collection, such as a string or a number.
A high-level language that uses a mix of natural language and programming constructs to describe the logic of an algorithm, without worrying about the specific syntax of a programming language. A set of steps or instructions for solving a specific problem, often expressed in pseudocode or a programming language.

 

Linear Search Binary Search
Sorting Selection Sort
Insertion Sort

 

A method for finding an element in a sorted collection by dividing the collection in half, comparing the target element to the middle element, and repeating the process on the half where the target element might be. A method for finding an element in a collection by checking each element in order, from the first to the last.
A sorting algorithm that repeatedly selects the smallest element from the unsorted part of the collection and puts it at the beginning of the sorted part. The process of arranging the elements in a collection in a specific order, such as ascending or descending, based on some criteria, such as the element's value or key.
A sorting algorithm that builds the sorted part of the collection one element at a time, by comparing each element to the elements in the sorted part and inserting it in the correct position.

 

 

 

Recursion
Base case Recursive case
Iteration Factorial
Fibonacci sequence Binary search

 

A programming technique in which a function calls itself directly or indirectly in order to solve a problem.
The condition that continues the recursion; the condition in which the function calls itself. The condition that stops the recursion; the simplest possible solution to a particular problem.
The product of all positive integers from 1 up to a given number. A repetitive process that repeats a series of steps over and over again until a certain condition is met.
A searching algorithm that divides the search interval in half at every step. A infinite sequence of numbers where each number is the sum of the two preceding ones, starting from 0 and 1.

 

Recursive backtracking Fractal
Tree traversal Maze solving
Tower of Hanoi Recursive thinking
Recursion Base case

 

A geometric shape whose parts resemble the whole, even when magnified. An algorithm that solves a problem by choosing options at each step, and backtracking when a chosen option does not lead to a solution.
An application of recursive thinking that involves finding a path from the start to the finish of a maze. The process of visiting all the nodes in a tree in a specific order.
A problem-solving approach that involves breaking down a problem into smaller, more manageable sub-problems that can be solved using the same solution. This is done repeatedly until the sub-problems become simple enough to be solved easily. A puzzle in which a tower of discs of different sizes is moved from one peg to another, with the constraint that only one disc can be moved at a time, and a larger disc cannot be placed on top of a smaller one.
A condition where the function stops calling itself and returns a value. A problem-solving technique that involves solving a problem by calling a function within the same function.

 

Recursive algorithm Inductive reasoning
Iteration Tail recursion
Stack overflow Memoization
Binary recursion Linear recursion

 

A reasoning process that involves using specific observations and examples to make a generalization or prediction. An algorithm that uses recursion as its main problem-solving technique.
A recursion technique where the recursive call is the last statement in a function. This allows the compiler to optimize the code and reduce the amount of memory used. The repeating of a process or set of instructions until a specific condition is met.
A technique where the results of a function call are stored in memory to avoid redundant calculations. An error that occurs when the stack size exceeds the memory limit set by the operating system.
A recursion technique where the problem is divided into one sub-problem. The sub-problem is solved recursively and the result is combined with the original problem. A recursion technique where the problem is divided into two sub-problems. Each sub-problem is solved recursively, and the results are combined to solve the original problem.

 

Iteration vs. recursion Recursive algorithm
Base case Recursive case
Recursion depth Factorial
Fibonacci sequence Binary search

 

A function or subroutine that calls itself within its own code to solve a problem. Two problem-solving approaches that are used to solve problems. Iteration involves using loops to repeat a set of instructions, while recursion involves calling a function within the same function.
The condition that the function calls itself. An initial condition that determines when the recursion should stop.
The product of all positive integers less than or equal to a given positive integer. The number of times a function calls itself during the recursive process.
A search algorithm that finds the position of a target value within a sorted array. A series of numbers in which each number is the sum of the two preceding ones.

 

Merge sort Quicksort
Tower of Hanoi Backtracking
Depth-first search Stack
Push Pop

 

A sorting algorithm that works by partitioning an array into smaller sections, sorting those sections, and then recursively sorting the subarrays. A sorting algorithm that works by dividing an array into smaller sections, sorting those sections, and then merging them back together.
A recursive algorithmic technique that involves trying out different solutions to a problem, and abandoning a solution as soon as it is determined to be invalid. A mathematical puzzle that involves moving a stack of disks from one pole to another, using a third pole as an intermediate.
A data structure consisting of a collection of elements, each identified by an index or a key, where the order of elements follows a last-in, first-out (LIFO) principle. A graph traversal algorithm that explores as far as possible along each branch before backtracking.
The operation of removing the top element from a stack. The operation of adding an element to the top of a stack.

 

Peek Empty Stack
Full Stack Stack Pointer
Application Expression Evaluation
Function Call Backtracking

 

A stack that contains no elements. The operation of accessing the top element of a stack without removing it.
A variable that points to the top element of a stack. A stack that contains the maximum number of elements it can hold.
A process of computing the value of an arithmetic expression, such as 2 + 3 * 4, using a stack to store operands and operators according to their precedence and associativity. A program or a part of a program that uses a stack to accomplish a specific task, such as implementing expression evaluation, function call, or backtracking.
A technique for exploring all possible solutions to a problem by maintaining a stack of choices and undoing them when they lead to a dead-end, until a valid solution is found. A process of invoking a function by pushing its arguments and return address onto a stack, executing the function code, and returning the result by popping the stack.

 

Compiler Stack
Push Pop
Peek Empty stack
Full stack Stack access methods

 

A data structure that operates in a last-in first-out (LIFO) manner. A program that translates source code into machine code and usually uses a stack to implement control flow constructs, such as if, while, and for, and to allocate and deallocate memory for local variables and function parameters.
A method of removing the item at the top of the stack. A method of adding an item to the top of the stack.
A stack with no elements. A method of accessing the item at the top of the stack without removing it.
Methods of accessing the elements in a stack, including push, pop, and peek. A stack with the maximum number of elements it can hold.

 

Algorithm Constructing algorithms with stacks
LIFO Dynamic memory allocation
Memory leak Queue
FIFO Enqueue

 

Developing algorithms that use stack access methods to solve a problem. A finite sequence of steps for solving a problem.
Allocating memory as needed during program execution. Last-In, First-Out, the order in which elements are removed from a stack.
A collection of elements that supports adding elements to the end of the collection and removing elements from the front of the collection. A situation in which a program fails to release memory that is no longer needed, leading to a reduced amount of available memory and potential program crashes.
The operation of adding an element to the end of a queue. An acronym for 'first in, first out,' which describes the order in which elements are added to and removed from a queue.

 

Dequeue Circular Queue
Priority Queue Buffer
Job Queue Print Queue
Linked List Array

 

A queue in which the last element is connected to the first element to form a circular structure. The operation of removing an element from the front of a queue.
A queue used to temporarily store data or commands before they are processed or executed. A queue in which elements are assigned a priority and removed according to their priority level.
A queue used to manage and prioritize print jobs sent to a printer or print server. A queue used to manage the execution of multiple processes or tasks in a computer system.
A data structure that stores a fixed-size sequence of elements of the same data type in contiguous memory locations. A data structure composed of nodes that are linked together by pointers or references.

 

Array-based Queue Queue
Enqueue Dequeue
Peek Front
Rear Circular Queue

 

A data structure in which elements are inserted at one end and removed from the other end, following a First-In-First-Out (FIFO) order. A queue implemented using an array to store the elements.
The operation of removing an element from the front (head) of the queue. The operation of adding an element to the rear (tail) of the queue.
The element at the front (head) of the queue. The operation of retrieving the element at the front (head) of the queue without removing it.
A variation of the regular queue in which the last element points back to the first element in the queue. The element at the rear (tail) of the queue.

 

Priority Queue Simple Queue
Linked Queue Queue ADT
Bounded Queue Static Stack
Static Queue Array

 

A basic queue implementation in which elements are inserted at the rear and removed from the front in a linear order. A specialized type of queue in which each element is associated with a priority and is served according to its priority.
The Abstract Data Type (ADT) that defines the behavior and properties of a queue data structure. A queue implementation that uses a linked list data structure to store elements, with each element pointing to the next one in the list.
A stack is a data structure that follows the Last-In-First-Out (LIFO) principle and where the elements are added and removed from the top of the stack. In a static stack, the size of the stack is fixed at creation time. A queue implementation that has a maximum size limit and can only hold a fixed number of elements at any given time.
An array is a collection of elements of the same data type ordered sequentially in memory and identified by a common name. A queue is a data structure that follows the First-In-First-Out (FIFO) principle and where the elements are added at the back and removed from the front of the queue. In a static queue, the size of the queue is fixed at creation time.

 

Data Structure Implementation
Push Pop
Enqueue Dequeue
Time Complexity Big O Notation

 

The process of putting a decision or plan into effect by performing specific actions and operations. A data structure is a way of organizing and storing data in a computer program so that it can be accessed and used efficiently.
The operation to remove and return the top element from a stack. The operation to add an element to the top of a stack.
The operation to remove and return the front element from a queue. The operation to add an element to the back of a queue.
A mathematical notation that describes the upper bound of the time complexity of an algorithm in terms of the size of the input data. It is used to compare the performance of different algorithms. The amount of time required by an algorithm to complete its execution as a function of the size of the input data.

 

Space Complexity Linked list
Node Singly linked list
Doubly linked list Circular linked list
Traversal Insertion

 

A data structure consisting of a group of nodes in which each node has a reference to the next node in the sequence. The amount of memory required by an algorithm to complete its execution as a function of the size of the input data.
A linked list in which each node only has a reference to the next node in the sequence. An object that contains data and a reference to the next node in the sequence.
A linked list in which the last node has a reference to the first node in the sequence, forming a loop. A linked list in which each node has a reference to both the next and previous nodes in the sequence.
The process of adding a new node to a linked list. The process of visiting each node in a linked list in order.

 

Deletion Head
Tail Memory allocation
Real-life application Linked List
Node Pointer

 

The first node in a linked list. The process of removing a node from a linked list.
The process of reserving memory for nodes in a linked list. The last node in a linked list.
A data structure in which elements are linked using pointers to form a sequence of nodes. A practical use or example of linked lists, such as representing playlists in a music player or bookkeeping in accounting software.
A variable that stores the memory address of another variable or object. An element in a linked list that stores a value and a pointer to the next (and/or previous) node.

 

Singly Linked List Doubly Linked List
Circular Linked List Head
Tail Traversal
Insertion Deletion

 

A linked list in which each node contains two pointers, one to the next node and one to the previous node in the sequence. A linked list in which each node contains only one pointer to the next node in the sequence.
The first node in a linked list. A linked list in which the last node points back to the first node in the sequence, forming a circular loop.
The process of visiting each node in a linked list in a specific order. The last node in a linked list.
The process of removing a node from a linked list at a specific position. The process of adding a new node to a linked list at a specific position.

 

Notation parent
left-child right-child
subtree root
leaf binary tree

 

A node in a tree structure that has one or more child nodes attached to it. A system for representing information, often in a symbolic or diagrammatic form.
The child node in a binary tree that is positioned to the right of its parent node. The child node in a binary tree that is positioned to the left of its parent node.
The top node of a tree structure from which all other nodes descend. A portion of a tree that can be viewed as a smaller tree in itself, as it contains its own root and descendants.
A tree structure in which each node has at most two child nodes. A node in a tree structure that does not have any child nodes attached to it.

 

height depth
ancestors descendants
level Tree traversal
Inorder traversal Postorder traversal

 

The number of edges on the path from the root node to a given node. The number of edges on the longest path from a node to a descendant leaf node.
Nodes that are reachable from a given node by following descending edges. Nodes on the path from the root node to a given node.
The process of visiting each node in a tree data structure exactly once, in a systematic order. The distance from the root node to a node, where the root node is level 0.
A method of traversing a binary tree such that the left subtree is visited, then the right subtree, then the root. A method of traversing a binary tree such that the left subtree is visited, then the root, then the right subtree.

 

Preorder traversal Depth-first traversal
Breadth-first traversal Traversal order
Inorder result Postorder result
Preorder result Traversal algorithm

 

A method of traversing a tree data structure where each branch is visited as far as possible before backtracking. A method of traversing a binary tree such that the root is visited, then the left subtree, then the right subtree.
The sequence in which the nodes of a tree data structure are visited during a traversal. A method of traversing a tree data structure where all nodes at a given depth are visited before moving on to nodes at the next depth.
The sequence of nodes visited during a postorder traversal of a binary tree. The sequence of nodes visited during an inorder traversal of a binary tree.
A specific method for traversing a tree data structure, such as inorder, postorder, or preorder traversal. The sequence of nodes visited during a preorder traversal of a binary tree.

 

Recursive traversal Binary tree
Node Root
Parent Child
Leaf Binary search tree

 

A tree data structure in which each node has at most two children, referred to as the left child and the right child. A traversal algorithm that uses recursion to visit nodes in a tree data structure.
The topmost node of a tree, from which all other nodes are descended. A basic unit of a tree that contains data and one or more references to other nodes.
A node directly connected to another node when moving towards the root. A node that has one or more child nodes.
A binary tree where the left child of a node contains items that are less than the node's item and the right child contains items that are greater than the node's item. A node with no children.

 

Complete binary tree Perfect binary tree
Balanced binary tree Sketch
Identify Dynamic data structure
Advantages Disadvantages

 

A binary tree where all interior nodes have two children and all leaves have the same depth. A binary tree in which every level, except possibly the last, is completely filled, and all nodes are as far left as possible.
To draw a rough or unfinished version of something. A binary tree where the height of the two subtrees of every node differ by no more than one.
A data structure in which the size can be modified during the execution of a program. To recognize or distinguish something from others by features or characteristics.
Drawbacks of dynamic data structures, such as extra programming complexity and potential memory leaks. Benefits gained from using dynamic data structures, such as flexibility and efficiency of memory allocation.

 

Array List
Stack Queue
Linked list Dynamic memory allocation
Pointer Memory management

 

A dynamic data structure that represents a collection of elements that are not necessarily stored in contiguous memory locations. A dynamic data structure that represents a collection of elements in contiguous memory locations.
A dynamic data structure that implements the First-In-First-Out (FIFO) principle for adding and removing elements. A dynamic data structure that implements the Last-In-First-Out (LIFO) principle for adding and removing elements.
A process of allocating memory dynamically at runtime, as opposed to static memory allocation at compile time. A dynamic data structure in which each element contains a reference to the next element in the list.
The process of allocating and deallocating memory in a program. A variable that stores the memory address of another variable.

 

Garbage collection Static Data Structure
Dynamic Data Structure Array
Linked List Stack
Queue Static Memory Allocation

 

A data structure that has a fixed size, and its size cannot be changed at runtime. A technique for automatic memory management that automatically identifies and frees unused memory.
A collection of elements of similar data type stored in contiguous memory locations. A data structure that can change its size dynamically during program execution.
A linear data structure in which elements can be added and removed only from one end, called the top. A collection of elements that are not stored at contiguous memory locations. Each element points to the next element by means of a pointer.
The process of allocating a fixed amount of memory to a variable at compile time. A linear data structure in which elements can be added at one end and removed from the other end.

 

Dynamic Memory Allocation Advantages of Static Data Structures
Advantages of Dynamic Data Structures Disadvantages of Static Data Structures
Disadvantages of Dynamic Data Structures Computer system resources
CPU RAM

 

Fast access, efficient memory usage, better cache performance. The process of allocating memory to a variable at runtime using functions such as malloc and calloc.
Limited size, wastage of memory space if the structure is not fully utilized. Flexible, can change size at runtime, can save memory space.
The components of a computer system that are necessary for it to function, including hardware and software resources. May require more time to access elements, risk of memory leaks if memory not released properly.
Random Access Memory, the temporary storage space for data that a computer needs to access quickly. Central Processing Unit, the part of the computer that carries out instructions of a computer program.

 

ROM Cache
Registers Input devices
Output devices Storage devices
Bandwidth Latency

 

A small amount of fast memory that stores frequently accessed data for quick retrieval. Read Only Memory, the permanent storage space for data that cannot be changed.
Hardware devices used to input data into a computer, such as keyboards or mice. Small, high-speed data storage areas within the CPU.
Hardware devices used for long-term data storage, such as hard drives or SSDs. Hardware devices used to output data from a computer, such as monitors or printers.
The delay between the time a request is made and the time a response is received. The amount of data that can be transmitted over a network in a given amount of time.

 

Processing power

 

The ability of a computer system to carry out tasks quickly and efficiently.