AP * Computer Science Principles *
Terms in this set (219)
Agile software development
An approach to software development that emphasizes a flexible and ready response to meet a shifting target.
Running a program on many data sets to be sure its performance falls within required limits; timing the same algorithm on two different machines.
A collection of thoroughly tested object code for various useful tasks.
The process of translating the detailed designs into computer code.
A program design strategy in which tasks are broken down into subtasks, which are broken down into sub-subtasks, and so on, until each piece is small enough to code comfortably. These pieces work together to accomplish the total job.
Designing a special set of test cases and running the program using these test data.
The resulting object code after a linker inserts requested code from code libraries.
Any materials assembled to clarify the program's design and implementation.
A step in the software development life cycle that evaluates a proposed project and compares the costs and benefits of various solutions.
Integrated development environment (IDE)
A collection of programs that support software development, such as debuggers, editors, toolkits, and libraries, that lets programmers perform several tasks within the shell of a single application.
After unit testing, integration testing is done to see that the modules communicate the necessary data between and among themselves and that all modules work together smoothly.
Documentation that is part of the program code itself.
An error in the algorithm used to solve a problem.
Machine language instructions.
Involves two programmers at a single workstation. At any given point in time, one is writing code and the other is actively observing, watching for possible errors
but also thinking about the overall approach.
A step in the software development life cycle that involves
developing a clear, concise, and unambiguous statement of the exact problem the software
is to solve.
A program written in a procedural language consists of sequences of statements that manipulate data items.
Program design phase
A step in the software development life cycle that plans the structure of the software to be written.
The process of adapting an existing software product due to errors, new system requirements, or changing user needs.
Used to prove that if the input data to a program satisfies certain conditions, then, after the program has been run on these data, the output data satisfies certain other conditions.
If anything is changed on an already-tested module, regression testing is done to be sure that this change has not introduced a new error into code that was previously correct.
An error that occurs when the program is run using certain sets of data that result in some illegal operation, such as dividing by zero.
The meaning of correctly written programming statements.
High-level language instructions.
An error that occurs because a program statement fails to follow the correct
rules of syntax.
Documentation that enables programmers who later have to modify the program to understand the code.
Another name for high-level programming language as
opposed to machine language (first generation) or assembly language (second generation).
A program design strategy in which tasks are broken down into subtasks, which are broken down into sub-subtasks, and so on, until each piece is small enough to code comfortably. These pieces work together to accomplish the total job.
The rules for exactly how programming statements must be written; the grammatical structure of a programming language
(Java) A complete standalone program that resides and runs on a self-contained computer.
A well-written, efficient, and thoroughly tested code module that is separately compiled and then drawn on by any program that wishes to use its capabilities.
Functional programming languages
Views every task in terms of functions. In this context, function means something like a mathematical function—a recipe for taking an argument (or possibly several arguments) and doing something with them to compute a single value.
Facts and rules about a certain domain of interest.
Software whose source code is freely available and may be used, distributed, or modified by anyone.
Something that is defined in terms of "smaller versions" of itself.
A model constructed using algorithmic procedures implemented as computer programs.
A procedure for using a computational model to improve the design of an actual system by continually resetting model parameters to improve system performance.
The field of computer science that examines the technical problems of displaying visual images on a computer screen.
A model of a system using mathematical equations that describe system performance as a continuous function of time t.
Discrete event simulation
A computational modeling technique that simulates the behavior of a system only at discrete points in time.
Garbage in, garbage out
The term for the fact that the output coming out of a computer model is only as accurate as the assumption used to build the model.
The use of images and visualization techniques to make scientific data easier to interpret and understand.
Another term for a computational model.
This is a mathematical function that describes the probability of a random quantity taking on certain values.
Parts of a model that display random behavior.
Uniform random number
Every value in the range from a to b has the same chance of occurring.
Arguing about a problem by comparing it to a related problem, which you claim is very similar in terms of its ethical implications and consequences.
A school of thought in ethics that focuses on the consequences of an act to determine if the act is good or bad.
Humiliating, taunting, threatening or invading someone's privacy using the Internet, Web, or other type of electronic technology.
The study of how to decide if something is morally right or wrong.
Hacking that is intended as political activism.
Peer-to-peer file sharing
The sharing of files between two equal participants on a network. This is distinct from the client-server model in which the two sides serve very different roles--one side only sending information (the server) and the other side only receiving information (the client).
The study of algorithms, including their mathematical properties, hardware and linguistic realizations, and their applications.
The entity (machine, robot, person, or thing) that executes the steps of an algorithm.
High-level programming language
A programming language that uses both natural language constructs and mathematical notation.
The repetitive execution of a block of operations that will never end. This is a fatal error when it occurs in an algorithm.
An algorithmic operation that carries out a single task and then moves on to the next operation in sequence.
The process of finding an algorithmic solution to a given problem. Computation: An algorithmic operation that carries out a single numeric computation and stores the result.
An algorithmic operation that carries out a single numeric computation and stores the result.
Operations that ask a question and select the next instruction to carry out based on the answer to that question.
The true/false condition that will determine when the iteration has been completed.
Operations that alter the normal sequential flow of control within an algorithm.
An operation that causes data values from the outside world to be brought into the algorithm.
The repetitive execution of a block of operations.
An operation that causes computed values to be sent to the outside world for viewing or saving.
An operation that can be directly understood by the computing agent executing the algorithm and which does not have to be further clarified or explained.
A notation used to design algorithms. It uses English constructs, mathematical notation and an informal algorithmic structure designed to look like a high-level programming language.
The task of putting a list of values into numeric or alphabetical order.
An expression that can evaluate only to true or false.
One billion bytes.
an algorithm that is written in a programming language that runs on a computer
a block of programming that determines which part of the program is executed next. There are three types of structures: sequence, selection, and repetition.
an object created by a human being that involves the use of computation in some way, for example a mobile app or a web page.
Event Driven Programming
a programming approach whereby the program's behavior is controlled by writing code that responds to various events that occur, such as Button clicks.
the large and small physical components that make up a computers such as the computer's keyboard or its processor.
the computer programs that make up a computer system such as the mobile apps we will be creating in this course.
one of the seven big ideas of the CS Principles curriculum. An abstraction is a simplified and general representation of some complex object or process. One example --we'll encounter many in this course, including abstractions used in computer programming -- would be a Google map.
a number written in the binary system, a system that uses only two digits, 0s and 1s.
in internet terminology, a generic term for a list of email addresses or IP addresses that are origination with known spammers
any symbol that requires one byte of storage
a metaphor for describing the non-physical terrain created by computer systems
data is 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
are physical or virtual infrastructures used by enterprises to house computer, server and networking systems and components for the company's IT (information technology) needs
a telecommunications network which allows computers to exchange data
a randomly addressable and rewritable storage device
refers to any property that is created using original thought. Traditional intellectual property include patents, copyrights, and trademarks.
a group of two or more computer systems linked together
short for microprocessor or CPU
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
a generic name for a list of email address or IP addresses that are considered to be spam free
a device or system that represents changing values as continuously variable physical quantities
comparable to grid computing, cloud computing relies on sharing resources rather than having local servers handle applications.
the art of protecting information by transforming it into an unreadable format, called cipher text
any system based on discontinuous data or events. Computers are digital machines because at the basic level they can distinguish between just two values, 0 and 1.
Digital Signal Processing
(DSP) refers to manipulating analog information
to copy data (usually an entire file) from a main source to a peripheral device
used to describe data storage, 1,048,576 bytes (abbreviated MB)
one million pixels, used in reference to the resolution of a graphics device
process of representing a real-world object of phenomenon as a set of mathematical equations.
optical character recognition, the branch of computer science that involves reading text from paper and translating the images into a form that the computer can manipulate
the rectangular area of a display screen actually being used to display images
refers to the process of adding realism to a computer graphics by adding 3-D qualities, such as shadows and variations in color and shade.
spam is electronic junk mail or junk newsgroup postings
the art and science of hiding information by embedding messages within other, seemingly harmless messages
to transmit data from a computer to a bulletin board service, mainframe, or network.
Single unit of information on a computer represent as a 0 or 1
The number of bits that are conveyed or processed per unit of time
The time it takes for a signal to arrive
Transmission capacity, measured by bit rate
Method of transmitting data that utilizes light
Method of transmitting data that utilizes electricity
A wireless networking technology that utilizes radio waves to transmit information/data
A preliminary sketch of an idea or model for something new. It's the original drawing from which something real might be built or created.
A number assigned to any item that is connected to the Internet.
Small chunks of information that have been carefully formed from larger chunks of information.
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.
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.
Domain Name System (DNS)
An abbreviation for Domain Name System, the Internet's system for converting alphabetic names into numeric IP addresses.
Hypertext Transfer Protocol (HTTP)
The protocol used by the World Wide Web. It describes how messages are formatted and interchanged, and how web servers respond to commands.
A computer that awaits and responds to requests for data.
A computer that requests data stored on a server.
The principle that Internet service providers should enable access to all content and applications regardless of the source, and without favoring or blocking particular products or websites.
The control or suppression of what can be accessed, published, or viewed on the Internet. It may be carried out by governments or by private organizations at the behest of government, regulators, or on their own initiative.
Vertex; Represented by a labeled circle
A line connecting two nodes
Weight; The number associated with an edge that indicates distance, time, or estimated cost
A set of edges that begin at one node and can be followed through other nodes back where you started
A measure of the number of steps per input size needed to complete an algorithm
A data table stored in a router that lists the routes to particular network destinations
Minimum Spanning Tree
Dictates the shortest aggregate path from one node to every node
A spanning tree connecting all nodes together with the minimum aggregate value of its edges.
A group of volunteers, private citizens, government officials, etc. who promote internet standards
IETF stands for...
Internet Engineering Task Force
A precise sequence of instructions for processes that can be executed by a computer
A piece of code that you can easily call over and over again.
a collection of commands made available to a programmer
a description of the behavior of a command, function, library, API, etc.
An extra piece of information that you pass to the function to customize it for a specific need
A particular kind of looping construct provided in many languages. Typically, a for loop defines a counting variable that is checked and incremented on each iteration in order to loop a specific number of times.
The action of doing something over and over again.
technical term for 8 bits of data
(bitmap image file or bitmap) is a raster graphics image file format used to store digital images.
(acronym for Graphics Interchange Format) a bitmap image format which uses the LZW lossless data compression technique to reduce the file size without degrading the visual quality. Supports 8 bits per pixel for each image and animations.
.jpg or .jpeg
(acronym for Joint Photographic Experts Group), a commonly used lossy compression format for digital images, particularly for those images produced by digital photography. The format supports adjustable degrees of compression.
an audio coding format for digital audio which uses a form of lossy data compression which works by reducing (or approximating)
certain components of the audio that are considered to be beyond audible human hearing.
(Waveform Audio File Format) an audio coding format standard for storing an audio bitstream of uncompressed audio data.
a computer format that is structured as a sequence of lines of electronic text.
an archive file format that supports lossless data compression; may contain one or more files or directories.
(Portable Network Graphics) a raster graphics file format that supports lossless data compression.
a problem solving approach (algorithm) to find a satisfactory solution where finding an optimal or exact solution is impractical or impossible.
A type of data used for graphics or pictures.
Data that describes other data. For example, a digital image my include metadata that describe the size of the image, number of colors, or resolution.
Short for "picture element" it is the fundamental unit of a digital image, typically a tiny square or dot which contains a single point of color of a larger image.
Hexadecimal Number System
A number system consisting of 16 distinct symbols — 0-9 and A-F — which can occur in each place value.
A compression scheme in which every bit of the original data can be recovered from the compressed file.
A compression scheme in which "useless" or less-than-totally-necessary information is thrown out in order to reduce the size of the data. The eliminated data is unrecoverable.
the color model that uses varying intensities of (R)ed, (G)reen, and (B)lue light added together in order to reproduce a broad array of colors.
the endings of file names that indicate to the computer the format for how the underlying bits are organized.
Computationally Hard Problem
A problem that can not be solved in a reasonable amount of time. Heuristics are often used to create an approximate or good enough solution.
A novel or improved idea, device, product, etc. or the development thereof
the observation that computing power roughly doubles every two years.
a broad term for datasets so large or complex that traditional data processing applications are inadequate.
the generic term for a technique (or algorithm) that performs encryption
When you attempt to decode a secret message without knowing all the specifics of the cipher.
a process that reverses encryption, taking a secret message and reproducing the original plain text
a process of encoding messages to keep them secret, so only "authorized" parties can read it.
used in public key encryption, it is scheme in which the key to encrypt data is different from the key to decrypt.
Public Key Encryption
Used prevalently on the web, it allows for secure messages to be sent between parties without having to agree on, or share, a secret key. It uses an asymmetric encryption scheme in which the encryption key is made public, but the decryption key is kept private.
the gulf between those who have ready access to computers and the Internet, and those who do not.
A proposed explanation for some phenomenon used as the basis for further investigation.
Comparison of the popularity of topical queries in an online search engine as they relate to time.
Images, diagrams, tables, etc created from information extracted from a given data set, with the express intention of highlighting a data story.
The name of the tool used by most spreadsheet programs to create a summary table.
A document providing background information about a dataset.
Abbreviation of "comma-separated values," this is a widely-used format for storing data.
The original data as it was collected.
A table of aggregate information about a dataset (e.g., the average, sum, count of some values).
tool/technique using dynamic parameters for reducing a data set to viewing only similar items in a row or column.
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.
a question where there are only two possible answers
A set of rules governing the exchange or transmission of data between devices.
The universally recognized raw text format that any computer can understand
What does ASCII stand for?
American Standard Code for Information Interchange
HTTP stands for...
Hypertext transfer protocol
(slang) to write instructions for a computer
repetition of information or the inclusion of additional information to reduce errors in transmission.
The service that translates URL's to IP addresses
DNS stands for...
Domain name service
provides reliable, ordered and error checked delivery of a stream of packets in the internet
an easy to remember address for calling a web page
The octal number system is base 8, using only digits 0 through 7.
Traditional number system using digits 0-9.
Incremental or small improvement to an item
Improvement that is new, creative and has not been done before "outside the box thinking."
Internet pioneer who believed the Internet should be free and available to everyone
__________ level protocols use __________ levels without needing to understand precisely how they work. (space between each term)
__________ level protocols guarantee __________ level protocols will function without stating specifically how this will be accomplished.
one of several public copyright licenses that enable the free distribution of an otherwise copyrighted work. 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.
High Level Programming Language
Low Level Programming Language
A programming language that provides little or no abstraction from a computer's instruction set architecture—commands or functions in the language map closely to processor instructions. Generally this refers to either machine code or assembly language.
Fault tolerant network
The ability to route around broken servers on the internet.
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.
The common programming structure that implements "conditional statements".
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.
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.
An action that causes something to happen.
The visual elements of an program through which a user controls or communications the application. Often abbreviated UI.
(ex: Number, Boolean, or String) a value's property that dictates how the computer will interpret it. For example 7+5 is interpreted differently from "7"+"5"
Any valid unit of code that resolves to a value.
A placeholder for a piece of information that can change.
Finding and fixing problems in your algorithm or program.
statements that run under only certain conditions
A generic term for a type of programming statement (usually an if-statement) that uses a Boolean condition to determine, or select, whether or not to run a certain block of statements.
to link together or join. Typically used when joining together text Strings in programming (e.g. "Hello, "+name)
a data compression algorithm that allows the original data to be perfectly reconstructed from the compressed data.
YOU MIGHT ALSO LIKE...
Test Preparation TOEIC, SAT, TOEFL
Computer Science AP Vocab Midterm
AP Computer Science Principles Exam Prep
Code.org - AP Computer Science Principles - Unit 1-3
THIS SET IS OFTEN IN FOLDERS WITH...
AP Computer Science Principles Vocabulary
AP Computer Science Principles Final Exam Review
AP Computer Science
AP Computer Science Principles