includes a program as an integral part of its function. Can be physical (e.g. self-driving car), non-physical computing software (e.g. picture editing software), or non-physical computing concepts (e.g., e-commerce).
Computing Innovation
A contraction of "Binary Digit"; the single unit of information in a computer, typically represented as a 0 or 1
A model in which programs are run by multiple devices
Distributed Computing
Domain Name System
scientific research conducted in whole or part by distributed individuals, many of whom may not be scientists, who contribute relevant data to research using their own computing devices.
Citizen Science
a collaborative programming style in which two programmers switch between the roles of writing code and tracking or planning high level progress
Pair Programming
8 bits
Byte
The time used to complete a task sequentially divided by the time to complete a task in parallel
Speedup
a machine that can run a program, including computers, tablets, servers, routers, and smart sensors
Computing Device
information about an individual that identifies, links, relates, or describes them
Personally Identifiable Information (PII)
some program statements run when triggered by an event, like a mouse click or a key press
Event Driven Programming
an ordered collection of elements
List
The protocol used for transmitting web pages over the Internet.
Internet: a computer network consisting of interconnected networks that use standardized, open (nonproprietary) communication protocols.
HTTP
HyperText Transfer Protocol
a group of computing devices and programs working together for a common purpose
Computing System
a technique that attempts to trick a user into providing personal information. That personal information can then be used to access sensitive online resources, such as bank accounts and emails
Phishing
program statements run in order, from top to bottom.
Sequential Programming
manage complexity in programs by giving a collection of data a name without referencing the specific details of the representation.
Data Abstraction
A problem for which no algorithm can be constructed that is always capable of providing a correct yes-or-no answer
Undecidable Problem
a group of interconnected computing devices capable of sending or receiving data
Computing Network
the use of a program to record every keystroke made by a computer user in order to gain fraudulent access to passwords and other confidential information
Keylogging
a written description of how a command or piece of code works or was developed.
Documentation
Error from attempting to represent a number that is too large.
Overflow Error
A problem with the goal of finding the "best" solution among many (e.g., what is the shortest path from A to B?)
Optimization Problem
the series of connections between computing devices on a network starting with a sender and ending with a receiver
path
software intended to damage a computing system or to take partial control over its operation
Malware
Finding and fixing problems in an algorithm or program.
Debugging
Error from attempting to represent a number that is too precise. The value is rounded.
Round-off Error
Provides a "good enough" solution to a problem when an actual solution is impractical or impossible
Heuristic
the maximum amount of data that can be sent in a fixed amount of time, usually measured in bits per second
Bandwidth
a wireless access point that gives unauthorized access to secure networks
Rogue Access Point
the steps or phases used to create a piece of software. Typical phases include investigating, designing, prototyping, and testing
Development process
Data with values that change continuously, or smoothly, over time. Some examples of analog data include music, colors of a painting, or position of a sprinter during a race.
Analog Data
Algorithms with exponential or factorial efficiencies are examples of algorithms that run in an unreasonable amount of time.
Unreasonable Time
An agreed-upon set of rules that specify the behavior of some system
Protocol
involves one key for both encryption and decryption
Symmetric Key Encryption
associated with an action and supplies input data to a program. Can be generated when a key is pressed, a mouse is clicked, a program is started, or by any other defined action that affects the flow of execution
Event
Data that changes discretely through a finite set of possible values
Digital Data
Algorithms with a polynomial efficiency or lower (constant, linear, square, cube, etc.) are said to run in a reasonable amount of time.
Reasonable Time
The unique number assigned to each device on the Internet
IP Address
pairs a public key for encryption and a private key for decryption. The sender does not need the receiver’s private key to encrypt a message, but the receiver’s private key is required to decrypt the message
Public Key Encryption
is a mistake in the algorithm or program that causes it to behave incorrectly or unexpectedly
logic error
A process for creating a digital representation of analog data by measuring the analog data at regular intervals called samples.
Sampling
A model in which programs are broken into small pieces, some of which are run simultaneously
Parallel Computing
a system that requires at least two steps to unlock protected information; each step adds a new layer of security that must be broken to gain unauthorized access
Multi-factor Authentication
is a mistake in the program where the rules of the programming language are not followed.
syntax error
A process for reducing the number of bits needed to represent something without losing any information. This process is reversible.
Lossless Compression
Can continue to function even in the event of individual component failures. This is important because elements of complex systems like a computer network fail at unexpected times, often in groups
Fault Tolerant
is a mistake in the program that occurs during the execution of a program. Programming?languages?define?their?own?runtime errors
run-time error
is an error that occurs when a computer attempts to handle a number that is outside?of?the?defined?range?of?values.
overflow error