List
ordered collection of elements
Element
individual value in a list that is assigned a unique index
Index
number used for referencing the elements in a list or string
Iteration
repetitive portion of an algorithm which repeats a specified number of times or until a given condition is met
Infinite Loop
occurs when the ending condition of an ineration will never evaluate to true
Traversal
accessing each item in a list one at a time
Append
adding an element to the end of a list
Data Abstraction
collection of data to manage complexity without referencing specific details of the representation
Logic Error
mistake in the algorithm or program that causes it to behave incorrectly or unexpectedly
Simulation
abstractions of more complex objects or phenomena for a specific purpose.
Substring
part of an existing string
User Interface
inputs and outputs that allow a user to interact with a piece of software
Input
data sent to a computer for processing by a program
Output
data sent from a program to a device
Program Statement
code command or instruction
Program
collection of program statements.
Sequential Programming
program statements run in order, from top to bottom
Event Driven Programming
when program statements run when triggered by an event
Documentation
written description of how/why a command or piece of code works or was developed.
Comment
documentation written into the program to be read by people and which do not affect how a program runs
Pair Programming
collaborative style in which two programmers switch between the roles of writing code and tracking or planning high level progress
Debugging
finding and fixing problems in an algorithm or program
Development process
steps or phases used to create a piece of software (e.g. investigating, designing, prototyping, and testing)
Event
associated with an action and supplies input data to a program, and can be generated by any action that affects the flow of execution
Incremental Development Process
breaks the problem into smaller pieces and makes sure each piece works before adding it to the whole
Iterative Development Process
requires refinement and revision based on feedback, testing, or reflection, and may require revisiting earlier phases
Plagiarism
use of material created by someone else without permission and presented as one's own
Program Specification
describes how a program functions and may include requirements or a description of user interactions that a program must provide
Syntax Error
mistake in the program where the rules of the programming language are not followed
Software
program or a collection of programs
Citizen Science
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
Cleaning Data
process that makes the data uniform without changing its meaning (e.g. replacing all equivalent abbreviations, spellings, and capitalizations with the same word)
Correlation
relationship between two pieces of data
Crowdsourcing
obtaining input or information from a large number of people via the Internet.
Information
collection of facts and patterns extracted from data
Data bias
data that does not accurately reflect the full population or phenomenon being studied
Data filtering
choosing a smaller subset of a data set to use for analysis, for example by eliminating / keeping only certain rows in a table
Computing Innovation
includes a program as an integral part of its function. Can be physical, non-physical computing software, or non-physical computing concepts
Personally Identifiable Information (PII)
information about an individual that identifies, links, relates, or describes them
Phishing
technique that attempts to trick a user into providing personal information
Keylogging
program to record every keystroke made by a computer user in order to gain fraudulent access to passwords and other confidential information
Malware
software intended to damage a computing system or to take partial control over its operation
Rogue Access Point
wireless access point that gives unauthorized access to secure networks.
Encryption
encoding messages to keep them secret, so only "authorized" parties can read it
Decryption
taking a secret message and reproducing the original plain text (reverses encryption)
Symmetric Key Encryption
involves one key for both encryption and decryption
Public Key Encryption
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
Computing Innovation
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).
Personally Identifiable Information (PII)
information about an individual that identifies, links, relates, or describes them.
Freeware
software that can be acquired at no monetary cost, so users should be wary it does not contain malicious code
Multi-factor Authentication
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
Strong Password
something that is easy for a user to remember but would be difficult for someone else to guess based on knowledge of that user
Virus
malicious program that can copy itself and gain access to a computer in an unauthorized way - often attach themselves to legitimate programs and start running independently on a computer
Expression
combination of operators, values, and or procedure calls that evaluates to a single value
Assignment Operator
allows a program to change the value represented by a variable
Variable
named reference to a value that can be used repeatedly throughout a program
Boolean Value
data type that is either true or false
Function
named group of programming instructions, and also referred to as a "procedure"
Function Call
command that executes the code within a function
Arithmetic Operators
addition, subtraction, multiplication, division, and modulus operators (+, -, *, /, %)
Boolean Expression
evaluates to either true or false
Concatenation
joins together two or more strings end-to-end to make a new string
Conditional Statement
affect the sequential flow of control by executing different statements based on the value of a Boolean expression.
Evaluate
producing a single value from an expression
Logical Operators
used in evaluating Boolean expressions (NOT, AND, OR, !, &&, ||)
Procedure
named group of programming instructions that may have parameters and return values
Relational / Comparison Operators
used to test the relationship between two expressions (=, ≠, >, <, ≥, and ≤)
Selection
determines which parts of an algorithm are executed based on a condition being true or false
String
ordered sequence of characters
Computing Device
machine that can run a program, including computers, tablets, servers, routers, and smart sensors
Computing System
group of computing devices and programs working together for a common purpose
Computing Network
group of interconnected computing devices capable of sending or receiving data
Path
series of connections between computing devices on a network starting with a sender and ending with a receiver.
Bandwidth
maximum amount of data that can be sent in a fixed amount of time (usually measured in bits per second)
Protocol
agreed-upon set of rules that specify the behavior of some system
IP Address
unique number assigned to each device on the Internet
Internet Protocol (IP)
protocol for sending data across the Internet that assigns unique numbers (IP addresses) to each connected device
Router
type of computer that forwards data across a network
Redundancy
inclusion of extra components so that a system can continue to work even if individual components fail
Fault Tolerant
can continue to function even in the event of individual component failures
HTTP (HyperTest Transfer Protocol)
protocol used for transmitting web pages over the Internet
Internet
computer network consisting of interconnected networks that use standardized, open (nonproprietary) communication protocols
Packet
chunk of data sent over a network that may arrive at the destination in order, out-of-order, or not at all
Packet Metadata
helps route packets through the network and reassemble the original message
Routing
finding a path from sender to receiver
UDP
A protocol used on the internet for fast transmission of information but with minimal error checking
World Wide Web
a system of linked pages, programs, and files.
Router
A type of computer that forwards data across a network
Certificate authority
issue digital certificates that validate the ownership of encryption keys used in secure communications and are based on a trust model
Digital Divide
differing access to computing devices and the Internet, based on socioeconomic, geographic, or demographic characteristics
Bit
the single unit of information in a computer, typically represented as a 0 or 1
Byte
8 bits
Overflow Error
error from attempting to represent a number that is too large
Round-off Error
error from attempting to represent a number that is too precise
Analog Data
values that change continuously, or smoothly, over time
Digital Data
values that change discretely through a finite set of possible values
Sampling
creating a digital representation of analog data by measuring the analog data at regular intervals called samples
Lossless Compression
reducing the number of bits needed to represent something without losing any information. This process is reversible
Lossy Compression
reducing the number of bits needed to represent something in which some information is lost or thrown away. This process is not reversible
Binary
way of representing information using only two options (0 & 1)