AP CSP - Vocabulary

The Internet is a network of autonomous systems - it consists of layers of abstraction (protocols) that relay on the one below it


  • abstract data types (ADT) - lists and other collections used to develop programs
  • abstraction: complexity made simple - a general idea or term used to represent much more detailed information, Abstraction is used to remove unnecessary details. For example, after you create a procedure or function and test it, you can call it without having to think about how it works. In levels of the Internet is means that you don't need to worry or understand details about each layer doing its job - you can assume it will work
  • aggregation: A computation in which rows from a data set are grouped together and used to compute a single value of more significant meaning or measurement. Common aggregations include: Average, Count, Sum, Max, Median, etc.
  • algorithms: Complex sequences of instructions that transform data or generate useful conclusions.
  • anonymity software - software that hides your browsing history and prevents use of cookies to track your data
  • anti-virus - software that will prevent, detect, and sometimes repair, infections on individual computing devices and larger IT systems
  • API -(Application Programming Interface) - a collection of commands made available to a programmer - A good API makes it easier to develop a program by providing building blocks - or libraries, that you can call
  • append - To append means to combine two strings with the characters from the second string following right after the characters in the first string. You can also append two lists which means that the items in the second list are added in order to the end of the first list. This is also called concatenation.
  • array - a block of memory - this block is broken up into boxes and used to store data (of the same type) that is related in some way - for example: a list of names - starts from an index of zero (this is why we start from 0 when using our loops....) by the same token the very last value is whatever the number is minus 1 (n-1) - for example: an array of three has indexes of 0,1,2
  • ASCII  - American Standard Code for Information Interchange - ASCII is the universally recognized raw text format that any computer can understand - it takes one byte of data to store a single character
  • assignment - when you put a variable into a memory location and give that location a name in a program
  • assistive technology - anything created to help disabled people become more independent
  • asymmetric encryption - used in public key encryption, it is scheme in which the key to encrypt data is different from the key to decrypt
  • attribute error: An error occurs when we ask for information about a variable that doesn't make sense, like the happiness of a potato or the GPA of a turnip.
  • authentication - a step in encryption that verifies that the recipient of the message is who should be receiving the message

  • backdoor - An entry point into a program without all the normal, built-in security checks
  • bandwidth - Transmission capacity measure by bit rate - how much data can be transmitted at once (in best case scenario)
  • big data: a term describing the storage and analysis of large and or complex data sets using a series of techniques
  • big O notation: the formal notation in computer science for "on the order of". Big O notation takes the leading term of the expression used to calculate time, in terms of the size, n, of the array without the coefficient.
  • binary - a number system that only uses two numbers (0 and 1) - computers operate in binary (this is how information is processed and stored)
  • binary search - assuming the data is in sorted order, the list can be divided into two each time by starting the middle - increasing the size of the data set will not increase the steps needed by all that much
  • bios - basic input output system - on startup it checks all your hardware connections and locates all your devices. If everything is OK, the BIOS loads the operating system into the computer's memory and finishes the boot-up process.
  • bit - a single digit of a binary number - a bit can contain only a 0 or 1
  • bit depth - determined by the number of bits used to define each pixel in a digital image
  • bit rate - (sometimes written bitrate) the number of bits that are conveyed or processed per unit of time. e.g. 8 bits/sec.
  • blacklist: A list of email addresses or IP addresses that are origination with known spammers
  • block-based language - writing code that involves dragging and dropping images (like Scratch, MIT App Inventor)
  • bluetooth - a standard for the short-range wireless interconnection of mobile phones, computers, and other electronic devices; named after King Harald of Denmark & Norway - the symbol is based on runes forandHarald's initials
  • boolean data type- a value that can have only 2 possible conditions - expressions (<, >, <=, >=, ==, !=, &&, ||, and !).
  • boolean logic - branch of algebra where all values are represented by either true or false
  • botnet - a collection of compromised computers (zombies) under the control of an attacker
  • bps - bits per second - the use of a lowercase b indicates bits - used to measure how many bits are transmitted
  • browsing history - list of web page addresses (and related data) that a person has viewed
  • brute force cracking - testing every possible combination of letters, numbers, and characters until the password is found
  • byte - a collection of 8 bits - data storage is measured in Bytes - generally an uppercase B indicates Bytes
    • KB (kilo) = approximately 1,000 bytes (thousands)
    • MB (mega) = approximately 1,000,000 bytes (millions)
    • GB (giga) = approximately 1,000,000,000 bytes (billions)
    • TB (tera) - approximately 1,000,000,000,000 bytes (trillions)


  • caesar's cipher - an encryption that shifts each letter by a certain number of characters
  • CamelCase: it is a programming naming convention where each letter that starts a word is capitalized
  • central processing unit (CPU) - the part of a computer that manages processes (as in the way your brain manages the process of your body)
  • Certificate Authority (CA) - issues digital certificates that validate ownership of encrypted keys used in secured communications; uses in authentication step of public key encryption; managed by publice key infrastructure
  • character: Any symbol that requires one byte of storage, i.e. "a" or "+"
  • cipher - the generic term for a technique (or algorithm) that performs encryption
  • circuit - a complete path that allows electrical current to flow from a high voltage to a lower voltage; fundamental concept used in componenet design to manipulate data (bits)
  • citizen science - gathering lots of people to help with a scientific project - example is counting butterflies around the world - in order to collect and analyze data
  • cleaning data: a process of editing raw data so that all inaccuracies, inconsistencies, and irrelevant data is either removed or corrected
  • client / server model: A computer that requests data stored on a server (client) - a centalized computer (server) to manage resources on a network
  • cloud computing / storage - storing data or using web applications from a server vs the local computer; it has created new ways to commicate and collaborate
  • clustering data - grouping data sets together to provide an argument that a pattern exists
  • code - (v) to write code, or to write instructions for a computer
  • collision - in cryptography, a collision attack on a cryptographic hash tries to find two inputs producing the same hash value, i.e. a hash collision
  • conditional - A conditional allows for code to be executed when a condition is true.
  • control Structures: The general idea of lines of code that can control other lines of code.
  • compile - to convert a program from souce code (human readable) to object (machine) code the computer can execute
  • compilation Errors: Errors that occur during the computer’s read through of the code.
  • complexity (of an algorithm) - the amount of logical reasoning (sometimes measured in lines of code) required to create an algorithm
  • compress: to decrease the number of bits used to represent a piece of information
  • computationally hard: the only known way to find an answer would take a computer an unreasonable amount of time
  • computer: a device that accepts input, stores data, and processes it in some way to produce an output
  • computer hardware: the parts of a computer that you can actually touch
    • motherboard - the main circuit board - it connects all the other parts
    • CPU - the "brain" responsible for interpreting and executing commands from hardware and software
    • chipset - a group of microchips designed to work as a unit in performing one or more related functions
    • cmos - complementary metal-oxide semiconductor - it holds important data needed for the bios to start up the computer - including the date and time - it has a backup battery to ensure the info is not ever lost
    • memory - the name for the electronic holding place for instructions and data that a computer's microprocessor can reach quickly
      • RAM - Random Access Memory - the temporary or "working" memory that allows multitasking
      • hard drive - the main data storage for a computer - HDD drives have spinning platters while SDD drives use a solid state flash memory
    • video/graphic card - sends images to the screen/monitor
    • drives - hardware devices that allow data to be read/written on some type of media (examples: optical, zip/thumb)
      *note: optical is often know more commonly as a CD/DVD/BluRayDVD
    • monitor/screen - displays the signals from the graphics/video card
    • peripherals - a device that can connect to the main computer (examples: keyboard, mouse, speakers, printer)
    • ports - serves as the interface between the computer and a peripheral (examples: USB, Thunderbolt, PS/2, VGA)
  • computer software - instructions for the computer and data
    • BIOS (Basic Input/Output System) - on startup it checks all your hardware connections and locates all your devices. If everything is OK, the BIOS loads the operating system into the computer's memory and finishes the boot-up process.
    • Operating system (sometimes abbreviated as "OS") is the program that manages all the other programs in a computer
  • computing: using computer algorithms to solve problems
  • conditionals: a decision in an algorithm based on a boolean value (true, false); used to control selection in an algorithm
  • console / terminal: An output medium for a program to show exclusively text-based output.
  • constant / literal - a fixed value that cannot be altered during the execution of the program
  • constraint - limit places to control inputs or outputs
  • control structures - lines of code that control other lines of code
  • cookie - information stored by a browser to track movement and information triggered by a person viewing a website
  • correctness (of a program) - depends on correctness of a programs componenets, including code segments and procedure
  • Creative Commons - A CC license is used when an author wants to give people the right to share, use, and build upon a work that they have created - there are six different levels of permissions available in the licenses
  • cryptography - the study of hiding messages or finding hidden messages
  • crowdsourcing - individuals or organizations use contributions from Internet users to obtain needed services or ideas
  • curated databases - database organized to facilitate research
  • cyberattack - attempt to penetrate, use, or access information on another computer or network without permission; examples include phishing or viruses
  • cybercrime - criminal activities carried out by using a computer or network
  • CSV: Abbreviation of "comma-separated values," this is a widely-used format for storing data - often used in spreadsheets - a csv file can also be used as input to a computer program
  • cyberspace: The non-physical terrain created by computer systems
  • cybersecurity - technology, processes, and practices designed to protect digital data on networks and devices on these networks; includes hardware, software, and human components
  • cyberwarfare - use of technology by a nation-state, organization, or individual to disrupt or damage computers or networks of another nation-state, or organization

  • database: a large collection of data that can be organized, searched, clustered, classified, transformed, displayed and/or filtered to gain new insight or to make conclusions
  • data: Distinct information that is formatted in a special way. Data exists in a variety of forms, like text on paper or bytes stored in electronic memory
  • data center: Physical or virtual infrastructures used by enterprises to house computer, server and networking systems and components for the company's IT (information technology) needs
  • data compression - a technique that reduces the number of bits stored or transmitted; could be lossy or lossless
  • data mining - searching large stores of data to discover patterns and trends that go beyond simple analysis
  • data network: A telecommunications network which allows computers to exchange data
  • data streaming - transfer of data at a high rate from the sender to the receiver through a network. Example: used by music services and movie providers to provide content to users
  • data structures: The general idea of data types more complex than individual letters and numbers
  • data type - All values in a programming language have a "type" - such as a Number, Boolean, or String - that dictates how the computer will interpret it. For example 7+5 is interpreted differently from "7"+"5"
  • debugging: the process of finding and fixing errors in your programs.
  • decidable problem - problem in which an algorithm can be constructed to answer "yes" or "no" for all inputs
  • denary - another name for a base 10 system (decimal)
  • desktop computer - personal computer meant to stay in one place
  • declaration - When you declare a variable, a function, or even a class all you are doing is saying: there is something with this name, and it has this type - please create a memory space with this name, example: int x;
  • decode - to change how information is represented so that it can be read by a person
  • decryption - reversing encryption - taking the alterered message and turning it into the original information
  • DHCP - Dynamic Host Configuration Protocol. Provides a mechanism for allocating IP addresses dynamically so that addresses can be reused when hosts no longer need themd
  • dictionaries, or hash tables: Pairs of keys and values collected under one variable name, like lists with non-numeric indices.
  • dictionary cracking - testing words and combinations of words found in the dictionary or from a slightly shorter list of words known to be commonly used in passwords
  • different paths: Routers respond to traffic on the Internet in real time. The best path at one moment might be backed up a few seconds later. Routers choose the current best path to get the message through
  • digital certificate - forms digital connection between the identity of the recipient and the public key on this certificate; used for authentication step of public key encryption, managed by Certificate Authorities (CAs)
  • digital divide: expression for the differing access to computing and the Internet based on socioeconomic or geographical characteristics of a population
  • Digital Millennium Copyright Act (DMCA) of 1998 - legislation passed to protect copyrighted digital data
  • disk drive: A randomly addressable and rewritable storage device.
  • distributed denial-of-service (DDoS) - a type of computer attack that uses a number of hosts to overwhelm a server, causing a website to experience a complete system crash
  • distributed system - model where mulitple networked components communicate and coordinate their actions by passing messages to accomplish a task
  • do - while loop- to repeat a section of code while a certain condition is true - this type of loop will execute at least once before checking the condition
  • domain name syntax - hierarchal definition of what a domain should look like; for example in nbc.com the ',' character marks the location of the type of address this is - to the right is .com so nbc is located on the name server that contains all the 'com' addresses
  • domain name system (DNS): maps internet domain names to the internet protocol network addresses they represent and allows websites to use names, rather than difficult-to-remember IP addresses
  • dropped messages: Poorly formed messages cannot be delivered and so are dropped, just like a letter with a bad address on it
  • dynamic IP Address: a temporary IP address that is assigned to a computing device or node when it’s connected to a network
  • dynamic Web Page: contains information that changes, depending on the viewer, the time of the day, the time zone, the viewers native language, and other factors
  • dynamically-type language - at runtime, the program figures out the type of all the variables in the program - such as JavaScript, Python, PHP, Ruby


  • efficiency (of an algorithm) - measure of the execution time and memory usage of an algorithm; often represented using Big-O notation
  • encoding - the process of applying a specific code, such as letters, symbols and numbers, to data (so that the bits have a specific meaning - in real life think of fast food menu #'s, zip codes, state abbreviations, DNA)
  • encryption - a process of using mathematical algorithms to encode messages to that the original text is hidden from anyone who is not the intended recipient
  • element (of a list) - one specific item from a list
  • email (electronic mail) - message from one computer to one or more recipients via a network
  • encode - to change how information is represented so that it can be read by a computer
  • event-driven programming: A type of programming where the program generally awaits and reacts to events rather than running code linearly.
  • event handling - an overarching term for the coding tasks involved in making your app respond to events by triggering functions.
    • event listener - a command (onEvent in App Lab) that can be set up to trigger a function when a particular type of event occurs on a particular UI element.
    • callback function - a function specified as part of an event listener; it is written by the programmer but called by the system as the result of an event trigger.
  • exception handling: lines of code that instruct the computer how to fail gracefully when errors are encountered.
  • expression - any valid unit of code that resolves to a single value. (Variables can be assigned values that are the result of an expression.)


  • file extension - a group of letters occurring after a period in a file name, indicating the format of the file, this lets the computer know which programs to use to open it
  • file input/output: Writing a program's data to a file so it can later be re-loaded after the program is closed and reopened
  • filtering data - removing parts of data sets to simplify data and/or to make conclusions more evident
  • firewall - acts as a barrier between a trusted network and and an untrusted network by applying a set of rules to control access
  • floating-point values - used in programming languages to represent non-integers (uses decimal points)
  • for loop - a programming statement that tells the computer to repeat a statement or a set of statements (which are the body of the loop). It will repeat a specific number of times.
  • frequency analysis: (in cryptography)  is the study of letters or groups of letters contained in a ciphertext in an attempt to partially reveal the message
  • ftp - file transfer protocol - the way that files can be transferred from a computer to the internet (often used in website development)
  • function: A segment of code that performs a specific task, sometimes taking some input and sometimes returning some output.


  • gateway: a network device that provides an interface to another network that uses a different protocol and that all data must pass through to use its routing paths
  • Global Positioning System (GPS) - network of orbiting satellites that allows land, sea, and airborne users to determine their exact location, velocity, and time 24 hours a day, in all weather conditions, anywhere in the world.


  • hardware component - physical part of a computer
  • hard disk drive (HDD) - the physical disc of a computer that is permanent data storage (non-volatile means it stays even when powered off)
  • hash table - a data structure for storing key/value pairs (a list within a list... )
  • halting problem - Alan Turing proved that it is not possible to decide algorithmically whether a given Turing machine will ever halt. There are some problems a computer cannot solve.
  • heuristic: a specific type of algorithm, usually used when exact solutions are difficult, impossible or would b be an inefficient use of time. Heuristics are designed to provide reasonably good results without guaranteeing a perfect solution.
  • hexadecimal number system - sixteen-digit number system where each number represents a power of 16
  • hierarchical system - system where devices and protocols are in an independent relationship and ordered into several levels
  • high level programming language: A programming language with many commands and features designed to make common tasks easier to program. Any high level functionality is encapsulated as combinations of low level commands
  • HTTP: hypertext transfer protocol (HTTP) is the protocol for data communication for the World Wide Web - it handles file requests for information from servers and delivers results to the client
  • hypothesis: a guess about how one action may cause another action to occur.
  • huffman coding - a data compression technique (lossless) - the more often a series is repeated - the shorter the binary code to represent it is (efficiency)


  • IDE - integrated development environment is a software application that provides comprehensive facilities to computer programmers for software development. An IDE normally consists of a source code editor and a terminal window
  • IETF  (Internet Engineering Task Force) -  A large open international community of network designers, operators, vendors, and researchers concerned with the evolution of the Internet architecture and the smooth operation of the Internet. Mission: To make the Internet work betterfrom an engineering point of view
  • imprecision - in a decimal number, when the lindex (of a list) - The index is the position(or location) of an item in a list, string or array. The first item is at index 0.
  • initialize - when you initialize a variable you are assigning some value to that space in memory, for example: x = 10;
  • innovation - an improvement to an existing idea
  • input - data that is sent in to a program so it can run
  • integer - a data type that can be positive whole numbers, negative whole numbers, or
    zero (but not decimals)
  • integrated circuit: one of the hardware components of a computer, sometimes called a chip or microchip; it is a set of electronic circuits such as transistors and resistors that work together
  • intellectual property: Refers to any property that is created using original thought. Traditional intellectual property include patents, copyrights, and trademarks.
  • internet - a connection of devices connected to each other via hardware, including routers, servers, and other devices, each of which is given an IP Address and must follow protocols
  • Internet (The Internet) - the worldwide connection of devices to each other (internet on a global scale); The Internet refers to the physical network of computers and the way in which they are all connected. The World Wide Web is how most people access the information stored on the Internet.
  • Internet Protocol (IP) - the way devices communicate with each other
  • Internet Protocol (IP) addresses: a unique string of numbers separated by periods that identifies each computer/device using the Internet Protocol to communicate over a network.
    - IPV4 was a 32-bit address and allows for up to 4.3 billion addresses
    - newer IPV6 is 128-bit address and allows for up to 3.4×1038 =  (340 undecillion addresses)
  • ISOC (Internet Society) -  International nonprofit organization that handles Internet standards, education and policy development - Mission: To promote the open development, evolution, and use of the Internet for the benefit of all people throughout the world
  • Internet Standard - evolving "rules" that govern how a device and join and/or communicate on the Internet
  • invention - a completely new product or idea
  • iteration (in an algorithm) -  is the repetition of part of an algorithm until a condition is met or for a specified number of times - a looping mechanism


  • key (in encryption or decryption) - variable applied to text to encrypt or decrypt the text; the length of the key is a factor in the security and performance of encryption algorithms


  • latency - Time it takes for a bit to travel from its sender to its receiver - a high latency number is known as lag - latency is measured in time (milliseconds)
  • library - A library is a named group of related procedures and functions; the files contain functions that can be accessed by a program once they are loaded in (in C - header files, in python - time, os, math, and many others)
  • line of code: A single instruction for the computer to perform.
  • linear search - proceding one by one through a list from start until the condition or end it met - not terribly efficient but useful on a small set of data
  • lists: Ordered series of other kinds of data, collected under one variable name and accessed via numeric indice (the position value: index).
  • logic gate - one of the building blocks of a computer chip; gates typically take two inputs and return either a True or False condition - a series of gates creates different streams of logic used in calculations and processes such as in advanced chips and integrated circuits
  • logical operators: Establishing the truth or falsehood of relationships among variables in our programs.
  • logic/time bomb - Malware designed to lie dormant until a specific logical condition is met
  • loops - Loops allow for the repetition of code until a condition is met.
    • for loop _ to start the variables are initialized and the condition is evaluated
      If the condition is true, the code in the loop's body runs, variables are updated, and the condition is reevaluated.
      If the condition is false, the loop terminates
    • while loop - to start the condition is evaluated
      If the condition is true, the code in the loop's body runs, and the condition is reevaluated
      If the condition is false, the loop terminates
    • do -while or while true loop - to start the code in the loop's body runs once - then condition is evaluated
      If the condition is true, the code in the loop's body runs again, and the condition is reevaluated.
      If the condition is false, the loop terminates or is broken out of
  • lossless compression - data (number of bits) is compressed in a way that the preserves all data and allows full recovery - gif, wav and png files use this method
  • lossy compression - some data (bits) gets thrown away meaning you cannot recreate the original file later - this is used in jpg and mp3 files
  • low level programming language: A programming language that captures only the most primitive operations available to a machine. Anything that a computer can do can be represented with combinations of low level command
  • LZ77 compression algorithm: replaces repeated occurrences of data with references to a single copy of that data existing earlier in the data stream


  • machine learning: the ability of a computer to learn without being explicitly programmed
  • mantissa: (in computing) : the part of a floating-point number that represents the significant digits of that number, and that is multiplied by the base raised to the exponent to give the actual value of the number
  • mathematical operators: Using arithmetic operators (addition, multiplication, etc.) to modify the values of variables in our programs.
  • memory - any physical device in a computer that stores information
  • metadata: Data that describes other data. For example, a digital image may include metadata that describe the size of the image, number of colors, and resolution, among other things
  • method: A function that is part of a class in object-oriented programming (but colloquially, often used interchangeably with function).
  • mobile computer - any personal computing device not constrained to a desktop
  • model - a way of representing a real situation in a more abstract way (with less detail)
  • modulo or modulus - a mathematical operation - modulo or "mod", is a remainder operator, %, returns the remainder after you divide one value by another. For example the remainder of 10 % 6 is 4 since 6 goes into 10 one time with a remainder of 4. Any number mod 2 is going to be either 0 or 1
  • Moore's Law: the observation that the number of transistors in an integrated circuit doubles approximately every two years
  • most significant bit (msb or high-order bit) - is the bit in the position furthest to the left in a binary number - therefore it has the greatest value - this is also used as a sign bit in one's or two's complement notations - where 1 means negative, and 0 means positive.
  • multiple hops: A message travelling across the Internet will visit many routers as each tries to forward it along the most efficient path to its destination


  • NameError: An error that usually occurs when you use a variable name that doesn't yet exist. When you encounter these, check first for misspellings; you very likely might have misspelled a variable name, causing the computer to see it as a completely different variable! If that doesn't work, try to find where you first defined the variable.
  • native data types - in C these are the data types built into the programming language - such as int, char, float, double; most programming languages have these in some form
  • nested loop - a loop inside the body of another loop
  • net neutrality - the principle that all Internet traffic should be treated equally by Internet Service Providers
  • network: A group of two or more computer systems linked together
  • nodes: A node is a basic unit used in computer science. Nodes are devices or data points on a larger network. Devices such as a personal computer, cell phone, or printer are nodes
  • null: The “value” a variable has when it doesn’t actually have a value.


  • objects: Creating and using custom data types so our programs can reason about the world the way we do.
  • object code (or machine code) - the result of compiling and assembling source code - this is the binary representation of a program that the computer can run
  • one-pager: A business/corporate term for a one-page document that summarizes a large issue, topic or plan. The purpose is to distill and highlight the most important pieces of information in a digestible manner so that the reader can be quickly acquainted with the relevant details of the "big picture."
  • OOP - object oriented programming - focuses on building reusable blocks of code called classes. When you want to use a class in one of your programs, you make an object from that class, which is where the phrase "object-oriented" comes from
  • operating system - software that manages the hardware, memory, and allows other software applications to run
  • open access - a policy that allows anyone to have read access to certain data (online libraries, data sets)
  • output (of an algorithm) - What the program provides as a result of running code and the type of input
  • out of bounds index - when you try to access an index in an array that goes beyond the size initially set - this will take something from the next spot of memory and you do not know what that may be... often your program will crash with a "segementation fault" message
  • overflow error- results when the number of bits is not enough to represent the actual number - one example is a car's odometer rolling over, or what happened when YouTube hit over 2 billion views for Gangam Style forcing the 32 bit counter to be changed to 64 bit - the value cycles from the highest number back to the lowest one available


  • packets - Small chunks of information that have been carefully formed from larger chunks of information.
  • parameter - An extra piece of information that you pass to the function to customize it for a specific need
  • peer-to-peer network - a system where one computer connects through the internet to another computer with using a central computer to manage the connection
  • phishing - a fraudulent email from a cybercriminal that is pretending to be a trustworthy person or business requesting your information OR a fake website that records your login information when you enter it
  • ping - testing how long it takes data to travel from your computer, go across the various Internet connections and nodes, reach the computer on the other side, and get back to you (response is called pong)
  • pixel - A pixel is one small part (element) of a picture. Pixels are stored in a grid and have both a x (horizontal) and y (vertical) value. A pixel has a color which can be defined by an amount of red, green, and blue with values from 0 to 255.
  • pivot table: The tool used by most spreadsheet programs to create a summary table - it uses filters to select particular fields and their data
  • plagiarism - occurs when one person presents another's ideas or work as their own
  • problem solving & design process - define, prepare, try, reflect (steps that are repeated often - iterative (looping))
  • procedure - A procedure is a named set of instructions that does not return a result, but can cause something to happen like the turtle forward (amount) procedure in Python - this can also be called a sub-routine or function
  • procedural programming - the basic approach to code, writing sequences of commands that are run by the computer in a specified order
  • process - a behavior that uses memory, a central processing unit, input, and output that can execute alone or at the same time as other processes
  • processor: an integrated circuit that contains all the functions of a central processing unit of a computer.
  • program: An independent collection of lines of code that serves one or more overall functions.
  • programming: Writing code through an iterative process of writing lines of code, attempting to execute them, and evaluating the results
  • protocol - A set of rules governing the exchange or transmission of data between device, or the correct conduct and procedures in a social situation
  • protype - a preliminary sketch or model of something new. In C, it is defining a function name at the top of a program, while the bulk of the code is included later - this notifies the compiler that a function of that name will be showing up later
  • proxy server - allows user to make a connection to another network service without going throuh the local server that the person would normally need to use
  • pseudocode - an informal language used for creating an outline or a rough draft of a program
  • public key encryption - asymmetric encryption scheme; involves two keys (one private and one public) where anyone can use the public key to encrypt a message, but only the sender and recipient know the private key so their data is protected
  • public key infrastructure - supports distribution and identification of public encryption keys so before information is exchanged the identity of the other party is verified (authenticated)


  • qualifiers - keywords that can be added in front of type names to cause changes to the type - for example casting int to float, string to char, etc.


  • random access memory - (RAM) - one of two memory types used by a computer processor; this memory is temporary and is erased when the computer is shut off
  • random generator - most programming languages have a defined procedure that will select a random number or element from a specificed range
  • random substitution cipher - an encoding technique that randomly assigns each letter to differenct characters or letters
  • raw data - the orginal data as it was collected - (before cleaning any irrelevant entries)
  • RGB - (red, green, and blue) refers to a system for representing the colors to be used on a computer display, each color uses a byte of data, the bytes can also be represented by Hex numbers which are used in HTML code to represent color digitally.
  • read only memory (ROM) - one of two memory types used by a computer processor; this memory is permanent and is available even after the computer is turned off
  • reasonable time - way to analyze an algorithm in terms of the number of steps required to solve a problem. An algorithm is said to run in reasonable time if the number of steps the algorithm takes is less than or equal to a polynomial function of the size of the set
  • recursion - functions that call themselves
  • redundancy - Redundancy is a system design in which a component is duplicated so if it fails there will be a backup - in networks it means there are several ways to get data from point A to point B
  • resolution - the number of pixels per inch in a picture
  • RFC (Request for Comments) - formal document from the Internet Engineering Task Force (IETF) that is drafted and reviewed - Some RFC's are just informational, while others end up being Internet Standards
  • round off error (floating imprecision) - results when the number of bits is not enough to represent the actual number - example: 3.14 for pi
  • router: a computer which receives messages travelling across a network and redirects them towards their intended destinations based on the addressing information included with the message.
  • routing (of packets) - way in which data is sent on a network
  • rubber duck debugging: A form of debugging where the programmer explains the logic, goals, and operations to an inanimate listener to methodically step through the code.
  • runtime errors: Errors that arise when trying to actually execute the code.


  • scientific computing - use of advanced computing capabilities to understand and solve complex and often multidisciplinary problems; has enable innovation in science and business
  • search engine - a website that allows you to search the Internet and uses algorithms to decide the best match to what you searched
  • secure socket layer/transport layer security (SSL/TLS) - standards for sharing information and communicating between browers and servers; uses a combination of public key and symmetric key encryption to secure a connection between two machines
  • segments (of a program) - smaller parts of a procedure; segments of code combine to create a procedure
  • selection (in an algorithm) - uses a Boolean condition (a TRUE/FALSE condition) to determine which of two parts of an algorithm is used
  • semantic error - the code as written does not perform as planned when it runs; an error in logic
  • sensor networks - small nodes are used to gather data which is stored on a computer. These networks are commonly used for monitoring traffic, weather conditions, or body functions.
  • sequencing (in an algorithm) -  is the application of each step of an algorithm in the order in which the statements are given - code flows line by line
  • sequential search - see linear search
  • server: A computer that awaits and responds to requests for data
  • side effect - when a function changes the value of a variable that is outside of its own scope
  • scope - dictates what portions of the code can "see" or use a variable, typically derived from where the variable was first created.
    • global variable - A variable whose scope is "global" to the program, it can be used and updated by any part of the code. Its global scope is typically derived from the variable being declared (created) outside of any function, object, or method.
    • local variable - A variable with local scope is one that can only be seen, used and updated by code within the same scope. Typically this means the variable was declared (created) inside a function -- includes function parameter variables.
  • scripting mode - in a programming language (like Python) when code is executed all at once - rather than being first compiled or run line-by-line
  • server - device that manages access and responds to requests on a network
  • short-circuit (in boolean logic) - when the result of a logical expression can be evaluated without seeing the entire expression; examples:
    1. TRUE or _____ is always TRUE. It does not matter what comes after the "or"
    2. FALSE and ____ is always FALSE. It does not matter if what is in the blank is TRUE or FALSE
  • smart grid - an electricity network that uses two-way communication to integrate the actions of all users connected to it – generators, consumers and those that do both – in order to efficiently deliver sustainable, economic and secure electricity supplies
  • short message service (SMS) - short text message
  • simple mail transfer protocol (SMTP) - an Internet standard for electronic mail (email) transmission
  • simulation - a program created to model a real situation with less detail to understand or solve a problem
  • smart technology - technology that responds to the user and/or the environment
  • social media - online applications that allow people to share information and connect with others
  • social networking: A social structure made of nodes that are generally individuals or organizations. A social network represents relationships and flows between people, groups, organizations, animals, computers, or other information/knowledge processing entities I.E. Facebook
  • solvable problem - a problem that can be solved exactly using an algorithm
  • source code - a program written in a language that a human can understand - it it the original code of a program before it is compiled and assembled into Object or Machine Code
  • source credibility - deciding if a source is reliable based on the reputation and credentials of the author, publisher, website, etc.
  • specifications - the key details that need to be included in an algorithm
  • spreadsheets:
    - scatter chart: useful for finding relationships between two types of data
    - line chart: helpful for showing the progression of values over time
    - bar chart: useful for viewing data grouped by different categories
  • sprite - a computer graphic that may be moved on-screen and otherwise manipulated as a single entity
  • spyware - Collects information about you, without your knowledge or consent
  • static webpage: a page that is exactly as coded - it looks the same to everyone who requests it
  • statically-typed language - requires that every time you declare a variable, that you specify the data type: languages such as C
  • strings: Ordered series of characters that often represent natural human language.
  • summary table: A table that summarizes information about some larger dataset. It typically consists of performing computations like sums, averages, and counts on higher level groupings of information. The intent is to summarize lots of data into a form that is more useful, and easier to "see"
  • symmetric encryption - method of encryption that involves only one key - used for both encryption and decryption
  • syntax: a set of rules in programming languages that determines how symbols and special characters are used
  • syntax error: An error that occurs when the line of code we've written can't be read by the computer because it doesn't match the computer's expectation for the programming language's grammar.
  • system capacity or system size - amount of bits that could be stored on a system


  • targeted advertising - form of advertising that uses data available about a consumer to appeal to that consumer directly
  • text-based language - one of two types of programming languages; usually written in a text editor (IDE) and run from a terminal; opposite of block based languages (scratch, app inventor, etc)
  • to / from address: Like an IP address, included on every message sent over the Internet
  • transmission control protocol (TCP) - provides reliable, ordered, and error-checked delivery of a stream of packets on the internet. TCP is tightly linked with IP and usually seen as TCP/IP in writing
  • time complexity - the amount of time an algorithm takes to run, in particular considering the theoretical worst-case and best-case scenarios when running programs.
  • throughput - how much data actually does travel in a channel (bandwith is the capacity measurement - actual data transfer can be effected by lag, transfer protocols)
  • top down design - a problem solving strategy in which you break down a large problem by naming its sub-tasks and then breaking down the sub-tasks further and so on until you're down to primitive operations
  • top level domain (TLD) - the last segment of the domain name - the letters immediately following the final dot in an Internet address (.org, .com. net., .au, etc)
  • transistor: one of the building blocks of a computer chip; controls flow of electricity by amplifying or redirecting it
  • trust model - when downloading/installing sofware the user must "trust" that there is no malicious intent
  • tuples - Tuples are basically lists that can never be changed.
  • turing machine - A Turing machine is a theoretical computer that can read instructions from a tape and write results to the tape
  • turing test - A test for intelligence in a computer, requiring that a human being should be unable to distinguish the machine from another human being by using the replies to questions put to both
  • type error: An error that occurs when we try to perform an operation on an object that doesn't make sense with the operation, like trying to add strings


  • user interface (UI) - The "User Interface" or UI of an app refers to how a person (user) interacts with the computer or app.
    • ui elements or objects, like buttons, images, text boxes, pull down menus, screens and so on.
    • ui events or controls, like click, scroll, move mouse, type keyboard key, etc.
  • unary operator: takes only one value for its operation. The plus operator (++) increments a given value by one. For instance, to increment the variable x by 1, you could express this as: x++
    The opposite is the minus operator (--) which decreases a given value by one. To decrement the variable x by 1, you could use: x--
  • undecidable or unsolvable Problem - problem in which no algorithm can be constructed to answer 'yes' or 'no' for all inputs; computers can’t do everything, and never will be able to. Such tasks, are called unsolvable problems because the design of a computer prevents it from arriving definitively at a solution
  • URL - An easy-to-remember address for calling a web page (like www.google.com)


  • value: The content of some variable. The variable myAge might hold the value 29. The variable yourName might hold the value “Adelene”.
  • variable - a storage container (assigned memory) for data that is capable of holding different values - these may change or update as programs execute
  • Vinton “Vint” Cerf - regarded widely as one of the fathers of the Internet
  • virus - a type of malicious code or program written to alter the way a computer operates and that is designed to spread from one computer to another


  • while loop - A while loop is a programming statement that tells the computer to repeat a statement or a set of statements. It repeats the body of the loop while a logical expression is true.
  • whitelist: A list of email address or IP addresses that are considered to be spam free, the opposite of a blacklist.
  • World Wide Web - the set of interconnected documents via URL's. The Internet refers to the physical network of computers and the way in which they are all connected. The World Wide Web is how most people access the information stored on the Internet.


  • x position — a position on a screen along the horizontal axis


  • y position — a position on a screen along the vertical axis


  • Zombies (a.k.a bots): compromised computers under the control of an attacker - Make it possible for someone else to control your computer from
    anywhere in the world