1/181
Looks like no tags are added yet.
Name | Mastery | Learn | Test | Matching | Spaced |
---|
No study sessions yet.
Algorithm
At its core, an algorithm is really just a generalized, conceptual solution to a problem that can later be implemented in some real-world form like a computer program.
Application Program Interface
Application program interface (API) is a set of routines, protocols, and tools for constructing software applications. An API specifies how software components should interact. In addition, APIs are used when programming graphical user interface (GUI) components.
Binary
A numeric system of base 2 that only uses combinations of the digits zero and one; this is used in one of the lowest levels of abstraction. Computers operate in binary, as they store data and perform calculations using only zeros and ones. While a single binary digit can be used to represent True (1) or False (0) in boolean logic, multiple binary digits can be used in conjunction to store large numbers and perform complex functions. Computers translate between binary and what you actually work with such as numbers and text.
Binary Search
A search algorithm that locates the position of a target value within a sorted array by repeatedly dividing the search interval in half; can only be used when the list is sorted. Because of its divide-and-conquer approach, the amount of work required to find an item grows much more slowly with Binary Search than with Sequential Search. In fact, with this logarithmic behavior
Boolean Function*
Any function based on the operations AND, OR, and NOT, and whose elements are from the domain of Boolean algebra. A function whose arguments, as well as the function itself, assume values from a two-element set (usually {0,1})
Central Processing Unit
CPU, or processor, is the brains of the computer where most calculations take place. Contains the circuitry necessary to interpret and execute program instructions.
Computational Artifact
Something created by a human using a computer and can be, but is not limited to, a program, an image, an audio, a video, a presentation, or web page file
Cryptography
The science of coding and decoding messages in order to keep them secure. Coding takes place using a key that ideally is known only by the sender and intended recipient of the message.
Floating Point Numbers
As the name implies, floating point numbers are numbers that contain floating decimal points. Examples include, the numbers 5.5, 0.001, and -2,345.6789. Numbers without decimal places are called integers. Computers recognize real numbers that contain fractions as floating point numbers.
Hexadecimal
Hexadecimal describes a base-16 number system. That is, it describes a numbering system containing 16 sequential numbers as base units (including 0) before adding a new position for the next number. The hexadecimal numbers are 0-9 and then use the letters A-F. Used to represent digital data because it utilizes fewer digits than binary.
Integers
An integer is a whole number (not a fraction) that can be positive, negative, or zero. In computer science, an integer is a datum of integral data type, a data type that represents some finite subset of the mathematical integers. Integral data types may be of different sizes and may or may not be allowed to contain negative values.
Iterations
Iteration is the repetition of part of an algorithm until a condition is met or for a specified number of times. This is often called a 'loop'. Recursive functions repeatedly execute themselves as part of their operation. Upon completing all instructions and resetting to the first one iteration has been completed.
Libraries
In computer science, a library is a collection of non-volatile resources that a program can use often to develop software. Libraries are particularly useful for storing frequently used routines because you do not need to explicitly link them to every program that uses them. The linker automatically looks in libraries for routines that it does not find elsewhere. Resources which may be found in libraries include data, documentation, message templates, pre-written code, classes, or values.
Linear/Sequential Search
A process that checks every element in the list sequentially until the desired element is found or all elements have been searched. Can be used in any type of list. Has linear performance.
Lossless Data Compression
With lossless compression, every single bit of data that was originally in the file remains after the file is uncompressed. All of the information is completely restored. This is generally the technique of choice for text or spreadsheet files, where the loss of words or financial data could pose a problem. PNG is an image format that provides lossless compression.
Lossy Data Compression
Lossy compression reduces a file by permanently eliminating certain information, especially redundant information. When the file is uncompressed, only a part of the original information is still there (although the user may not notice it). Lossy compression is generally used for video and sound, where a certain amount of information loss will not be detected by most users. JPEG provides lossy compression.
Metadata
Metadata is data that describes other data. Metadata summarizes basic information about data, which can make finding and working with particular instances of data easier. It provides information concerning an item's content such as image resolution and size.
Parameters*
In computer programming, a parameter or "argument" is a value that is passed into a function. Most modern programming languages allow functions to have multiple parameters. While the syntax of a function declaration varies between programming languages, a typical function with two parameters may look something like this:
function graphXY(x, y)
{
...
}
generalize a solution by allowing a procedure to be used instead of duplicate code; provide different values as input to procedures when they are called in a program.
Pseudocode
Pseudocode is a detailed yet readable description of what a computer program or algorithm must do. It may also describe an operating principle. It is expressed in a formally-styled natural language rather than in a programming language intended for humans. The conventions of normal programming continue.
Sequencing
The execution of each step/action of an algorithm in the precise order in which the statements are given.
One of the three building blocks of algorithms. The other two logic structures are selection and iteration. In a sequence structure, an action, or event, leads to the next ordered action in a predetermined order. The sequence can contain any number of actions, but no actions can be skipped in the sequence. The program, when run, must perform each action in order with no possibility of skipping an action or branching off to another action.
The term sequence is often applied to video and audio.
Simulations
The use of a computer to represent the dynamic responses of one system by the behavior of another system modeled after it. A simulation uses a mathematical description, or model, of a real system in the form of a computer program.
Strings
A string is a data type used in programming, such as an integer and floating point unit, but is used to represent text rather than numbers. It is comprised of a set of characters that can also contain spaces and numbers. For example, the word "hamburger" and the phrase "I ate 3 hamburgers" are both strings. The length is an important string characteristic.
Repetition
A synonym for loop and iteration.
Selection/Conditional
One of the three building blocks of algorithms which adds conditions. Allows for statements such as if-else which can send an algorithm down one of two paths depending on if a condition is true or false.
If-Else
A structure related to selection which states that "if" one thing is true then this should happen, else that should happen. Only operates with Yes/No questions.
Communication
The transmission of data from one computer to another, or from one device to another.
Flow Chart/Pattern
A diagram that can be constructed to depict each step of the algorithm (usually represented by rectangles, diamonds, etc.) interconnected with arrows showing the general flow of the process
Encryption
Securing information so that it is inaccessible to third parties.
Cryptology
The study of securing (or encrypting) information such that it is inaccessible by third parties.
Caesar Cipher
An encryption algorithm which works by aligning two alphabets against one another and offsetting them by a number of positions.
Plaintext
The original unencrypted message.
Ciphertext
The encrypted message, formed by applying an encryption algorithm to the plaintext.
Vigenere Cipher
An encryption algorithm which works by applying a key word to a plaintext. The key word is aligned with the plaintext and each letter of the keyword determines by how many places the plaintext should be rotated. For example "D" signals a rotation of 3. In short is uses multiple Ceasar Ciphers to encrypt a single plaintext making it more secure.
Cybersecurity
Measures taken to protect a computer or computer system (as on the Internet) against unauthorized access or attack
CIA Triad
Defines the target areas when developing a secure system includes confidentiality, integrity, and availability.
Confidentiality
The ability to limit access to information to a certain set of users.
Integrity
The certainty that information is accurate.
Availability
The reliability of access to information.
Authentication
The process of determining whether someone or something is, in fact, who or what it is declared to be.
Bits: Binary Digits
A bit (short for binary digit) is the smallest unit of data in a computer. A bit has a single binary value, either 0 or 1.
Matrices
An array of values arranged in rows and columns. Used to determine the integrity of sent information. Bits of data are stored in matrices and each row has either an even or odd (choose one) amount of information. If one of the rows or columns is received with an incorrect value of bits in a row or column it can be corrected.
Even/Odd Parity
Used to ensure the integrity of information, each row and column of a matrix should either be even or odd, if not the data is incorrect and will be corrected.
DDoS: Distributed Denial-of-Service
Multiple computers are infected with malware (malicious software) so that an attacker may coordinate them to send requests to a web server at the same time.
Social Engineering
The psychological manipulation of people into performing actions or divulging confidential information.
Phishing
To masquerade as an official representative of an organization and ask or demand confidential information.
Malware
Malicious software aimed at harming a computer/user.
Viruses/Worms
Spreads within a computer network and can multiply. Can be halted by anti-virus software.
Botnets
Networks made up of remotely controlled computers infected with malware; one computer can control all of them. Important to monitor network usage, your computer could be part of one.
Keyloggers
Software/hardware device which tracks key clicks and screens; can be harmless such as companies monitoring employees
Backdoors
Used to access programs by administrators but can be found by hackers with malicious intent.
Trojan Horses
A type of malware disguised as safe software; often given through e-mail links, check to make sure security is active.
Time Bombs
A computer virus which lays dormant until a specific condition is met, either a specific set of data or after a predetermined time.
Spyware
Software installed without a user's knowledge to track their activity, can access microphones and face-cams.
Electronic Voting
A voting system in which votes are electronically submitted, tallied, and stored.
Low-Level Language
Low-level languages are optimized for machines. Computers are built using highly structured circuitry that responds to very logical and clear signals. Because low-level languages are much more concrete and straightforward, with limited vocabulary and very structured syntax, nothing is left to interpretation.
Machine Code
Machine languages are the most basic type of programming language. They represent the actual binary instructions issued to computer processors and are very difficult for humans to read. A direct, low-level translation from the high-level source code.
Compiler
A program which translates each of your high-level, human-readable instructions into a corresponding string of 1s and 0s that make sense to the computer's processor. The resulting string of binary information constitutes an executable program.
Compilation
The process of translating high level programming languages (source code) to machine code.
High-Level Language
Languages that are best for human communication. These languages are complex and use a high level of abstraction. They are symbolic and rely on strings of letters to form words that represent abstract concepts, ideas, actions, and objects.
Source Code
The programs that programmers write in high-level languages are known as source code. Technically, these source code files are not really programs, per se. They are the abstract, high-level instructions that define what the program is and how it will function.
Artificial Programming Language
An artificial language which is specifically designed for programming; usually developed relatively quickly by small groups for very specific purposes and is highly structured.
Processing
A textual programming language which is aimed at being easily accessible to beginners through visual feedback. Emphasizes the potential of coding in visual fields such as art and architecture.
Visual Programming Language
Allows programmers to drag and drop pictures or icons into organized blocks that represent the different parts of a program. Block-based programming tools automatically handle all the grammar and syntax the programming language requires. This allows novice programmers to focus on the logic of their programs, rather than the syntax, spelling, capitalization, etc.
Scratch
A visual based programming language which uses block to represent lines of code. Allows beginner programmers to focus on logic, not syntax.
Bugs/Errors
Sometimes the design of the algorithm is flawed, leading to a program that misperforms. Other times, the algorithm is sound, but the program fails to accurately implement it in the chosen programming language. Both of these are examples of bugs.
Ambiguous
Describes a statement whose exact meaning can be interpreted in different ways. For example, "The girl saw a man on the hill with a telescope"
Moore's Law
Moore noted that as the manufacturing tools and processes miniaturized over time, we were able to pack more and more of these tiny components into the same amount of space. Specifically, he observed that the number of transistors that could fit on a silicon chip roughly doubled every one to two years.
Exponential
A graph whose slope increases or decreases according to a linear function. For example, "X^2".
Heuristics
A problem solver's "Rules of Thumb"; they serve as general guidelines meant to encourage progress toward a good answer, but with no guarantee of actually generating "the correct answer".
Linear
As the size of a problem grows, the amount of work required grows at approximately the same rate.
Logarithmic
Every doubling of the size of a problem only requires one extra unit of work.
Constant
No matter how much a problem grows, the amount of work stays more or less the same.
The Halting Problem
Proved by Alan Turing to be computationally undecidable. He states that you cannot write a program that will tell you which computer programs will halt (i.e., exit) and which ones will continue forever (i.e., infinitely loop).
Quadratic
As the size of a problem grows, the amount of extra work required increases much more quickly.
Scalability
How well an algorithm performs at larger and larger scales.
Efficiency
How much work an algorithm requires to find the solution.
Social Networking
A virtual world which allows for communication between friends, family, and strangers with similar interests who in the past would have never crossed paths with you.
Public Communication
Information is available to anybody at anytime such as a web site.
Private Communication
Allow one individual to specify their intended contact(s) and limit the conversation to just those parties. employ encryption so that the digital information that makes up the communication signal is encoded before it is transmitted across the Internet and then decoded only after it reaches its destination.
Simple Mail Transfer Protocol (SMTP)
Defines how all email transmission is handled, actually does not ensure total privacy. In fact, as an email message is transmitted from node to node throughout the public network of routers and gateways across the Internet, the contents of the messages are exposed in plain text.
Open Platform
Do not have a single owner calling the shots. Instead, they might have a centralized committee of interested partners to coordinate and manage the development and growth of the platform. Can often involve Open Source Code which can be edited by anyone for their needs such as the Linux operating system.
Closed Platform
Each company controls the data that they store and strictly regulates how that data can be accessed and modified by its users. For example you cant edit the Mac OS.
Asymmetric Relationship
These relationships are one-way, requiring action by only one party to create the relationship. Such as following a person on Twitter or subscribing on YouTube.
Public Key Encryption
Allows the generation of two keys: a public key (made available publically) and a private key (known only by the owner).
Certificate Authorities
Issue digital certificates that validate the ownership of encrypted keys used in secured communications and are based on a trust model.
Symmetric Relationship
involves mutual actions by both parties in the relationship. Such as 'friending' a person on Facebook.
Symmetric Key Encryption
Involves both parties using the same key to encrypt and decrypt data. Such as in a Caesar Cipher.
Metadata
Data about data. Can be descriptive data about an image, a Web page, or other complex objects. For example sorting a music collection alphabetically so albums can be easily found.
Wikis
A platform in which multiple users are able to collectively contribute to a shared knowledge base. Rather than presenting its information through the filter or with the bias of a centralized editorial control, they rely on peer-based writing, fact checking, editing, and moderation thereby giving everyone a voice.
Commerce
The activity of buying and selling, especially on a large scale.
Crowdfunding
Uses online access to customers as a means of funding projects. Sites like Kickstarter and Indiegogo were created to enable innovators a way of reaching out to potential customers and recruiting them as backers who might help make their idea a reality by providing initial "investment" funding.
Cloud Computing
The ability to "offload" large amounts of computational and data storage efforts onto remotely hosted servers and online services.
Client
Stands at one end of the communication process and typically represents the end-user.
Server
A centralized computer that all individual end users connect to. In other words, the server serves the needs of its clients (i.e., users).
Digital Divide
Describes the gap that exists between those who have sufficient access to information and communication technologies and those who do not. The four primary reasons are physical resources, opportunity, digital literacy, and digital skills.
Bandwith
A measure of bit rate — the amount of data (measured in bits) that can be sent in a fixed amount of time.
Latency
The time elapsed between the transmission and the receipt of a request.
Nodes
A machine or device that acts as either a communication endpoint (e.g., a client computer or a remote server), a connection point that links together two other nodes (e.g., a gateway, bridge, or modem), or a redistribution point that links together multiple nodes and other networks (e.g., a router, hub, or switch).
Protocols
A set of formal standards that specify the proper formatting of data, communication procedures, and handling of information between any two networked components.
Application Program Interface (API)
Simplify complex programming tasks by providing developers the building blocks necessary to interface with an existing environment or other software components.