| Term | Definition |
|---|---|
| bias | Prejudice or systematic error in computing innovations that can result from algorithms or data, reflecting existing human prejudices. |
| collaboration | The process of working together with others to develop computing innovations that benefit from diverse talents and perspectives. |
| communication | The exchange of information between developers and users to understand needs and incorporate diverse perspectives into computing innovations. |
| computing innovation | A new or improved computer-based product, service, or concept that includes a program as an integral part of its function, which can be physical, nonphysical software, or a nonphysical concept. |
| conflict resolution | The process of addressing and resolving disagreements or disputes that arise during collaboration. |
| consensus building | The process of working toward agreement among team members on decisions and goals. |
| consultation | The process of seeking input and advice from users and stakeholders during the development of computing innovations. |
| diversity of talents and perspectives | The range of different skills, experiences, and viewpoints that team members bring to the development of a computing innovation. |
| feedback | Information or comments provided by others to evaluate, critique, or improve ideas, code, or documents. |
| interpersonal skills | Abilities used to interact effectively with others, including communication, consensus building, conflict resolution, and negotiation. |
| negotiation | The process of discussing and reaching agreement on terms, decisions, or compromises within a collaborative team. |
| pair programming | A collaborative development practice where two programmers work together at the same workstation, with one writing code and the other reviewing it in real-time. |
| Term | Definition |
|---|---|
| audio output | Program output in the form of sound or music produced by a device. |
| code segment | A portion of a program consisting of one or more lines of code that performs a specific function. |
| computing innovation | A new or improved computer-based product, service, or concept that includes a program as an integral part of its function, which can be physical, nonphysical software, or a nonphysical concept. |
| creative expression | The use of computing innovations to create, communicate, or share ideas, art, or other forms of human expression. |
| event | An action associated with input data that is supplied to a program, such as a key press or mouse click. |
| event-driven programming | A programming approach where program statements are executed when triggered by events rather than through sequential flow of control. |
| execution | The process of running a program or code segment on a computer. |
| program | A collection of program statements that performs a specific task when run by a computer; also referred to as software. |
| program behavior | How a program functions during execution, often described by how a user interacts with it. |
| program input | Data in various forms (tactile, audio, visual, or text) that is sent to a program for processing. |
| program output | Any data sent from a program to a device, which can take various forms such as tactile, audio, visual, or text. |
| program state | The current values and conditions of a program's internal variables and data at any given time. |
| program statements | Individual instructions or commands that make up a program or code segment. |
| purpose | The intended goal or function of a computing innovation, such as solving a problem or enabling creative expression. |
| tactile output | Program output that can be felt or perceived through touch, such as vibrations or haptic feedback. |
| text output | Program output in the form of written characters or strings displayed to the user. |
| visual output | Program output displayed on a screen or device that can be seen, such as images, graphics, or animations. |
| Term | Definition |
|---|---|
| acknowledge | To formally recognize and credit the source or author of code segments used in a program. |
| code segment | A portion of a program consisting of one or more lines of code that performs a specific function. |
| collaborative | Developed or created jointly with other programmers or sources. |
| comments | A form of program documentation written into the program to be read by people that does not affect how a program runs. |
| design phase | The stage in program development where the approach to accomplishing a program specification is outlined and planned. |
| designing | A phase of program development where developers plan the structure and approach for solving the problem. |
| development process | A systematic approach to creating a program that may be ordered and intentional or exploratory in nature. |
| functional components | Individual parts of a program designed to perform specific functions or operations. |
| incremental development process | A development process that breaks a problem into smaller pieces and ensures each piece works before integrating it into the whole program. |
| investigating and reflecting | A phase of program development where developers examine the problem, gather information, and think critically about requirements and solutions. |
| investigation | The process of gathering information to understand program requirements, constraints, and the needs of users. |
| iterative development process | A development process that involves repeated cycles of refinement and revision based on feedback, testing, or reflection, which may require revisiting earlier phases. |
| module | Distinct, self-contained components of a program that can be organized and developed separately. |
| origin | The source or starting point of code, including where it came from or who originally created it. |
| program constraints | Limitations or restrictions that affect how a program can be designed and developed. |
| program documentation | A written description of the function of a code segment, event, procedure, or program and how it was developed. |
| program requirements | The specifications and conditions that define what a program must accomplish and how it should behave. |
| program specification | A detailed definition of the requirements that a program must meet. |
| prototyping | A phase of program development where developers create a preliminary version of the program to test ideas and concepts. |
| storyboarding | A planning technique used during the design phase to visualize the sequence of user interactions and program flow. |
| testing | A phase of program development where developers verify that the program works correctly and meets requirements. |
| testing strategy | A plan developed during the design phase that outlines how a program will be tested to ensure it meets its requirements. |
| user interface | The visual and interactive elements of a program that allow users to interact with and control the application. |
| user testing | A method of investigation where actual or potential users interact with a program to provide feedback on its functionality and design. |
| Term | Definition |
|---|---|
| algorithm | Step-by-step procedures or sets of rules designed to solve a problem or accomplish a task. |
| debuggers | Software tools that help programmers find and correct errors by allowing them to step through code execution and inspect variables. |
| defined inputs | Specific, predetermined data values used to test an algorithm or program. |
| expected behaviors | The correct or anticipated actions and responses that an algorithm or program should exhibit when executed. |
| expected outputs | The correct or anticipated results that an algorithm or program should produce for given inputs. |
| extremes | The minimum and maximum boundary values of input data used in testing to verify program behavior at limits. |
| hand tracing | A debugging technique where a programmer manually follows the execution of a program step-by-step to identify errors. |
| logic error | A mistake in an algorithm or program that causes it to behave incorrectly or unexpectedly. |
| overflow error | An error that occurs when a computer attempts to handle a number that is outside of the defined range of values. |
| program | A collection of program statements that performs a specific task when run by a computer; also referred to as software. |
| program input | Data in various forms (tactile, audio, visual, or text) that is sent to a program for processing. |
| program requirements | The specifications and conditions that define what a program must accomplish and how it should behave. |
| run-time error | A mistake in a program that occurs during the execution of a program. |
| syntax error | A mistake in a program where the rules of the programming language are not followed. |
| test cases | Specific inputs and expected outputs used to verify that a program behaves correctly. |
| testing | A phase of program development where developers verify that the program works correctly and meets requirements. |
| visualizations | Graphical representations of program execution or data structures used to identify and understand errors. |
| Term | Definition |
|---|---|
| abstraction | The process of reducing complexity by focusing on main ideas and hiding irrelevant details to allow focus on the essential concept. |
| analog data | Data that have values changing smoothly and continuously over time, such as pitch, volume, or position. |
| binary | A base-2 number system that uses only the digits 0 and 1 to represent data. |
| bit | Shorthand for binary digit; the smallest unit of data in computing, represented as either 0 or 1. |
| byte | A unit of digital data consisting of 8 bits. |
| constants | Fixed data values that do not change during program execution. |
| data | Information represented in a form that can be processed by a program, such as numbers, text, or records. |
| decimal | A base-10 number system that uses the digits 0-9 to represent data. |
| fixed number of bits | A predetermined, limited quantity of bits allocated to represent a data value in programming languages, which constrains the range of representable values. |
| integers | Whole numbers (positive, negative, or zero) that are represented in programming languages using a fixed number of bits. |
| number bases | Different systems for representing numerical values, such as binary (base 2) and decimal (base 10). |
| overflow | An error that occurs when a computed value exceeds the maximum value that can be represented by a fixed number of bits. |
| place value | The numeric value assigned to a digit's position in a number, determined by the base raised to the power of the position. |
| real numbers | Numbers that include both integers and decimal values, represented in programming languages with a fixed number of bits as approximations. |
| roundoff error | An error that occurs when real numbers are approximated in computer storage due to limitations in the fixed number of bits used to represent them. |
| sampling | A technique for approximating analog data digitally by measuring values of an analog signal at regular intervals. |
| variable | A named container in a program that stores a value which can be changed through assignment. |
| Term | Definition |
|---|---|
| bit | Shorthand for binary digit; the smallest unit of data in computing, represented as either 0 or 1. |
| data compression algorithms | Methods or procedures used to reduce the number of bits needed to represent data while maintaining or approximating the original information. |
| lossless data compression | A compression algorithm that reduces the number of bits stored or transmitted while guaranteeing complete reconstruction of the original data. |
| lossy data compression | A compression algorithm that significantly reduces the number of bits stored or transmitted but only allows reconstruction of an approximation of the original data. |
| redundancy | Repetition or unnecessary duplication in data representation that can be reduced through compression. |
| Term | Definition |
|---|---|
| bias | Prejudice or systematic error in computing innovations that can result from algorithms or data, reflecting existing human prejudices. |
| causal relationship | A relationship where one variable directly causes changes in another variable, as opposed to merely being correlated. |
| conclusion | A judgment or decision reached by analyzing and interpreting data from one or more sources. |
| correlation | A relationship between two variables in data where changes in one variable are associated with changes in another. |
| data | Information represented in a form that can be processed by a program, such as numbers, text, or records. |
| data cleaning | The process of making data uniform and consistent without changing their meaning, such as standardizing abbreviations, spellings, and capitalizations. |
| data set | A collection of related data values organized for processing and analysis. |
| data sources | Origins or locations from which data are collected or obtained. |
| facts | Specific pieces of information or observations that form the basis of data. |
| incomplete data | Data sets that are missing required information or values. |
| information | The collection of facts and patterns extracted from data that provides meaning and insight. |
| invalid data | Data that does not meet required standards or formats and cannot be properly processed. |
| metadata | Data that describes other data, such as the date of creation or file size of an image, used for finding, organizing, and managing information. |
| parallel systems | Computing systems that process data simultaneously across multiple processors or computers to handle large data sets efficiently. |
| pattern | Regularities or recurring structures that emerge from data when processed and analyzed using programs. |
| primary data | The main data itself, which remains unchanged even if its associated metadata is modified or deleted. |
| scalability | The ability of a solution to maintain or improve performance as the problem size or computational resources increase. |
| trends | General directions or tendencies in data over time or across categories. |
| variable | A named container in a program that stores a value which can be changed through assignment. |
| Term | Definition |
|---|---|
| classifying | A data processing technique that organizes data into categories or groups based on shared characteristics. |
| clean | To process digital data by removing errors, inconsistencies, or irrelevant information to improve data quality. |
| clustering | A data processing technique that groups similar data points together to identify patterns and relationships. |
| combining data | The process of merging or aggregating multiple data elements, such as adding up values or comparing records to find patterns. |
| data | Information represented in a form that can be processed by a program, such as numbers, text, or records. |
| data filtering | The process of selecting specific elements from a data set based on defined criteria to find information and recognize patterns. |
| filter | To process digital data by selecting or removing specific elements based on criteria to gain insight and knowledge. |
| filtering a data set | The process of keeping only the elements in a data set that meet specific conditions, such as selecting only positive numbers or records matching certain criteria. |
| information | The collection of facts and patterns extracted from data that provides meaning and insight. |
| insight | Understanding or knowledge gained from analyzing and processing data using programs. |
| pattern | Regularities or recurring structures that emerge from data when processed and analyzed using programs. |
| search tools | Programs or features that efficiently locate specific information within a data set. |
| spreadsheets | Programs that organize data in rows and columns to efficiently manage, analyze, and identify trends in information. |
| transforming | Modifying or restructuring digitally represented information using programs to reveal patterns and insights. |
| transforming data | The process of modifying every element in a data set according to a rule, such as doubling values or adding information to records. |
| translating | Converting digitally represented information from one format or representation to another to gain insight. |
| visualizing data | The process of representing data through charts, graphs, or other visual representations to communicate insights and patterns. |
| Term | Definition |
|---|---|
| assignment operator | A symbol or operator that allows a program to assign a value to a variable, changing what the variable represents. |
| Boolean | A data type that represents one of two values: true or false. |
| collection | A data structure that contains multiple values grouped together and can be represented by a single variable. |
| data storage | The memory location within a program where a variable's value is stored. |
| data type | A classification that specifies what kind of value a variable can hold, such as numbers, Booleans, lists, or strings. |
| expression | A combination of a value, variable, operator, or procedure call that can be evaluated to produce a single value. |
| list | An ordered sequence of elements, where each element is assigned a unique index for reference. |
| number | A data type that represents numeric values used in calculations and comparisons. |
| string | An ordered sequence of characters. |
| variable | A named container in a program that stores a value which can be changed through assignment. |
| Term | Definition |
|---|---|
| APPEND | A list procedure that adds a value to the end of a list, increasing its length by 1. |
| average | The mean value of a list of numbers, calculated by dividing the sum of all elements by the number of elements. |
| complete traversal | A list traversal where all elements in the list are accessed. |
| FOR EACH loop | An iteration statement that assigns each element of a list to a variable sequentially and executes a block of statements for each element. |
| index | The position of an element within a list, numbered starting from 1 through the length of the list. |
| INSERT | A list procedure that adds a value at a specified index, shifting existing elements to the right. |
| iteration statement | A control structure used to repeat a block of code, such as a FOR EACH loop, to traverse through elements of a list. |
| LENGTH | A list procedure that returns the number of elements currently in a list. |
| list indexing | The process of accessing elements in a list by their position, where the first element is at index 1. |
| list procedures | Built-in operations that manipulate lists, such as INSERT, APPEND, REMOVE, and LENGTH. |
| list traversal | The process of accessing elements in a list, either completely (visiting all elements) or partially (visiting only some elements). |
| maximum value | The largest element in a list, which can be determined using an iteration algorithm. |
| minimum value | The smallest element in a list, which can be determined using an iteration algorithm. |
| partial traversal | A list traversal where only a portion of the elements in the list are accessed. |
| REMOVE | A list procedure that deletes an element at a specified index and shifts remaining elements to the left. |
| sequential search | A search algorithm that examines each element in a data set one by one in order until the desired value is found. |
| sum | The total obtained by adding all elements in a list of numbers, which can be computed using iteration. |
| Term | Definition |
|---|---|
| binary search algorithm | A search algorithm that starts at the middle of a sorted data set and eliminates half of the remaining data with each iteration until the desired value is found or all elements are eliminated. |
| iterations | The repeated cycles or steps of a process; in binary search, the number of times the algorithm divides the data set in half. |
| sequential search | A search algorithm that examines each element in a data set one by one in order until the desired value is found. |
| sorted data | Data arranged in a specific order (ascending or descending) that is required for binary search to function correctly. |
| Term | Definition |
|---|---|
| argument | The actual values passed to a procedure when it is called, which correspond to the procedure's parameters. |
| flow of control | The order in which statements are executed in a program, including how control transfers to and from procedures. |
| parameter | Variables in a procedure that allow it to accept different input values, enabling the procedure to be generalized and reused with a range of inputs. |
| procedure | A named block of reusable code that performs a specific task and can be called multiple times throughout a program. |
| procedure call | A statement that executes a named procedure, interrupting sequential execution and transferring control to the procedure. |
| return values | Values that a procedure sends back to the point where it was called. |
| sequential execution | The execution of programming statements in the order they appear, one after another. |
| Term | Definition |
|---|---|
| argument | The actual values passed to a procedure when it is called, which correspond to the procedure's parameters. |
| code readability | The quality of being easy to understand and follow in a program, which is improved through the use of procedural abstraction. |
| code reuse | The practice of using existing procedures or code in multiple places within a program to avoid duplication and manage complexity. |
| modularity | The subdivision of a computer program into separate subprograms or modules to manage complexity. |
| parameter | Variables in a procedure that allow it to accept different input values, enabling the procedure to be generalized and reused with a range of inputs. |
| procedural abstraction | A programming technique that provides a name for a process and allows a procedure to be used by knowing what it does without needing to know how it works internally. |
| procedure | A named block of reusable code that performs a specific task and can be called multiple times throughout a program. |
| RETURN statement | A statement that causes a procedure to immediately exit and return a value to the calling statement. |
| subproblems | Smaller, more manageable problems that together form the solution to a larger problem in a program. |
| Term | Definition |
|---|---|
| application program interface | Specifications that define how procedures in a library behave and how they can be used in programs. |
| code segment | A portion of a program consisting of one or more lines of code that performs a specific function. |
| documentation | Written information that explains the behaviors provided by an API or library and how to use them. |
| procedure | A named block of reusable code that performs a specific task and can be called multiple times throughout a program. |
| software library | A collection of pre-written procedures and code that can be reused in creating new programs. |
| Term | Definition |
|---|---|
| random integer | A whole number selected randomly from a specified range, where each integer in that range has an equal probability of being chosen. |
| random number generation | The process of using a program function to produce unpredictable numeric values, where each program execution may produce different results. |
| random values | Numbers generated by a program where each possible outcome is equally likely to occur, and the specific result cannot be predicted in advance. |
| RANDOM(a, b) | A function that generates and returns a random integer from a to b, inclusive, where each result is equally likely to occur. |
| Term | Definition |
|---|---|
| abstractions | Simplified representations of more complex objects or phenomena created by removing specific details or simplifying functionality. |
| bias | Prejudice or systematic error in computing innovations that can result from algorithms or data, reflecting existing human prejudices. |
| hypotheses | Testable predictions or proposed explanations about objects or phenomena that can be formulated and refined through simulations. |
| random number generators | Computational tools that produce sequences of random values to simulate the variability and unpredictability found in real-world events. |
| real-world phenomena | Events, processes, or systems that occur in nature or society that can be represented or studied through computational models. |
| simulations | Abstractions of real-world objects or phenomena that use varying sets of values to represent changing states for a specific purpose. |
| variability | The natural differences and unpredictability that exist in real-world systems and can be represented in simulations. |
| Term | Definition |
|---|---|
| algorithm | Step-by-step procedures or sets of rules designed to solve a problem or accomplish a task. |
| approximate solution | A solution that is not guaranteed to be optimal but is sought when efficient algorithms for finding optimal solutions are impractical. |
| decision problem | A problem that requires a yes-or-no answer as output. |
| efficiency | An estimation of the amount of computational resources (such as time or memory) used by an algorithm, typically expressed as a function of the input size. |
| exponential efficiency | An algorithm's efficiency that grows exponentially with input size, causing it to run in an unreasonable amount of time. |
| factorial efficiency | An algorithm's efficiency that grows at a factorial rate with input size, causing it to run in an unreasonable amount of time. |
| heuristic | An approach to a problem that produces a solution that is not guaranteed to be optimal but may be used when techniques that always find an optimal solution are impractical. |
| optimization problem | A problem with the goal of finding the best solution among many possible solutions. |
| polynomial efficiency | An algorithm's efficiency that grows at a polynomial rate (constant, linear, square, cube, etc.) relative to input size, allowing it to run in reasonable time. |
| problem | A general description of a task that can or cannot be solved algorithmically, which may have specific inputs or instances. |
| reasonable time | Algorithms with polynomial efficiency or lower (constant, linear, square, cube, etc.) that can be solved in a practical amount of time. |
| unreasonable time | Algorithms with exponential or factorial efficiencies that require impractically long amounts of time to solve. |
| Term | Definition |
|---|---|
| algorithm | Step-by-step procedures or sets of rules designed to solve a problem or accomplish a task. |
| decidable problem | A decision problem for which an algorithm can be written to produce a correct output for all inputs. |
| decision problem | A problem that requires a yes-or-no answer as output. |
| undecidable problem | A problem for which no algorithm can be constructed that is always capable of providing a correct yes-or-no answer for all instances. |
| Term | Definition |
|---|---|
| complexity | The degree of difficulty in understanding and maintaining program code, which data abstractions help reduce by hiding implementation details. |
| data abstraction | A programming technique that separates the abstract properties of a data type from the concrete details of its representation, allowing complex data to be managed with a simple name. |
| element | An individual value in a list that is assigned a unique index. |
| index | The position of an element within a list, numbered starting from 1 through the length of the list. |
| list | An ordered sequence of elements, where each element is assigned a unique index for reference. |
| string | An ordered sequence of characters. |
| Term | Definition |
|---|---|
| addition | An arithmetic operation represented by the + symbol that combines two numbers to produce their sum. |
| algorithm | Step-by-step procedures or sets of rules designed to solve a problem or accomplish a task. |
| arithmetic operators | Symbols used in programming to perform mathematical operations, including addition, subtraction, multiplication, division, and modulus. |
| code statement | A part of program code that expresses an action to be carried out. |
| division | An arithmetic operation represented by the / symbol that splits one number by another to produce a quotient. |
| expression | A combination of a value, variable, operator, or procedure call that can be evaluated to produce a single value. |
| iteration | A repeating portion of an algorithm that executes a specified number of times or until a given condition is met. |
| modulus operator | An arithmetic operator represented as MOD that evaluates to the remainder when one integer is divided by another. |
| multiplication | An arithmetic operation represented by the * symbol that combines two numbers to produce their product. |
| operator | A symbol or keyword that performs an operation on one or more values or variables. |
| order of operations | The set of rules that specifies which calculations to perform first in a mathematical expression, with MOD having the same precedence as multiplication and division. |
| procedure call | A statement that executes a named procedure, interrupting sequential execution and transferring control to the procedure. |
| pseudocode | A method of expressing an algorithm using a combination of natural language and programming-like syntax, independent of any specific programming language. |
| selection | A control structure that determines which parts of an algorithm are executed based on whether a condition is true or false. |
| sequencing | The application of each step of an algorithm in the order in which the code statements are given. |
| sequential code statements | Lines of code that are executed in the order they appear, one after another. |
| subtraction | An arithmetic operation represented by the - symbol that finds the difference between two numbers. |
| variable | A named container in a program that stores a value which can be changed through assignment. |
| Term | Definition |
|---|---|
| string concatenation | The operation of joining two or more strings end-to-end to create a new string. |
| substring | A contiguous sequence of characters that forms part of an existing string. |
| Term | Definition |
|---|---|
| AND | A logical operator that evaluates to true only if both conditions are true; otherwise it evaluates to false. |
| Boolean expression | An expression that evaluates to either true or false, often composed of conditions combined with logical operators. |
| Boolean value | A value that is either true or false, representing the result of a comparison or logical operation. |
| logical operators | Operators such as NOT, AND, and OR that are used to combine or modify Boolean expressions to produce a Boolean result. |
| NOT | A logical operator that evaluates to true if the condition is false, and evaluates to false if the condition is true. |
| operand | A value or expression that a logical operator acts upon, which can be either a Boolean expression or a single Boolean value. |
| OR | A logical operator that evaluates to true if at least one condition is true; otherwise it evaluates to false. |
| relational operators | Symbols used to compare two variables, expressions, or values, including =, ≠, >, <, ≥, and ≤. |
| Term | Definition |
|---|---|
| algorithm | Step-by-step procedures or sets of rules designed to solve a problem or accomplish a task. |
| Boolean expression | An expression that evaluates to either true or false, often composed of conditions combined with logical operators. |
| condition | A statement that evaluates to either true or false, used to determine the flow of execution in a selection structure. |
| conditional statement | A programming construct that executes different code blocks based on whether a specified condition is true or false. |
| ELSE | A keyword used in conditional statements to specify a block of code that executes when the Boolean condition is false. |
| if-statements | A type of conditional statement that executes a block of code only if a specified Boolean condition is true. |
| selection | A control structure that determines which parts of an algorithm are executed based on whether a condition is true or false. |
| sequential flow of control | The order in which statements are executed in a program; conditional statements can alter this flow by executing different code based on conditions. |
| Term | Definition |
|---|---|
| conditional statement | A programming construct that executes different code blocks based on whether a specified condition is true or false. |
| nested conditional statements | Conditional statements that are placed within other conditional statements, allowing for more complex decision-making logic based on multiple conditions. |
| Term | Definition |
|---|---|
| algorithm | Step-by-step procedures or sets of rules designed to solve a problem or accomplish a task. |
| Boolean expression | An expression that evaluates to either true or false, often composed of conditions combined with logical operators. |
| condition | A statement that evaluates to either true or false, used to determine the flow of execution in a selection structure. |
| infinite loop | A loop that never terminates because the ending condition will never evaluate to true. |
| iteration | A repeating portion of an algorithm that executes a specified number of times or until a given condition is met. |
| iteration statements | Programming statements that repeat a block of code zero or more times until a stopping condition is met. |
| loop body | The block of statements that is repeated within an iteration statement. |
| REPEAT n TIMES | An iteration statement that executes a block of statements exactly n times. |
| REPEAT UNTIL(condition) | An iteration statement that repeats a block of statements until a Boolean condition evaluates to true. |
| sequential flow of control | The order in which statements are executed in a program; conditional statements can alter this flow by executing different code based on conditions. |
| stopping condition | A Boolean expression that, when true, causes an iteration loop to terminate. |
| Term | Definition |
|---|---|
| algorithm | Step-by-step procedures or sets of rules designed to solve a problem or accomplish a task. |
| average | The mean value of a list of numbers, calculated by dividing the sum of all elements by the number of elements. |
| Boolean expression | An expression that evaluates to either true or false, often composed of conditions combined with logical operators. |
| conditional statement | A programming construct that executes different code blocks based on whether a specified condition is true or false. |
| equivalent | Having the same value, result, or effect; in algorithms, producing identical outcomes or side effects. |
| evenly divisible | A condition where one integer divides another integer with no remainder. |
| maximum value | The largest element in a list, which can be determined using an iteration algorithm. |
| minimum value | The smallest element in a list, which can be determined using an iteration algorithm. |
| side effect | Any change in state or output that occurs as a result of executing an algorithm, beyond its primary return value. |
| sum | The total obtained by adding all elements in a list of numbers, which can be computed using iteration. |
| Term | Definition |
|---|---|
| bandwidth | The maximum amount of data that can be sent in a fixed amount of time, typically measured in bits per second. |
| communication protocols | Standardized rules that govern how data is transmitted and received between computing devices on a network. |
| computer network | A group of interconnected computing devices capable of sending or receiving data. |
| computing device | A physical artifact that can run a program, such as computers, tablets, servers, routers, and smart sensors. |
| computing system | A group of computing devices and programs working together for a common purpose. |
| data reassembly | The process of reconstructing the original data from packets that may arrive out of order or incompletely. |
| data stream | A continuous flow of information passed through the Internet, composed of chunks of data organized into packets. |
| dynamic routing | A routing method where the path data takes across a network is determined in real-time rather than being specified in advance. |
| HTTP | A protocol used by the World Wide Web to transmit and receive data between web browsers and servers. |
| interconnected networks | Multiple separate networks that are connected together to form a larger network system, such as the Internet. |
| Internet | A computer network consisting of interconnected networks that use standardized, open communication protocols to enable global communication and data exchange. |
| IP | Internet Protocol; a common protocol used on the Internet for routing packets between devices. |
| metadata | Data that describes other data, such as the date of creation or file size of an image, used for finding, organizing, and managing information. |
| nonproprietary | Not owned or controlled by a single company; publicly available and accessible to all users. |
| open protocols | Non-proprietary communication protocols that are publicly available and allow users to easily connect additional devices to a network. |
| packets | Chunks of data that are encapsulated with metadata and sent through the Internet from an origin to a destination. |
| path | A sequence of directly connected computing devices that begins at a sender and ends at a receiver on a computer network. |
| protocol | An agreed-upon set of rules that specify the behavior of a system and enable devices to communicate with each other. |
| receiver | The computing device that receives data sent from a sender in a network communication. |
| routing | The process of finding a path from sender to receiver on a computer network. |
| scalability | The ability of a solution to maintain or improve performance as the problem size or computational resources increase. |
| sender | The computing device that initiates the sending of data in a network communication. |
| TCP | Transmission Control Protocol; a common protocol used on the Internet that ensures reliable, ordered delivery of data packets. |
| UDP | User Datagram Protocol; a common protocol used on the Internet for faster but less reliable data transmission compared to TCP. |
| World Wide Web | A system of linked pages, programs, and files that operates on top of the Internet using HTTP protocol. |
| Term | Definition |
|---|---|
| fault tolerance | The ability of a system to continue operating and providing service even when some of its components fail. |
| network redundancy | The practice of having multiple paths or duplicate components in a network to ensure continued operation if one path or component fails. |
| redundancy | Repetition or unnecessary duplication in data representation that can be reduced through compression. |
| reliability | The ability of a system to perform its intended function consistently and dependably over time. |
| routing | The process of finding a path from sender to receiver on a computer network. |
| vulnerabilities | Weaknesses or points of failure in a system that could cause it to malfunction or stop operating. |
| Term | Definition |
|---|---|
| distributed computing | A computational model in which multiple devices are used to run a program. |
| efficiency | An estimation of the amount of computational resources (such as time or memory) used by an algorithm, typically expressed as a function of the input size. |
| parallel computing | A computational model where a program is broken into multiple smaller sequential computing operations, some of which are performed simultaneously. |
| parallel portion | The part of a solution that can be executed simultaneously across multiple processors or cores. |
| processing time | The amount of time required for a computer to execute a computation or solve a problem. |
| scalability | The ability of a solution to maintain or improve performance as the problem size or computational resources increase. |
| sequential computing | A computational model in which operations are performed in order one at a time. |
| sequential portion | The part of a solution that must be executed in order, one step at a time, and cannot be parallelized. |
| speedup | A measure of parallel computing performance calculated as the time to complete a task sequentially divided by the time to complete it in parallel. |
| storage needs | The amount of memory or data storage capacity required to solve a problem or store its data. |
| Term | Definition |
|---|---|
| beneficial | Producing a positive or advantageous outcome or impact. |
| beneficial effects | Positive outcomes or advantages that result from the use of a computing innovation. |
| computing innovation | A new or improved computer-based product, service, or concept that includes a program as an integral part of its function, which can be physical, nonphysical software, or a nonphysical concept. |
| data mining | The process of analyzing large datasets to discover patterns, trends, and insights that can be used for various purposes. |
| effect | A consequence or result of a computing innovation that impacts people, society, or other fields. |
| harmful | Producing a negative or damaging outcome or impact. |
| harmful impact | Negative consequences or damage that a computing innovation can cause to society, the economy, culture, or individuals. |
| intended purpose | The original goal or function that a computing innovation was designed to accomplish. |
| machine learning | A computing technique that enables systems to learn and improve from data without being explicitly programmed for each task. |
| targeted advertising | A marketing technique that uses computing innovations to deliver specific advertisements to individuals or groups based on their data and behavior. |
| unintended beneficial effects | Positive consequences of a computing innovation that were not originally anticipated by its creators. |
| unintended purpose | A use or application of a computing innovation that was not originally planned or designed by its creators. |
| Term | Definition |
|---|---|
| access | The ability to obtain and use computing devices and Internet services. |
| computing device | A physical artifact that can run a program, such as computers, tablets, servers, routers, and smart sensors. |
| demographic characteristics | Population characteristics such as age, gender, education level, and other factors that affect access to technology. |
| digital divide | The differing access to computing devices and the Internet based on socioeconomic, geographic, or demographic characteristics. |
| equity | Fair and just access to resources and opportunities, particularly regarding technology and Internet access. |
| geographic characteristics | Location-based factors that influence access to computing devices and Internet connectivity. |
| influence | The power to affect decisions, information, and opportunities through access to computing and digital resources. |
| Internet access | The ability to connect to and use the Internet, which varies based on socioeconomic, geographic, and demographic factors. |
| socioeconomic characteristics | Factors related to income level and social class that affect access to technology and the Internet. |
| Term | Definition |
|---|---|
| algorithm | Step-by-step procedures or sets of rules designed to solve a problem or accomplish a task. |
| bias | Prejudice or systematic error in computing innovations that can result from algorithms or data, reflecting existing human prejudices. |
| computing innovation | A new or improved computer-based product, service, or concept that includes a program as an integral part of its function, which can be physical, nonphysical software, or a nonphysical concept. |
| data | Information represented in a form that can be processed by a program, such as numbers, text, or records. |
| software development | The process of creating and improving software applications where biases can be embedded at multiple levels. |
| Term | Definition |
|---|---|
| citizen science | Scientific research conducted wholly or partly by non-professional scientists who contribute data and observations using their own computing devices. |
| collaboration | The process of working together with others to develop computing innovations that benefit from diverse talents and perspectives. |
| crowdsourcing | The practice of obtaining input, information, or solutions from a large number of people via the Internet. |
| dissemination of results | The process of sharing and distributing findings, solutions, or information widely to relevant audiences. |
| distributed individuals | People spread across different locations who contribute to a common goal or research project, typically coordinated through digital networks. |
| problem-solving processes | Methods and approaches used to identify, analyze, and develop solutions to challenges, often involving multiple participants working collaboratively. |
| public data | Information that is openly accessible to the general public and can be used to identify problems and develop solutions. |
| Term | Definition |
|---|---|
| algorithm bias | Prejudice or unfair treatment built into algorithms that can raise legal and ethical concerns in computing innovations. |
| Creative Commons | A public copyright license that enables the free distribution of otherwise copyrighted work, allowing others to share, use, and build upon the creator's work. |
| data monitoring | The continuous collection and analysis of user activities through computing devices, which raises legal and ethical concerns. |
| digital divide | The differing access to computing devices and the Internet based on socioeconomic, geographic, or demographic characteristics. |
| intellectual property | Material created on a computer or by an individual that is legally owned by the creator or an organization. |
| open access | Online research output that is free of access restrictions and many usage restrictions, such as copyright or license limitations. |
| open source | Programs that are made freely available and may be redistributed and modified by users. |
| plagiarism | The use of material created by someone else without permission and presented as one's own, which may have legal consequences. |
| Term | Definition |
|---|---|
| authentication measures | Security methods used to verify the identity of a user and protect devices and information from unauthorized access. |
| biometric data | Personal information based on physical or behavioral characteristics, such as fingerprints or facial recognition, that can be used to identify an individual. |
| browsing history | A record of websites and pages an individual has viewed that can be collected and maintained by websites and networks. |
| certificate authority | An organization that issues digital certificates to validate the ownership of encryption keys based on a trust model. |
| computer virus | A malicious program that can copy itself and gain unauthorized access to a computer, often by attaching itself to legitimate programs. |
| cookies | Data files stored on a user's device that track browsing behavior and can be aggregated with other personal data. |
| data aggregation | The process of combining disparate personal data from multiple sources to create comprehensive knowledge about an individual. |
| decryption | The process of decoding encrypted data to make it readable. |
| digital certificate | A credential issued by a certificate authority that validates the ownership of encryption keys used in secure communications. |
| encryption | The process of encoding data to prevent unauthorized access. |
| freeware | Free software that can potentially contain malware if downloaded from untrustworthy sources. |
| geolocation | Information about a user's physical location that can be collected by devices, websites, and networks. |
| identity theft | The unauthorized use of a person's PII to impersonate them or commit fraud. |
| keylogging | The use of a program to record every keystroke made by a computer user in order to gain fraudulent access to passwords and confidential information. |
| malicious link | A link that can be disguised on a web page or in an email message to compromise computing security. |
| malware | Software intended to damage a computing system or to take partial control over its operation. |
| malware scanning software | Software designed to detect and protect a computing system against infection from viruses and malware. |
| multifactor authentication | A method of computer access control requiring a user to present at least two separate pieces of evidence from the categories of knowledge (something they know), possession (something they have), and inherence (something they are). |
| permissions | Settings that control what information programs are allowed to collect from users and how they can access user data. |
| personally identifiable information | Information about an individual that identifies, links, relates, or describes them, such as Social Security numbers, age, race, phone numbers, medical information, financial information, or biometric data. |
| phishing | A technique that attempts to trick a user into providing personal information that can be used to access sensitive online resources. |
| public key encryption | An encryption approach that uses a public key for encryption and a private key for decryption, allowing secure communication without sharing the private key. |
| rogue access point | A wireless access point that gives unauthorized access to secure networks. |
| search history | A record of searches made by users on search engines that can be collected, maintained, and used for targeted marketing or other purposes. |
| shareware | Software available for free or low cost that can potentially contain malware if downloaded from untrustworthy sources. |
| social media | Online platforms where individuals post information that can be viewed, shared, and used by others in ways not originally intended. |
| software updates | Regular patches and improvements to software that fix errors and design flaws that could compromise a computing system. |
| strong password | A password that is easy for the user to remember but difficult for others to guess based on knowledge of that user. |
| symmetric key encryption | An encryption approach that uses one key for both encrypting and decrypting data. |
| targeted advertising | A marketing technique that uses computing innovations to deliver specific advertisements to individuals or groups based on their data and behavior. |
| unauthorized access | Gaining access to computing resources without permission, often through techniques like phishing, keylogging, or rogue access points. |
#
A
B
C