All vocab Flashcards
Bit
a contraction of “Binary Digit”; the single unit of information in a computer, typically represented as a 1 or 0
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. The value is rounded.
Analog Data
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.
Digital Data
Data that changes discreetly through a finite set of possible values
Sampling
A process for creating a digital representation of analog data by measuring the analog data at regular intervals called samples.
Lossless Compression
A process for reducing the number of bits needed to represent something without losing any information. This process is reversible.
Lossy Compression
A process for reducing the number of bits needed to represent something in which some information is lost or thrown away. This process is not reversible. Typically better than lossless compression algorithms at reducing the number of bits needed to represent a piece of data.
Binary
A way of representing information using only two options.
Creative Commons
A collection of public copyright licenses that enable the free distribution of an otherwise copyrighted work, used when an author wants to give people the right to share, use, and build upon a work that they have created.
Data Compression
A process for reducing the number of bits needed to represent a piece of information
Decimal
a system for representing numbers using combinations of the digits 0 - 9
Intellectual Property
A work or invention that is the result of creativity, such as a piece of writing or a design, to which one has rights and for which one may apply for a patent, copyright, trademark, etc.
Open Access
online research output free of any and all restrictions on access and free of many restrictions on use, such as copyright or license restrictions
Open Source
programs that are made freely available and may be redistributed and modified
Abstraction
helps represent complex information by removing the complexity that might otherwise might not be hidden. Common abstractions that are represented by computing devices include numbers, characters, and color.
Computing Device
a machine that can run a program, including computers, tablets, servers, routers, and smart sensors
Computing System
a group of computing devices and programs working together for a common purpose
Computing Network
a group of interconnected computing devices capable of sending or receiving data.
Path:
the series of connections between computing devices on a network starting with a sender and ending with a receiver
bandwidth
the maximum amount of data that can be sent in a fixed amount of time, usually measured in bits per second.
protocol
an agreed-upon set of rules that specify the behavior of some system
IP address
the unique number assigned to each device on the internet
Internet Protocol
a protocol for sending data across the internet that assigns unique numbers (IP addresses) to each connected device
Router
A type of computer that forwards data across a network
redundancy
the inclusion of extra components so that a system can continue to work even if individual components fail, for example by having more than one path between any two connected devices in a network.
Fault tolerance
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
transmission control Protocol(tcp)
A protocol for sending packets that does error checking to ensure all packets are received and properly ordered. If packets are missing, it will send a request for the missing packets.
http
HyperText Transfer Protocol - 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. Protocols of the internet are open and used by all devices connected to the network. The protocols of the internet were designed to scale as new devices were added.
packet
A chunk of data sent over a network. Larger messages are divided up into packets that may arrive in order, out of order, or not at all
Packet Metadata
Data added to packets to help route them through the network and reassemble the original message.
Routing
The process of 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
Internet Engineering Task Force (IETF)
The IETF develops and oversees standards such as hypertext transfer protocol (HTTP), Internet protocol (IP), and simple mail transfer protocol (SMTP).
Scalability
The property of a system to handle a growing amount of work by adding resources to the system. The internet is scalable because it can add more routers, wired connections, DNS servers, IP addresses, etc.
Redundant Networks
When a network contains redundant connections, the network can continue to function in the event of slowdowns or disconnections in specific parts of the network.
User interface
The inputs and outputs that allow a user to interact with a piece of software. User interfaces can include a variety of forms such as buttons, menus, images, text, and graphics.
Input: data that are sent to a computer for processing by a program. Can come in a variety of forms, such as tactile interaction, audio, visuals, or text.
output
Any data that is sent from a program to a device. Can come in a variety of forms, such as tactile interaction, audio, visuals, or text.
Input
Data that are sent to a computer for processing by a program. Can come in a variety of forms, such as tactile interaction, audio, visuals, or text.
Program Statement
A command or instruction. Sometimes also referred to as a code statement.
Program
A collection of program statements. Programs run (or “execute”) one command at a time.
Sequential Programming
Program statements run in order, from top to bottom.
Event-Driven Programming
Some program statements run when triggered by an event, like a mouse click or a key press.
Documentation
A written description of how a command or piece of code works or was developed.
Comment
A form of program documentation written into the program to be read by people and which do not affect how a program runs.
Pair Programming
A collaborative programming 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
The steps or phases used to create a piece of software. Typical phases include investigating, designing, prototyping, and testing.
Investigating
getting requirements, interviewing users about wanted functionality
Designing
How the program will work or how users interact with it
Prototyping
Creating a model
Testing
Testing functionality of program
Event
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.
Incremental Development Process
A design approach that breaks the problem into smaller pieces and makes sure each piece works before adding it to the whole.
Iterative Development Process
A design approach requires refinement and revision based on feedback, testing, or reflection throughout the process. This may require revisiting earlier phases of the process.
Plagiarism
The use of material created by someone else without permission and presented as one’s own
Program Requirements
Descriptions how a program functions and may include a description of user interactions that a program must provide.
Program specification
A description of all the requirements for the program.
Syntax Error
A mistake in the program where the rules of the programming language are not followed.
Software
A program or a collection of programs
Expression
A combination of operators and values that evaluates to a single value.
Assignment Operator
Allows a program to change the value represented by a variable.
Variable
A named reference to a value that can be used repeatedly throughout a program.
Boolean Value
A data type that is either true or false.
Comparison Operators
<, >, <=, >=, ==, != indicate a Boolean expression
Function
A named group of programming instructions. Also referred to as a “procedure”.
Function Call
A command that executes the code within a function
Arithmetic operator
Part of most programming languages and include 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. (Example: if/else)
Evaluate
Expressions are evaluated to produce a single value.
Expression
a programming statement that can consist of a value, a variable, an operator, or a procedure call that returns a value.
Logical operator
NOT, AND, and OR, which evaluate to a Boolean value.
Procedure
A named group of programming instructions that may have parameters and return values.
Relational operator
Used to test the relationship between two variables, expressions, or values. A comparison using a relational operator evaluates to a Boolean value. For example: =, ≠, >, <, ≥, and ≤
Selection
determines which parts of an algorithm are executed based on a condition being true or false
String
An ordered sequence of characters.
List
An ordered collection of elements
Element
An individual value in a list that is assigned a unique index
Index
A common method for referencing the elements in a list or string using numbers
Iteration
a 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 will never evaluate to true.
Traversal
The process of accessing each item in a list one at a time
Append
add elements to the end of a list
Data abstraction
manage complexity in programs by giving a collection of data a name without referencing the specific details of the representation. In programming a list is a form of data abstraction.
Loops (iteration statements)
change the sequential flow of control by repeating a set of statements zero or more times, until a stopping condition is met
Logic Error
a mistake in the algorithm or program that causes it to behave incorrectly or unexpectedly.
Simulations
Are the production of a computer model of something, especially for the purpose of study. They are also abstractions of more complex objects or phenomena for a specific purpose. They can be used to test a hypothesis about a pattern.
Substring
Part of an existing string
Problem
a general description of a task that can (or cannot) be solved with an algorithm
Algorithm
a finite set of instructions that accomplish a task.
Efficiency
a measure of how many steps are needed to complete an algorithm
Linear Search
a search algorithm which checks each element of a list, in order, until the desired value is found or all elements in the list have been checked.
Binary Search
a search algorithm that starts at the middle of a sorted set of numbers and removes half of the data; this process repeats until the desired value is found or all elements have been eliminated.
Reasonable time
Algorithms with a polynomial efficiency or lower (constant, linear, square, cube, etc.) are said to run in a reasonable amount of time.
Unreasonable time
Algorithms with exponential or factorial efficiencies are examples of algorithms that run in an unreasonable amount of time.
Heuristic
provides a “good enough” solution to a problem when an actual solution is impractical or impossible
Undecidable problem
a problem for which no algorithm can be constructed that is always capable of providing a correct yes-or-no answer
Sequential computing
a model in which programs run in order, one command at a time.
Parallel computing
a model in which programs are broken into small pieces, some of which are run simultaneously.
Distributed Computing
a model in which programs are run by multiple devices. Used in tandem with parallel computing.
Speedup
the time used to complete a task sequentially divided by the time to complete a task in parallel
Decision Problem
a problem with a yes/no answer (e.g., is there a path from A to B?)
Optimization Problem
a problem with the goal of finding the “best” solution among many (e.g., what is the shortest path from A to B?)
Sequencing
the application of each step of an algorithm in the order in which the code statements are given
Selection
deciding which steps to do next
Iteration
doing some steps over and over
Parameter
a variable in a function definition. Used as a placeholder for values that will be passed through the function.
Argument
the value passed to the parameter
Return
used to return the flow of control to the point where the procedure (also known as a function) was called and to return the value of expression.
Library
a group of functions (procedures) that may be used in creating new programs
API
Application Program Interface - specifications for how functions in a library behave and can be used
Modularity
The subdivision of a computer program into separate subprograms
Procedural Abstraction
a process and allows a procedure to be used only knowing what it does, not how it does it. Procedural abstraction allows a solution to a large problem to be based on the solution of smaller subproblems. This is accomplished by creating procedures to solve each of the subproblems. Improves readability and manages complexity.
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
a process that makes the data uniform without changing its meaning (e.g., replacing all equivalent abbreviations, spellings, and capitalizations with the same word).
Correlation
a relationship between two pieces of data, typically referring to the amount that one relates to the other.
Crowdsourcing
the practice of obtaining input or information from a large number of people via the Internet.
Information
the 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
Metadata
a set of data that describes and gives information about other data.
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.
Phishing
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
Keylogging
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
Malware
software intended to damage a computing system or to take partial control over its operation
Rogue Access Point
a wireless access point that gives unauthorized access to secure networks. It can see and modify network requests over an internet connection.
Encryption
a process of encoding messages to keep them secret, so only “authorized” parties can read it.
Decryption
a process that reverses encryption, taking a secret message and reproducing the original plain text.
Symmetric Key Encryption
involves one key for both encryption and decryption.
Public Key Encyrption
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
Freeware
Untrustworthy (often free) downloads from freeware or shareware sites can contain malware.
Multi-factor Authentication
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
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
a malicious program that can copy itself and gain access to a computer in an unauthorized way. Computer viruses often attach themselves to legitimate programs and start running independently on a computer.