Vocabulary

A

Abstract Data Type

An abstract data type (or ADT) is a custom data type that's meaningful to your program. It's not built into the language; you develop it as you code.

Abstraction

Abstraction is the most fundamental idea in computer science, but it's hard to define until you've seen some examples. The most basic kind of abstraction is to give a name to something in a program. For example, here we gave the name who to the idea "pick an item at random from this list of people (or cats)." This is called procedural abstraction because we use a procedure (a block) to name the idea. This makes your code readable. You'll see other kinds of abstraction later.

Algorithm

An algorithm is a sequence of steps that are usually performed by a computer.

The algorithm doesn't have to be written in any particular programming language or even in a programming language at all; you can write your algorithm in English or any other human language.

Analog

Analog means information that is represented by signals that vary continuously (that is, including in-between values).

Antivirus or anti-malware software

Antivirus or anti-malware software is software designed to scan your files and Internet transmissions looking for malware.

Application Program Interface (API)

An application program interface (API) documents what a programmer needs to know about using a library: it's a description of each procedure's purpose, inputs, and outputs (but not its algorithms).

Architecture

Architecture is an abstraction, a specification of the machine language. It also tells how the processor connects to the memory. It doesn't specify the circuitry; the same architecture can be built as circuitry in many different ways.

Argument

An argument (or actual argument) is the input value, such as 6 for a hexagonal pinwheel. The input value is given each time the block is run; it can be a different value each time.

Artificial Intelligence

Artificial intelligence (AI) is a field of computer science loosely defined as "trying to get computers to think."

B

Bandwidth

  • Bandwidth is the maximum amount of data that can be sent in a fixed amount of time (for digital data, it is measured in bits per second). Higher bandwidth is better because the data will travel more quickly.

Behavior

A program's behavior is how it needs to work, often including what the user will see and how they will interact with the program.

Binary Search

A binary search algorithm starts in the middle of a sorted list and repeatedly eliminates half the list until either the desired value is found or all elements have been eliminated.

Linear search does a complete traversal of the list. Binary search saves time by doing a partial traversal of the list.

Binary Sequence

A binary sequence (also called a bitstream) is a sting of ones and zeros.

Bit

The word "bit" is an abbreviation for binary digit.

Bluetooth

Bluetooth is a standard wireless technology that is used to exchange data between one or more devices.

Boolean value

Predicates report a Boolean value either true or false.

Byte

A byte is eights bits.

C

Certificate authorities

Certificate authorities are organizations that issue digital certificates to verify who owns the encryption keys used for secured communications. Instead of trusting that the website is who they say they are, you now have to trust that the Certificate Authority is reliable.

Classifying Data

Classifying data is extracting groups of data with a common characteristic.

Cleaning Data

Cleaning data is the process of making the data uniform without changing its meaning (such as replacing abbreviations, spellings, and capitalizations with the intended word or converting miles to kilometers). Programmers can use programs to filter and clean digital data, thereby gaining insight and knowledge.

Clone

A copy of a sprite that shares information with its parent sprite (the original sprite).

The Cloud

  • Storing data in the cloud means storing it somewhere on the Internet, but you don't know where. The cloud service provider (Google, Dropbox, Amazon, Snap!, etc.) manages the actual storage location.

Code Segment

A code segment is a sequence of connected instructions that carry out a purposeful action, such as the one pictured on the left, which animates a conversation. The instructions in the code segment are carried out in order, from top to bottom.

Column

A column is a list containing the data from one field for all records in a dataset. A column might be the homeroom teacher for every student in your school, the magnitude of every earthquake in the dataset, the owner of every hospital in the U.S., or the phone number of every person in your contact list. In other words, a column is a vertical slice of the dataset.

Command

Commands have a jigsaw puzzle shape. They tell the computer to do something without reporting a value.

Composition

Using the result from item as the input to address from contact is called composition of functions.

Computer Network

A computer network is an interconnected computing system that is capable of sending or receiving data.

Computer virus

A computer virus is a type of malware that spreads and infects other computers. Viruses can attach themselves to legitimate programs.

Computing Device

A computing device is a physical object that can run a program, such as computers, tablets, cell phones, and smart sensors.

Computing Innovation

A computing innovation can be physical (such as a self-driving car), non-physical software (such as picture editing software), or conceptual (such as the idea of e-commerce), but regardless of the form, they must include a program as an integral part of their function.

Computing System

A computing system is a group of computing devices and programs working together for a common purpose.

Conditionals

The if and if-else blocks are called conditionals because they control the code based on a true-or-false condition.

Constant Time

An algorithm takes constant time if it takes the same amount of time regardless of input size.

Constructor

A constructor constructs one example of the data structure.

Correlation

A correlation is a particular kind of information, namely a dependence between two variables in a situation. For example in the first picture here, as one variable goes up the other goes down. It's also a correlation when as one variable goes up or down the other changes in the same manner.

Creative Commons

Creative Commons is a specific copyright license that allows others to use, share, and revise your work.

D

Data

Data are the values that computers receive from various sources, including human activity, sensors, etc.

Information is the humanly-useful patterns extracted from data.

Data provide opportunities for identifying trends, making connections, and addressing problems. Information is the result of analyzing that data.

Data Abstraction

Data abstraction is the creation and use of abstract data types in a program.

Data Type

A data type is what kind of data something is (number, text string, list, etc.).

Debugging

The art of identifying errors in computer programs and fixing them.

Decision Problem

A decision problem is a problem with a true/false answer (for example, "is 5,825,496,221 a prime number?")

Decidable Problem

A decidable problem a decision problem for which it's possible to write an algorithm that will give a correct output for all inputs.

Decryption

Decryption is the process of decoding the data.

Digital

Digital means information that is represented as ones and zeros.

Digital Divide

The digital divide refers to unequal access to computers and the Internet based on poverty, racism, sexism, isolation in the countryside, age, and other factors. The digital divide affects both individuals within a country and countries themselves.

Distance Sensor

Often called an Ultrasonic Sensor, a distance sensor detects distance by transmitting and receiving ultrasonic tones.

The sensor determines the distance to an object by measuring the time lapse between transmitting and signal and receiving it back.

Distributed Computing

Distributed computing is a form of parallel computing that uses multiple computers (perhaps even spread out around the world).

DDoS(Distributed Denial of Service) attack

A DDoS (Distributed Denial of Service) attack uses a virus to flood a server with many requests from many computers at once so that users of that server are denied service.

E

Efficiency

The relationship between the input size and the number of steps required to solve a problem is the efficiency of the algorithm used to solve the problem.

Element

An element is another name for an item in a list. (If the same value is in the list twice, that counts as two different elements.) Each element has a unique index (position) in the list.

Encryption

Encryption is the process of encoding data to prevent unauthorized access.

Exponential Time

An algorithm takes exponential time if the number of steps is less than or equal to a function like 2n , 10n , etc., which is much slower than any polynomial.

Expression


F

Fault Tolerance

Fault tolerance is the ability of a system to work around problems.

Field

A field is one item of a record in a dataset. It might be one person's homeroom teacher, the magnitude of an earthquake in Los Angeles last week, the owner of one hospital in Chicago, or the phone number of one person in your contact list.

Firewall

A firewall is a security system that controls the kinds of connections that can be made between a computer or network and the outside world.

Floating Point

Scientific notation (such as 2,350,000 = 2.35 × 106) uses powers of ten to represent very large or very small values. Floating point is the same idea but with powers of two.

Free Software

Free software means software that anyone can copy, use, modify, and redistribute.

G

Global Variable

A global variable is a variable that is usable by all scripts in the program.

H

Higher Order Function

A function that takes a function as input (or reports a function as output).

I

Index

The position number is called the index of the item in the list.

Index is also used for the position of a character in a string (for example, a letter in a word). So the first input to letter is the index.



Infinite Loop

An infinite loop is a sequence of computer instructions that repeats forever.

Information

Data are the values that computers receive from various sources, including human activity, sensors, etc.

Information is the humanly-useful patterns extracted from data.

Data provide opportunities for identifying trends, making connections, and addressing problems. Information is the result of analyzing that data.

Initializing

Setting the starting value of a variable is known as initializing the variable

Input

We use "input" loosely to mean the empty boxes in a block that get filled with values. But input also means information entered into a program by the user, as in the ask and wait block. Program input can also come from data tables, sounds, pictures, video, or other programs.

We use the word "input" both for parameters (input names) and for arguments (input values).

Input type

The input type (often called domain by programmers) of a function is the type of data that it accepts as input.

Insight

Insight is a meaningful conclusion drawn from analyzing information.

Instance of a Problem

An instance of a problem is one case of a problem, with specific inputs.

Integrated Circuit (IC)

An integrated circuit ("IC" or "chip") is a single physical device that contains millions or billions of basic electrical parts. A processor is an IC, but not all processors are IC; there are also special-purpose chips inside a computer.

Internet

The Internet is a computer network that uses open protocols to standardize communication. A computing device connected to an Internet-connected device is required to access the Internet.

IP Address

An IP address is a unique number assigned to each device on a computer network.

ISPs - Internet Service Providers

  • ISPs (Internet Service Providers) are the companies who sell Internet access to homes and institutions.

  • The computers connected to the Internet and the connections among them don't belong to any one organization. Different ISPs provide the Internet to different communities. And typically within a large organization (such as a university), the Internet connections are provided by the organization itself.

Iteration

Computer scientists describe a repeating program structure as looping, repetition, or iteration.

The code can be repeated forever, a specific number of times (such as when using repeat), or until something specific happens (such as when using repeat until as you'll see in Lab 5).

K

Keylogging software

Keylogging software is a kind of malware that records every key pressed by a user.

L

Light Emitting Diode (LED)

A semiconductor that emits light when current is passed through it. LEDs are very efficient and are used in many household items including light bulbs and television screens.

Light Sensor

A Light Sensor responds to the intensity of light level with an increasing signal voltage. The Light Sensor can be used to make a decision based on a set threshold between 0 and 100. 0 refers to no light (dark) and 100 refers to very bright light.

Linear Search or Sequential Search

An algorithm takes linear time if multiplying the input size by ten multiplies the time required by ten.

A linear search (or sequential search) algorithm checks each element of a list in order, a process which takes linear time.

Local Variable

A local variable can be set or used only in the environment in which it is defined. This term includes inputs to procedures and variables created by the for or script variables block.

Linear Time

An algorithm takes linear time the number of steps is proportional to the input size; doubling the input size doubles the time required.

Logic Error

A logic error causes the program to produce the wrong output. (This is the most common error in Snap!)

Lossless Compression

Lossless data compression algorithms (such as PNG) are reversible (there is no loss in quality); you can reconstruct the original data.

Lossy Compression

Lossy data compression algorithms are not fully reversible; you can reconstruct only an approximation of the original data.

M

Machine Language

Machine language is the lowest-level programming language; it is directly understood by the computer hardware.

Malware

Malware is software that was designed to harm or take partial control over your computer.

Metadata

Metadata are data about data. For example, the piece of data may be an image, while the metadata may include the date of creation or the file size of the image.

Modularity

Process of breaking a programming project up into separate sub-problems

N

Nested conditional statement

A nested conditional statement is an if or if else statement inside the else part of another if else statement. If the predicate of the outer if else statement is false, then inner (nested) conditional statement will test its predicate and decide what to do.

O

Open Access

Open access scholarly research reports are available for free download, rather than requiring the permission of a journal publisher.

Open Source

Open source software is a more general term that means that you put the program's code online. You may still restrict how people can use the program.

Optimization Problem

An optimization problem is one with the goal of finding the best solution among many (for example, "what's the best school schedule to place every student into as many of their requested classes as possible?")

Output

Any data sent from your program to the user or to any device. Typically, the output depends on the input.

Output type

The output type (often called range) of a function is the type of data that it reports as output.

Overflow Error

An overflow error happens when a number is too extreme for the computer to handle (too big or too small).

P

Packet

A packet is a small chunk of any kind of data (text, numbers, lists, etc) and metadata (information about the data) that is passed through the Internet as a data stream.

Packet Switching

Packet switching means that the Internet sends short bursts of information, not long continuous strings.

Parallel Computing

In parallel computing, the program is broken into smaller steps, some of which are performed at the same time. Modern computers have multiple processors (2, 4, or 8) in a single computer, so you can do small-scale parallel processing on the machine on your desk.

Parameter

A parameter (or formal parameter) is the input name, such as number of branches. The input name is set in the block definition. It never changes.

Path

A path is a sequence of directly connected computing devices that connect a sender to a receiver.

Personally identifiable information (PII)

Information that can let others figure out who you are and possibly get more information like your Social Security number, age, race, phone number(s), medical information, financial information, or biometric data (such as your thumbprint or face scan).

Phishing

Phishing is a common security attack in which the victim is tricked into giving up personal information or downloading malware.

Polynomial Time

An algorithm takes polynomial time if the number of steps is less than or equal to a power of the size of the input, such as constant (n0 ), sublinear, linear (n1), quadratic (n2), or cubic (n3).

Position Servo

A Position Servo will turn to a specific angle from 0 to 180 degrees and could be used to open and close a door. A Rotation Servo will rotate continuously and could be used to spin the blades of a fan.

Problem

A problem is a general description of a task that may (or may not) be solved algorithmically.

Predicate

A predicate is a hexagon-shaped reporter that asks a true/false question.

Primitive Data Types

Each programming language provides some primitive data types (data types that are built-in).

Procedural Abstraction

The process of developing a program by breaking up a large problem into smaller sub-problems.

Procedure

A procedure is a named sequence of instructions that may take inputs and may report a value. Some languages call procedures methods or functions. Here are two types of procedures you have seen in Snap!

Processor

A processor is a piece of circuitry inside a computer that processes the instructions from computer programs.

Proof by Contradiction

A proof by contradiction is a two-step proof that something is false that is done by:

1) assuming that it's true

2) showing how that's impossible (that it creates a contradiction)

Protocol

A protocol is set of rules that specify the behavior of a system.

Pseudocode

Some people call an algorithm written in human language pseudocode. Once you know the steps that the computer will take, you can code your algorithm in the programming language of your choice.

Public key (asymmetric) encryption

Public key encryption uses a pair of keys: a public key for encryption and a private key for decryption. The sender uses the public key to encrypt the message, and receiver uses their private key to decrypt it. Public key encryption is the primary method of encryption today because of its high level of security.

Q

Quadratic Time

An algorithm takes quadratic time if the number of steps is proportional to the square of the input size.

R

Reasonable Time

The term "reasonable time" describes any algorithm that runs in polynomial time. Exponential time algorithms are not considered reasonable.

Record

A record is one row in a dataset (other than the first row, which contains the column headings). A single record might be the data for one student in your school, the data for one earthquake that happened, the data for one hospital in the U.S, or the data for one contact in your contact list. In other words, a record is a horizontal slice of the dataset.

Recursion

Calling a procedure from inside itself is called recursion.

Redundancy

Redundancy is the inclusion of back-up elements in case one part fails.

Reporter

Reporters have an oval shape. They report a value.

Rogue access point

A rogue access point is a wireless access point that gives access to a secure network without the authorization of the network administrator.

Rotation Servo

A Rotation Servo will rotate continuously and could be used to spin the blades of a fan.

Router

  • A router is a computer that passes information from one network to another.

  • Your computer probably uses a router that is somewhere in your home to connect to your ISP.

Routing

Routing is the process of finding a path from sender to receiver.

Run-Time Error

A run-time error an error that happens while your program is running. What counts as a run-time error depends on the program you are using; in Snap! these are the errors that stop your program with a red halo surrounding the block that caused the error.

S

Scalability

Scalability is the ability of the Internet to keep working as it grows.

SSL/TLS

SSL/TLS (secure sockets layer/transport layer security) is the standard used for cryptographically secured information transfer on the Internet.

Selection

Selection means deciding (selecting) which part of an algorithm to run based on whether a condition is true or false.

Selectors

The selectors select one piece of the data structure.

Self-Contradictory Statement

A self-contradictory statement can be neither true nor false.

Sequential Computing

In sequential computing, operations are performed in order one at a time.

Sequential Search or Linear Search

An algorithm takes linear time if multiplying the input size by ten multiplies the time required by ten.

A linear search (or sequential search) algorithm checks each element of a list in order, a process which takes linear time.

Simulation

Simulations are computer representations of real things or situations that vary over time. A simulation is an abstraction designed for a particular purpose.

Software Library

A software library is a collection of procedures that can be used in programs.

A software library is a package of procedures that you can import into your program. A library is a kind of abstraction: you don't have to know any of the details of how it's coded. You can build libraries yourself, or you can use one that someone else wrote.

Sound Sensor

A sound sensor outputs a signal based on the amount of ambient noise that is present. The Sound Sensor is programmed using a value between 0 and 100, where 0 is the soft sound that can be detected and 100 is the loudest.

Specifications

The specifications describe a program's requirements, including how it functions and possibly a description of user interactions.

Speedup

Programmers refer to the speedup of parallel solution to describe how many times as fast the parallel solution is compared to the sequential solution:

Sprites and Costumes

The Alonzo character is named after Alonzo Church, a major contributor to early computer science.

In this project, there are three objects related to Alonzo:

  • One is a sprite, which is like an actor on the stage who knows how to do many different things, such as walk around the stage and speak the lines of the play

  • The other two are costumes, picture that can be "worn" by a sprite.

Sprite Variable

A sprite variable is like a global variable in that it doesn't belong to a particular script, but it does belong to a particular sprite.

String

A string is an ordered sequence of characters.

Sublinear Time

An algorithm takes sublinear time if the time grows more slowly than the size.

Sublist

A sublist is a list as an item of another list.

Symmetric cryptography

Symmetric cryptography uses the same secret key to encode and to decode a message, and it's been around for thousands of years. Its weakness is that the key becomes another message that needs to be transmitted securely.

Symmetric Encryption

Substitution ciphers are examples of symmetric encryption because they use the same key for both encryption and decryption.

Syntax Error

A syntax error means the rules of the programming language were not followed. (These are more common in text-based languages because you can easily mistype something or forget a needed semi-colon or quotation mark. By comparison, Snap! doesn't let you drop a block where it doesn't belong.)

T

TCP/IP

TCP/IP is a pair of protocols that provide two levels of abstraction:

IP (Internet Protocol) lets your computer pretend it has a direct connection to another computer. The routers at every connection point on the Internet run IP, which transmits packets from one IP address to another.

TCP (Transmission Control Protocol) lets your computer pretend it has a reliable connection to the other computer. The computers (including servers) at the two endpoints of a communication run TCP, which guarantees that packets arrive successfully.

Traversing

Traversing a list means looking at each item of the list. For each is iterative (that is, it's repetitive, like for, which can also traverse a list). But unlike for, for each traverses the list without using index numbers.

U

Undecidable Problem

An undecidable problem is the opposite. It's not possible to write an algorithm that will give a correct output for all inputs—even though it might be possible for some of them.

An undecidable problem is one for which no algorithm can ever be written that will always give a correct true/false decision for every input value. Undecidable problems are a subcategory of unsolvable problems that include only problems that should have a yes/no answer (such as: does my code have a bug?).

Undecidable Statement

An undecidable statement might be true or might be false; we don't know which.

Unsolvable Problem

An unsolvable problem is one for which no algorithm can ever be written to find the solution.

V

Values


Variable

A variable is like a box that can hold one value at a time, such as one word, one costume, or one list (which can contain many things). You can look at what's inside as many times as you want.

W

Width

Width is the number of bits that a CPU processes at a time.

Word

A word is the number of wires that connect the processor to the memory As of 2017, Words are 32 or 64 bits.

Word is a binary sequence of that many bits.

The World Wide Web

The World Wide Web is a system of linked pages, programs, and files that uses the Internet.