Software Flashcards

1
Q

In this approach, a number’s sign is represented with a sign bit: setting that bit (often the most significant bit) to 0 for a positive number or positive zero, and setting it to 1 for a negative number or negative zero. The remaining bits in the number indicate the magnitude (or absolute value). For example, in an eight-bit byte, only seven bits represent the magnitude, which can can range from 0000000 (0) to 1111111 (127). Thus numbers ranging from −127 to +127 can be represented once the sign bit (the eighth bit) is added.

A

“Sign-magnitude” or “Sign and magnitude” representation

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

In computer architecture, ___ integers, memory addresses, or other data units are those that are ___ (8 octets) wide. Also, ___ CPU and ALU architectures are those that are based on registers, address buses, or data buses of that size. ___ microcomputers are computers in which ___ microprocessors are the norm. From the software perspective, ___ computing means the use of code with ____ virtual memory addresses.

A

64-bit

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

A computer program that transforms computer code written in one programming language (the source language) into another programming language (the target language).

A

A compiler

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

In computer science, a ___ is the smallest sequence of programmed instructions that can be managed independently by a scheduler, which is typically a part of the operating system. The implementation of ___ and processes differs between operating systems, but in most cases a ___ is a component of a process. Multiple ___ can exist within one process, executing concurrently and sharing resources such as memory, while different processes do not share these resources. In particular, the ___ of a process share its executable code and the values of its dynamically allocated variables and non-___-local global variables at any given time.

A

A thread of execution

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

A set of properties of database transactions intended to guarantee validity even in the event of errors, power failures, etc. In the context of databases, a sequence of database operations that satisfies these properties (and these can be perceived as a single logical operation on the data) is called a transaction. For example, a transfer of funds from one bank account to another, even involving multiple changes such as debiting one account and crediting another, is a single transaction.

A

ACID (Atomicity, Consistency, Isolation, Durability)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Is the act of compiling a higher-level programming language such as C or C++, or an intermediate representation such as Java bytecode or .NET Framework Common Intermediate Language (CIL) code, into a native (system-dependent) machine code so that the resulting binary file can execute natively.

___ produces machine optimized code, just like a standard native compiler. The difference is that ___ transforms the bytecode of an extant virtual machine (VM) into machine code.

A

Ahead-of-time compilation (AOT compilation)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

OSI Host layer, 7th layer

High-level APIs, including resource sharing, remote file access.

Closest to the end user, which means both the OSI ___ layer and the user interact directly with the software ___.
This layer interacts with software ___ that implement a communicating component.

A

Application layer

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

___, is a character encoding standard for electronic communication. ___ codes represent text in computers, telecommunications equipment, and other devices. Most modern character-encoding schemes are based on ___, although they support many additional characters.

A

ASCII (/ˈæskiː/ ASS-kee), abbreviated from American Standard Code for Information Interchange

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Any low-level programming language in which there is a very strong correspondence between the instructions in the language and the architecture’s machine code instructions. ___ language may also be called symbolic machine code.

___ code is converted into executable machine code by a utility program. The language usually has one statement per machine instruction (1:1), but comments and statements that are ___ directives, macros, and symbolic labels of program and memory locations are often also supported.

Each ___ language is specific to a particular computer architecture and sometimes to an operating system. However, some ___ languages do not provide specific syntax for operating system calls, and most ___ languages can be used universally with any operating system, as the language provides access to all the real capabilities of the processor, upon which all system call mechanisms ultimately rest. In contrast to ___ languages, most high-level programming languages are generally portable across multiple architectures but require interpreting or compiling, a much more complicated task.

A

Assembly language (or assembler language), often abbreviated asm

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Transactions are often composed of multiple statements. This guarantees that each transaction is treated as a single “unit”, which either succeeds completely, or fails completely: if any of the statements constituting a transaction fails to complete, the entire transaction fails and the database is left unchanged. This system must guarantee ___ in each and every situation, including power failures, errors and crashes.

A

Atomicity (database systems)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

___ is a mathematical notation that describes the limiting behavior of a function when the argument tends towards a particular value or infinity. It is a member of a family of notations invented by Paul Bachmann, Edmund Landau, and others, collectively called Bachmann-Landau notation or asymptotic notation.

In computer science, ___ is used to classify algorithms according to how their running time or space requirements grow as the input size grows.

___ characterizes functions according to their growth rates: different functions with the same growth rate may be represented using the same ___.

The letter ___ is used because the growth rate of a function is also referred to as the order of the function. A description of a function in terms of ___ usually only provides an upper bound on the growth rate of the function.

A

Big O notation

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

In mathematics and digital electronics, a ___ is a number expressed in the base-2 numeral system or ___ numeral system, which uses only two symbols: typically “0” (zero) and “1” (one).

The base-2 numeral system is a positional notation with a radix of 2. Each digit is referred to as a bit. Because of its straightforward implementation in digital electronic circuitry using logic gates, the ___ system is used by almost all modern computers and computer-based devices.

A

Binary number

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

In information security and programming, a ___, is an anomaly where a program, while writing data to a buffer, overruns the buffer’s boundary and overwrites adjacent memory locations.

Buffers are areas of memory set aside to hold data, often while moving it from one section of a program to another, or between programs. ___ can often be triggered by malformed inputs; if one assumes all inputs will be smaller than a certain size and the buffer is created to be that size, then an anomalous transaction that produces more data could cause it to write past the end of the buffer. If this overwrites adjacent data or executable code, this may result in erratic program behavior, including memory access errors, incorrect results, and crashes.

A

Buffer overflow, or buffer overrun

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

A unit of digital information that most commonly consists of eight bits, representing a binary number.
Historically, this was the number of bits used to encode a single character of text in a computer and for this reason it is the smallest addressable unit of memory in many computer architectures.

A

Byte or octet

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

A ___ is a small-sized datum derived from a block of digital data for the purpose of detecting errors that may have been introduced during its transmission or storage. It is usually applied to an installation file after it is received from the download server. By themselves, ___ are often used to verify data integrity but are not relied upon to verify data authenticity.

The actual procedure which yields the ___ from a data input is called a ___ function or ___ algorithm. Depending on its design goals, a good ___ algorithm will usually output a significantly different value, even for small changes made to the input. This is especially true of cryptographic hash functions, which may be used to detect many data corruption errors and verify overall data integrity; if the computed ___ for the current data input matches the stored value of a previously computed ___, there is a very high probability the data has not been accidentally altered or corrupted.

A

Checksum

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

A ___ on Unix operating systems is an operation that changes the apparent root directory for the current running process and its children. A program that is run in such a modified environment cannot name (and therefore normally cannot access) files outside the designated directory tree. The term ___ may refer to the ___ system call or the ___ wrapper program. The modified environment is called a ___ jail.

A

chroot

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

In cryptography, a ___ is an algorithm for performing encryption or decryption—a series of well-defined steps that can be followed as a procedure.

A

Cipher (or cypher), less common term is encipherment

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

An interface where the user types a ___ (which is expressed as a sequence of characters — typically a ___ name followed by some parameters) and presses the Return key to execute that ___.

A

Command line

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

___ focuses on classifying computational problems according to their inherent difficulty, and relating these classes to each other. A computational problem is a task solved by a computer. A computation problem is solvable by mechanical application of mathematical steps, such as an algorithm.

A problem is regarded as inherently difficult if its solution requires significant resources, whatever the algorithm used. The theory formalizes this intuition, by introducing mathematical models of computation to study these problems and quantifying their computational complexity, i.e., the amount of resources needed to solve them, such as time and storage. Other measures of complexity are also used, such as the amount of communication (used in communication complexity), the number of gates in a circuit (used in circuit complexity) and the number of processors (used in parallel computing). One of the roles of ___ is to determine the practical limits on what computers can and cannot do. The P versus NP problem, one of the seven Millennium Prize Problems, is dedicated to the field of ___.

A

Computational complexity theory

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

This ensures that a transaction can only bring the database from one valid state to another, maintaining database invariants: any data written to the database must be valid according to all defined rules, including constraints, cascades, triggers, and any combination thereof. This prevents database corruption by an illegal transaction, but does not guarantee that a transaction is correct.

A

Consistency (database systems)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

Is generally a terminal in the physical sense that is by some definition the primary terminal directly connected to a machine. This appears to the operating system as a (kernel-implemented) terminals. On some systems, such as Linux and FreeBSD, this appears as several terminals (ttys) (special key combinations switch between these terminals); just to confuse matters, the name given to each particular terminal can be “___”, “virtual ___”, “virtual terminal”, and other variations.

A

Console

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

In multitasking computer operating systems, a ___ is a computer program that runs as a background process, rather than being under the direct control of an interactive user. Traditionally, the process names of a ___ end with the letter d, for clarification that the process is in fact a ___, and for differentiation between a ___ and a normal computer program.

A

Daemon (/ˈdiːmən/ or /ˈdeɪmən/)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

In computer science, a ___ is a region of a physical memory storage used to temporarily store data while it is being moved from one place to another. Typically, the data is stored in a ___ as it is retrieved from an input device (such as a microphone) or just before it is sent to an output device (such as speakers). However, a ___ may be used when moving data between processes within a computer.

A

Data buffer (or just buffer)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

OSI Media layer, 2nd layer

Reliable transmission of ___ frames between two nodes connected by a physical layer
It defines the protocol to establish and terminate a connection between two physically connected devices.
It also defines the protocol for flow control between them.

A

Data link layer

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Q

A programming paradigm—a style of building the structure and elements of computer programs—that expresses the logic of a computation without describing its control flow

This style attempt to minimize or eliminate side effects by describing what the program must accomplish in terms of the problem domain

A

Declarative programming

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
26
Q

In Unix-like operating systems, a ___ is an interface to a device driver that appears in a file system as if it were an ordinary file. There are also ___ in MS-DOS, OS/2, and Microsoft Windows. These ___ allow an application program to interact with a device by using its device driver via standard input/output system calls. Using standard system calls simplifies many programming tasks, and leads to consistent user-space I/O mechanisms regardless of device features and functions.

___ usually provide simple interfaces to standard devices (such as printers and serial ports), but can also be used to access specific unique resources on those devices, such as disk partitions. Additionally, ___ are useful for accessing system resources that have no connection with any actual device such as data sinks and random number generators.

There are two general kinds of ___ in Unix-like operating systems, known as character ___ and block ___. The difference between them lies in how much data is read and written by the operating system and hardware. These together can be called ___ in contrast to named pipes, which are not connected to a device but are not ordinary files either.

A

Device file or special file

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
27
Q

With normal typing, suitability is determined by an object’s type. With this, an object’s suitability is determined by the presence of certain methods and properties, rather than the type of the object itself.

A

Duck typing (“If it walks like a duck and it quacks like a duck, then it must be a duck”—duck test)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
28
Q

This guarantees that once a transaction has been committed, it will remain committed even in the case of a system failure (e.g., power outage or crash). This usually means that completed transactions (or their effects) are recorded in non-volatile memory.

A

Durability (database systems)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
29
Q

In computing, a ___ is the part of an operating system that loads and links the shared libraries needed by an executable when it is executed (at “run time”), by copying the content of libraries from persistent storage to RAM, filling jump tables and relocating pointers. The specific operating system and executable format determine how the ___ functions and how it is implemented.

Linking is often referred to as a process that is performed when the executable is compiled, while a ___ is a special part of an operating system that loads external shared libraries into a running process and then binds those shared libraries dynamically to the running process.

A

Dynamic linker (dynamic linking or late linking)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
30
Q

The process of verifying the type safety of a program at runtime.

A

Dynamic type checking

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
31
Q

In object-oriented programming (OOP), a ___ is an object for creating other objects - formally a ___ is a function or method that returns objects of a varying prototype or class from some method call, which is assumed to be “new”. More broadly, a subroutine that returns a “new” object may be referred to as a “___”, as in ___ method or ___ function. This is a basic concept in OOP, and forms the basis for a number of related software design patterns.

A

Factory

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
32
Q

In computer science, a ___ is a routine that can be used to control the iteration behaviour of a loop. All ___ are also iterators. A ___ is very similar to a function that returns an array, in that a ___ has parameters, can be called, and generates a sequence of values. However, instead of building an array containing all the values and returning them all at once, a ___ yields the values one at a time, which requires less memory and allows the caller to get started processing the first few values immediately. In short, a ___ looks like a function but behaves like an iterator.

___ can be implemented in terms of more expressive control flow constructs, such as coroutines or first-class continuations. ___ are a special case of (and weaker than) coroutines, in that they always yield control back to the caller (when passing a value back), rather than specifying a coroutine to jump to.

A

Generator, also known as semicoroutines

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
33
Q

Any function that can be used to map data of arbitrary size to fixed-size values. The values returned by a ___ function are called ___ values, ___ codes, digests, or simply ___. ___ are often used in combination with a ___ table, a common data structure used in computer software for rapid data lookup. ___ accelerate table or database lookup by detecting duplicated records in a large file. One such application is finding similar stretches in DNA sequences. They are also useful in cryptography. A cryptographic ___ allows one to easily verify whether some input data map onto a given ___ value, but if the input data is unknown it is deliberately difficult to reconstruct it (or any equivalent alternatives) by knowing the stored ___ value. This is used for assuring integrity of transmitted data, and is the building block for HMACs, which provide message authentication.

A

Hash function

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
34
Q

In computing, a ___ is a data structure that implements an associative array abstract data type, a structure that can map keys to values. A ___ uses a hash function to compute an index, also called a hash code, into an array of buckets or slots, from which the desired value can be found.

Ideally, the hash function will assign each key to a unique bucket, but most ___ designs employ an imperfect hash function, which might cause hash collisions where the hash function generates the same index for more than one key. Such collisions are always accommodated in some way.

In a well-dimensioned ___, the average cost (number of instructions) for each lookup is independent of the number of elements stored in the table. Many ___ designs also allow arbitrary insertions and deletions of key-value pairs, at (amortized) constant average cost per operation.

A

Hash table (hash map)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
35
Q

In cryptography, an ___ is a specific type of message authentication code involving a cryptographic hash function and a secret cryptographic key. It may be used to simultaneously verify both the data integrity and the authentication of a message. Any cryptographic hash function, such as SHA-256 or SHA-3, may be used in the calculation of an ___; the resulting algorithm is termed ___-X, where X is the hash function used (e.g. ___-SHA256 or ___-SHA3). The cryptographic strength of the ___ depends upon the cryptographic strength of the underlying hash function, the size of its hash output, and the size and quality of the key.

___ uses two passes of hash computation. The secret key is first used to derive two keys - inner and outer. The first pass of the algorithm produces an internal hash derived from the message and the inner key. The second pass produces the final ___ code derived from the inner hash result and the outer key.

A

HMAC (sometimes expanded as either keyed-hash message authentication code or hash-based message authentication code)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
36
Q

Code execution paths in which most of the execution time is spent, and which are potentially executed very often.

The reason for avoiding (heap) allocations in these code paths is that allocations may trigger a garbage collection, which may cause sudden, extreme performance deteriorations. These should obviously be avoided in very commonly executed code paths.

A

Hot paths

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
37
Q

Means the rate at which a process progressing is limited by the speed of the ___ subsystem. A task that processes data from disk, for example, counting the number of lines in a file is likely to be ___.

A

I/O Bound

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
38
Q

A programming paradigm that uses statements that change a program’s state.

This programming focuses on describing how a program operates.

A

Imperative programming

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
39
Q

In computer programming, an ___ occurs when an arithmetic operation attempts to create a numeric value that is outside of the range that can be represented with a given number of digits - either larger than the maximum or lower than the minimum representable value.
The most common result of an ___ is that the least significant representable digits of the result are stored; the result is said to wrap around the maximum (i.e. modulo a power of the radix, usually two in modern computers, but sometimes ten or another radix).
An ___ condition may give results leading to unintended behavior. In particular, if the possibility has not been anticipated, ___ can compromise a program’s reliability and security.

For some applications, such as timers and clocks, wrapping on ___ can be desirable. The C11 standard states that for unsigned integers modulo wrapping is the defined behavior and the term ___ never applies: “a computation involving unsigned operands can never ___.”

A

Integer overflow

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
40
Q

In computer science, ___ refers specifically to the mechanisms an operating system provides to allow the processes to manage shared data. Typically, applications can use ___, categorized as clients and servers, where the client requests data and the server responds to client requests. Many applications are both clients and servers, as commonly seen in distributed computing. Methods for doing ___ are divided into categories which vary based on software requirements, such as performance and modularity requirements, and system circumstances, such as network bandwidth and latency. Common ___ methods are Files, Message queues and Sockets.

A

Inter-process communication or interprocess communication (IPC)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
41
Q

A Network layer protocol.

A principal communications protocol for relaying datagrams across network boundaries. Its routing function enables internetworking, and essentially establishes the Internet.

Has the task of delivering packets from the source host to the destination host solely based on the ___ addresses in the packet headers. For this purpose, it defines packet structures that encapsulate the data to be delivered. It also defines addressing methods that are used to label the datagram with source and destination information.

A

Internet Protocol (IP)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
42
Q

Transactions are often executed concurrently (e.g., reading and writing to multiple tables at the same time). This ensures that concurrent execution of transactions leaves the database in the same state that would have been obtained if the transactions were executed sequentially. This is the main goal of concurrency control; depending on the method used, the effects of an incomplete transaction might not even be visible to other transactions.

A

Isolation (database systems)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
43
Q

Is a way of executing computer code that involves compilation during execution of a program - at run time - rather than prior to execution. Most often, this consists of source code or more commonly bytecode translation to machine code, which is then executed directly.

A system implementing a ___ compiler typically continuously analyses the code being executed and identifies parts of the code where the speedup gained from compilation or recompilation would outweigh the overhead of compiling that code.

A

Just-in-time (JIT) compilation (also dynamic translation or run-time compilations)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
44
Q

A computer program that is the core of a computer’s operating system, with complete control over everything in the system. On most systems, it is one of the first programs loaded on start-up (after the bootloader). It handles the rest of start-up as well as input/output requests from software, translating them into data-processing instructions for the central processing unit. It handles memory and peripherals like keyboards, monitors, printers, and speakers.

The critical code of the ___ is usually loaded into a separate area of memory, which is protected from access by application programs or other, less critical parts of the operating system. The ___ performs its tasks, such as running processes, managing hardware devices such as the hard disk, and handling interrupts, in this protected ___ space.

A

Kernel

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
45
Q

OSI model layer architecture

A
Layer 7: Application Layer
Layer 6: Presentation Layer
Layer 5: Session Layer
Layer 4: Transport Layer
Layer 3: Network Layer
Layer 2: Data Link Layer
Layer 1: Physical Layer
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
46
Q

A computer utility program that takes one or more object files generated by a compiler and combines them into a single executable file, library file, or another ‘object’ file.

A

Linker or link editor

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
47
Q

A tool that analyzes source code to flag programming errors, bugs, stylistic errors, and suspicious constructs. The term originates from a Unix utility that examined C language source code

A

Lint, or a linter

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
48
Q

A compiler infrastructure project is a set of compiler and toolchain technologies, which can be used to develop a front end for any programming language and a back end for any instruction set architecture. ___ is designed around a language-independent intermediate representation that serves as a portable, high-level assembly language that can be optimized with a variety of transformations over multiple passes.

___ is written in C++ and is designed for compile-time, link-time, run-time, and “idle-time” optimization. Originally implemented for C and C++, the language-agnostic design of ___ has since spawned a wide variety of front ends: languages with compilers that use ___ include ActionScript, Ada, C#, Common Lisp, Crystal, CUDA, D, Delphi, Dylan, Fortran, Graphical G Programming Language, Halide, Haskell, Java bytecode, Julia, Kotlin, Lua, Objective-C, OpenGL Shading Language, Ruby, Rust, Scala, Swift, and Xojo.

A

LLVM (used to mean “Low Level Virtual Machine” but not anymore)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
49
Q

Occur when there is a design flaw in your program.

A

Logic errors

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
50
Q

Means the rate at which a process progressing is limited by the amount ___ available and the speed of that ___ access. A task that processes/assigns large amounts of in memory data, for example multiplying large matrices, is likely to be ___.

A

Memory bound

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
51
Q

A way for a program to extend or modify supporting system software locally (affecting only the running instance of the program).

A

Monkey Patching, or Duck Punching

52
Q

In computing, a ___ is an extension to the traditional pipe concept on Unix and Unix-like systems, and is one of the methods of inter-process communication (IPC). The concept is also found in OS/2 and Microsoft Windows, although the semantics differ substantially. A traditional pipe is “unnamed” and lasts only as long as the process. A ___, however, can last as long as the system is up, beyond the life of the process. It can be deleted if no longer used. Usually a ___ appears as a file, and generally processes attach to it for IPC.

A

Named pipe (also known as a FIFO for its behavior)

53
Q

OSI Media layer, 3rd layer

Structuring and managing a multi-node ___, including addressing, routing and traffic control.

A ___ is a medium to which many nodes can be connected, on which every node has an address and which permits nodes connected to it to transfer messages to other nodes connected to it by merely providing the content of a message and the address of the destination node and letting the ___ find the way to deliver the message to the destination node, possibly routing it through intermediate nodes

A

Network layer

54
Q

A formatted unit of data carried by a ___-switched network. This consists of control information and user data, which is also known as the payload. Control information provides data for delivering the payload, for example: source and destination network addresses, error detection codes, and sequencing information. Typically, control information is found in ___ headers and trailers.

In ___ switching, the bandwidth of the communication medium is shared between multiple communication sessions, in contrast to circuit switching, in which circuits are preallocated for the duration of one session and data is typically transmitted as a continuous bit stream.

A

Network packet

55
Q

A ___ is an internal endpoint for sending or receiving data within a node on a computer network. Concretely, it is a representation of this endpoint in networking software (protocol stack), such as an entry in a table (listing communication protocol, destination, status, etc.), and is a form of system resource.

The term ___ is analogous to physical female connectors, communication between two nodes through a channel being visualized as a cable with two male connectors plugging into ___ at each node. Similarly, the term port (another term for a female connector) is used for external endpoints at a node, and the term ___ is also used for an internal endpoint of local inter-process communication (IPC) (not over a network). However, the analogy is strained, as network communication need not be one-to-one or have a dedicated communication channel.

A

Network socket

56
Q

In some operating systems, the ___ is a device file that discards all data written to it but reports that the write operation succeeded.

A

null device (/dev/null on Unix and Unix-like systems)

57
Q

___ uses a pre-specified number K as a biasing value. A value is represented by the unsigned number which is K greater than the intended value. Thus 0 is represented by K, and −K is represented by the all-zeros bit pattern. This can be seen as a slight modification and generalization of two’s-complement, which is virtually the excess-(2N−1) representation with negated most significant bit.

A

Offset binary, also called excess-K or biased representation

58
Q

The ___ form of a negative binary number is the bitwise NOT applied to it, i.e. the “complement” of its positive counterpart. Like sign-and-magnitude representation, ___ has two representations of 0: 00000000 (+0) and 11111111 (−0).

As an example, the ___ form of 00101011 (43) becomes 11010100 (−43). A conventional eight-bit byte is −127 to +127 with zero being either 00000000 (+0) or 11111111 (−0).

A

Ones’ complement

59
Q

An operating system paradigm in which the kernel allows the existence of multiple isolated user-space instances. Such instances, called containers (Solaris, Docker), Zones (Solaris), virtual private servers (OpenVZ), partitions, virtual environments (VEs), virtual kernel (DragonFly BSD) or jails (FreeBSD jail or chroot jail), may look like real computers from the point of view of programs running in them.

A computer program running on an ordinary operating system can see all resources (connected devices, files and folders, network shares, CPU power, quantifiable hardware capabilities) of that computer. However, programs running inside of a container can only see the container’s contents and devices assigned to the container.

A

OS-level virtualization

60
Q

The ___ is a major unsolved problem in computer science. It asks whether every problem whose solution can be quickly verified can also be solved quickly.

It is one of the seven Millennium Prize Problems selected by the Clay Mathematics Institute, each of which carries a US$1,000,000 prize for the first correct solution.

The informal term quickly, used above, means the existence of an algorithm solving the task that runs in polynomial time, such that the time to complete the task varies as a polynomial function on the size of the input to the algorithm (as opposed to, say, exponential time). The general class of questions for which some algorithm can provide an answer in polynomial time is called class ___ or just ___. For some questions, there is no known way to find an answer quickly, but if one is provided with information showing what the answer is, it is possible to verify the answer quickly. The class of questions for which an answer can be verified in polynomial time is called __, which stands for ___ time.

An answer to the ___ = ___ question would determine whether problems that can be verified in polynomial time can also be solved in polynomial time. If it turned out that ___ ≠ ___, which is widely believed, it would mean that there are problems in ___ that are harder to compute than to verify: they could not be solved in polynomial time, but the answer could be verified in polynomial time.

A

P (polynomial) versus NP (nondeterministic polynomial) problem

61
Q

OSI Media layer, 1st layer

Transmission and reception of raw bit streams over a physical medium

It converts the digital bits into electrical, radio, or optical signals.

A

Physical layer

62
Q

In Unix-like computer operating systems, a ___ is a mechanism for inter-process communication using message passing. A ___ is a set of processes chained together by their standard streams, so that the output text of each process (stdout) is passed directly as input (stdin) to the next one. The first process is not completed before the second is started, but they are executed concurrently. The concept of ___ was championed by Douglas McIlroy at Unix’s ancestral home of Bell Labs, during the development of Unix, shaping its toolbox philosophy. It is named by analogy to a physical ___. A key feature of these ___ is their “hiding of internals” (Ritchie & Thompson, 1974). This in turn allows for more clarity and simplicity in the system.

A

Pipeline (or pipe)

63
Q

In computer networking, a ___ is a communication endpoint. Physical as well as wireless connections are terminated at ___ of hardware devices. At the software level, within an operating system, a ___ is a logical construct that identifies a specific process or a type of network service. ___ are identified for each protocol and address combination by 16-bit unsigned numbers, commonly known as the ___ number. The most common protocols that use ___ numbers are the Transmission Control Protocol (TCP) and the User Datagram Protocol (UDP).

A

Port

64
Q

A family of standards specified by the IEEE Computer Society for maintaining compatibility between operating systems. ___ defines the application programming interface (API), along with command line shells and utility interfaces, for software compatibility with variants of Unix and other operating systems.

A

Portable Operating System Interface (POSIX)

65
Q

OSI Host layer, 6th layer

Translation of data between a networking service and an application; including character encoding, data compression and encryption/decryption.

Establishes context between application-layer entities, in which the application-layer entities may use different syntax and semantics if the ___ service provides a mapping between them. If a mapping is available, ___ protocol data units are encapsulated into session protocol data units and passed down the protocol stack.

A

Presentation layer

66
Q

A ___, runs as a normal application inside a host OS and supports a single process. It is created when that process is started and destroyed when it exits. Its purpose is to provide a platform-independent programming environment that abstracts away details of the underlying hardware or operating system and allows a program to execute in the same way on any platform.

A ___ provides a high-level abstraction – that of a high-level programming language (compared to the low-level ISA abstraction of the system VM). ___ are implemented using an interpreter; performance comparable to compiled programming languages can be achieved by the use of just-in-time compilation.

This type of VM has become popular with the Java programming language, which is implemented using the Java virtual machine. Other examples include the Parrot virtual machine and the .NET Framework, which runs on a VM called the Common Language Runtime. All of them can serve as an abstraction layer for any computer language.

A

Process virtual machine, sometimes called an application virtual machine, or Managed Runtime Environment (MRE)

67
Q

Instance of a computer program that is being executed.
It contains the program code and its activity.

Depending on the operating system (OS), this may be made up of multiple threads of execution that execute instructions concurrently.

A

Process

68
Q

___ cryptography, is a cryptographic system that uses pairs of keys: ___ keys which may be disseminated widely, and private keys which are known only to the owner. The generation of such keys depends on cryptographic algorithms based on mathematical problems to produce one-way functions. Effective security only requires keeping the private key private; the ___ key can be openly distributed without compromising security

A

Public-key, or asymmetric

69
Q

___ is one of the first public-key cryptosystems and is widely used for secure data transmission. In such a cryptosystem, the encryption key is public and it is different from the decryption key which is kept secret (private). In ___, this asymmetry is based on the practical difficulty of the factorization of the product of two large prime numbers, the “factoring problem”. The acronym ___ is made of the initial letters of the surnames of Ron ___, Adi ___, and Leonard ___, who first publicly described the algorithm in 1977.

A

RSA (Rivest-Shamir-Adleman)

70
Q

Occur when a program with no syntax errors asks the computer to do something that the computer is unable to reliably do.

A

Runtime errors

71
Q

Method by which work specified by some means is assigned to resources that complete the work.
The work may be virtual computation elements such as threads, processes or network data flows, which are in turn onto hardware resources such as processors, network links or expansion cards.

A

Scheduling

72
Q

Are a family of cryptographic hash functions published by the National Institute of Standards and Technology (NIST) as a U.S. Federal Information Processing Standard (FIPS)

A

Secure Hash Algorithms (SHA)

73
Q

OSI Host layer, 5th layer

Managing communication ___, i.e. continuous exchange of information in the form of multiple back-and-forth transmissions between two nodes.

It establishes, manages and terminates the connections between the local and remote application.

A

Session layer

74
Q

The primary interface that users see when they log in, whose primary purpose is to start other programs.

A

Shell

75
Q

In computing, ___ representations are required to encode negative numbers in binary number systems.

In mathematics, negative numbers in any base are represented by prefixing them with a minus (“−”) sign. However, in computer hardware, numbers are represented only as sequences of bits, without extra symbols. The four best-known methods of extending the binary numeral system to represent ___ are: sign-and-magnitude, ones’ complement, two’s complement, and offset binary.

A

Signed number

76
Q

In software, a ___ occurs if the call stack pointer exceeds the stack bound. The call stack may consist of a limited amount of address space, often determined at the start of the program. The size of the call stack depends on many factors, including the programming language, machine architecture, multi-threading, and amount of available memory. When a program attempts to use more space than is available on the call stack (that is, when it attempts to access memory beyond the call stack’s bounds, which is essentially a buffer overflow), the ___ is said to ___, typically resulting in a program crash.

A

Stack overflow

77
Q

Preconnected input and output communication channels between a computer program and its environment when it begins execution.
Originally I/O happened via a physically connected system console (input via keyboard, output via monitor), but ___ abstract this. When a command is executed via an interactive shell, the ___ are typically connected to the text terminal on which the shell is running, but can be changed with redirection or a pipeline.
More generally, a child process inherits the ___ of its parent process.

A

Standard streams, standard input (stdin), standard output (stdout) and standard error (stderr)

78
Q

In computer science, a ___ is a set of routines, external functions and variables which are resolved in a caller at compile-time and copied into a target application by a compiler, linker, or binder, producing an object file and a stand-alone executable. This executable and the process of compiling it are both known as a static build of the program. Historically, libraries could only be ___. ___ are either merged with other ___ and object files during building/linking to form a single executable or loaded at run-time into the address space of their corresponding executable at a static memory offset determined at compile-time/link-time.

A

Static library or statically-linked library

79
Q

The process of verifying the type safety of a program based on analysis of a program’s text (source code) at compile-time.

A

Static type checking

80
Q

Generally has stricter typing rules at compile time, which implies that errors and exceptions are more likely to happen during compilation. Most of these rules affect variable assignment, return values and function calling.

A

Strongly typed language

81
Q

A term for any file that contains a reference to another file or directory in the form of an absolute or relative path and that affects pathname resolution.

A

Symbolic link (also symlink or soft link)

82
Q

Represent grammar errors in the use of the programming language

A

Syntax errors

83
Q

Provide a substitute for a real machine. They provide functionality needed to execute entire operating systems. A hypervisor uses native execution to share and manage hardware, allowing for multiple environments which are isolated from one another, yet exist on the same physical machine. Modern hypervisors use hardware-assisted virtualization, virtualization-specific hardware, primarily from the host CPUs.

A

System virtual machines (also termed full virtualization VMs)

84
Q

Early user terminals connected to computers were electromechanical teleprinters or ___, and since then ___ has continued to be used as the name for the text-only console although now this text-only console is a virtual console not a physical console.

Timeshare systems (pre-Unix) developed physical terminals that allowed you to interact with (share) the computer during your scheduled time. These terminals meant you did not have to be physically in front of the computer to use it. You could also send output to a ___, that would print the output at that location.

It’s this origin in physical terminals (and ultimately the machines origins in the telegraph (distant writing) system and their use of control codes that accounts for certain terminal standards today. These include the standard 80 character width and the carriage return and linefeed codes.

A

TeleTYpewriter, TTY

85
Q

A particular kind of device file which implements a number of additional commands (ioctls) beyond read and write. Some are provided by the kernel on behalf of a hardware device, for example with the input coming from the keyboard and the output going to a text mode screen, or with the input and output transmitted over a serial line. Others, sometimes called pseudo-___ or pseudo-ttys, are provided (through a thin kernel layer) by programs called ___ emulators.

A

Terminal

86
Q

Memory set aside for dynamic allocation. There’s no enforced pattern to the allocation and deallocation of blocks; you can allocate a block at any time and free it at any time.

The OS is called by the language runtime to allocate this memory for the application.

Has much more complex bookkeeping involved in an allocation or deallocation

A

The heap

87
Q

Memory set aside as scratch space for a thread of execution.
The OS allocates this memory for each system-level thread when the thread is created.

This memory is faster because the access pattern makes it trivial to allocate and deallocate memory from it (a pointer/integer is simply incremented or decremented).

A

The stack

88
Q

In computer science, the ___ is the computational complexity that describes the amount of time it takes to run an algorithm. ___ is commonly estimated by counting the number of elementary operations performed by the algorithm, supposing that each elementary operation takes a fixed amount of time to perform. Thus, the amount of time taken and the number of elementary operations performed by the algorithm are taken to differ by at most a constant factor.

Since an algorithm’s running time may vary among different inputs of the same size, one commonly considers the worst-case ___, which is the maximum amount of time required for inputs of a given size. Less common, and usually specified explicitly, is the average-case ___, which is the average of the time taken on inputs of a given size (this makes sense because there are only a finite number of possible inputs of a given size). In both cases, the ___ is generally expressed as a function of the size of the input. Since this function is generally difficult to compute exactly, and the running time for small inputs is usually not consequential, one commonly focuses on the behavior of the complexity when the input size increases—that is, the asymptotic behavior of the complexity. Therefore, the ___ is commonly expressed using big O notation.

A

Time complexity

89
Q

A Transport layer protocol.

Provides reliable, ordered, and error-checked delivery of a stream of octets (bytes) between applications running on hosts communicating via an IP network.

A

Transmission Control Protocol (TCP)

90
Q

OSI Host layer, 4th layer

Reliable transmission of data segments between points on a network, including segmentation, acknowledgement and multiplexing.

Provides the functional and procedural means of transferring variable-length data sequences from a source to a destination host, while maintaining the quality of service functions.

A

Transport layer

91
Q

In computability theory, a system of data-manipulation rules (such as a computer’s instruction set, a programming language, or a cellular automaton) is said to be this or computationally universal if it can be used to simulate any ___ machine.

This means that this system is able to recognize or decide other data-manipulation rule sets. This ___ completeness is used as a way to express the power of such data-manipulation rule set.

A

Turing complete

92
Q

In ___, negative numbers are represented by the bit pattern which is one greater (in an unsigned sense) than the ones’ complement of the positive value.

In ___, there is only one zero, represented as 00000000. Negating a number (whether negative or positive) is done by inverting all the bits and then adding one to that result. Addition of a pair of ___ integers is the same as addition of a pair of unsigned numbers (except for detection of overflow, if that is done); the same is true for subtraction and even for N lowest significant bits of a product (value of multiplication). For instance, a ___ addition of 127 and −128 gives the same binary bit pattern as an unsigned addition of 127 and 128.

A

Two’s complement

93
Q

___ is a computing industry standard for the consistent encoding, representation, and handling of text expressed in most of the world’s writing systems. The standard is maintained by the ___ Consortium, and as of May 2019 the most recent version, ___ 12.1, contains a repertoire of 137,994 characters (consisting of 137,766 graphic characters, 163 format characters and 65 control characters) covering 150 modern and historic scripts, as well as multiple symbol sets and emoji. The character repertoire of the ___ Standard is synchronized with ISO/IEC 10646, and both are code-for-code identical.

A

Unicode (or Universal Coded Character Set)

94
Q

A Transport layer protocol.

Computer applications can send messages, in this case referred to as datagrams, to other hosts. Prior communications are not required in order to set up communication channels or data paths.

A

User Datagram Protocol (UDP)

95
Q

___ is a variable width character encoding capable of encoding all 1,112,064 valid code points in ___ using one to four 8-bit bytes. The encoding is defined by the Unicode Standard, and was originally designed by Ken Thompson and Rob Pike.

It was designed for backward compatibility with ASCII. Code points with lower numerical values, which tend to occur more frequently, are encoded using fewer bytes. The first 128 characters of Unicode, which correspond one-to-one with ASCII, are encoded using a single byte with the same binary value as ASCII, so that valid ASCII text is valid UTF-8-encoded Unicode as well. Since ASCII bytes do not occur when encoding non-ASCII code points into ___, ___ is safe to use within most programming and document languages that interpret certain ASCII characters in a special way, such as “/” (slash) in filenames, “" (backslash) in escape sequences, and “%” in printf.

A

UTF-8 (8-bit Unicode Transformation Format)

96
Q

In computer programming, a ___ is a storage location (identified by a memory address) paired with an associated symbolic name, which contains some known or unknown quantity of information referred to as a value.

A

Variable or scalar

97
Q

Generally has looser typing rules and may produce unpredictable results or may perform implicit type conversion at runtime.

A

Weakly typed language

98
Q

In mathematics and computing, ___ is a positional system that represents numbers using a base of 16. Unlike the common way of representing numbers with ten symbols, it uses sixteen distinct symbols, most often the symbols “0”-“9” to represent values zero to nine, and “A”-“F” (or alternatively “a”-“f”) to represent values ten to fifteen.

___ numerals are widely used by computer system designers and programmers, as they provide a human-friendly representation of binary-coded values. Each ___ digit represents four binary digits, also known as a nibble, which is half a byte. For example, a single byte can have values ranging from 00000000 to 11111111 in binary form, which can be conveniently represented as 00 to FF in ___.

In mathematics, a subscript is typically used to specify the base, also known as the radix. For example, the decimal value 10,995 would be expressed in ___ as 2AF316. In programming, a number of notations are used to support ___ representation, usually involving a prefix or suffix. The prefix 0x is used in C and related languages, which would denote this value by 0x2AF3.

A

Hexadecimal (also base 16, or hex)

99
Q

In computer science, a ___ is a sequence of data elements made available over time. A ___ can be thought of as items on a conveyor belt being processed one at a time rather than in large batches.

___ are processed differently from batch data – normal functions cannot operate on ___ as a whole, as they have potentially unlimited data, and formally, ___ are codata (potentially unlimited), not data (which is finite). Functions that operate on a ___, producing another ___, are known as filters, and can be connected in pipelines, analogously to function composition. Filters may operate on one item of a ___ at a time, or may base an item of output on multiple items of input, such as a moving average.

A

Stream

100
Q

In computer programming, a ___ is a method of transferring program control (___) to another part of a program (or a different program that may have been dynamically loaded) using a table of ___ instructions. It is a form of multiway ___. The ___ construction is commonly used when programming in assembly language but may also be generated by compilers, especially when implementing optimized switch statements whose values are densely packed together.

A

Branch table or jump table

101
Q

In computer science, a ___ is a programming language object that stores a memory address. This can be that of another value located in computer memory, or in some cases, that of memory mapped computer hardware. A ___ references a location in memory, and obtaining the value stored at that location is known as dereferencing the ___. As an analogy, a page number in a book’s index could be considered a ___ to the corresponding page; dereferencing such a pointer would be done by flipping to the page with the given page number and reading the text found on that page. The actual format and content of a ___ variable is dependent on the underlying computer architecture.

A

Pointer

102
Q

In computer programming, ___ is a general technique that ___ data sources from the provider and consumer together and synchronizes them. This is usually done with two data/information sources with different languages as in XML ___ and UI ___ (Arman). In UI ___, data and information objects of the same language but different logic function are bound together (e.g. Java UI elements to Java objects).

In a ___ process, each data change is reflected automatically by the elements that are ___ to the data. The term ___ is also used in cases where an outer representation of data in an element changes, and the underlying data is automatically updated to reflect this change. As an example, a change in a TextBox element could modify the underlying data value.

A

Data binding

103
Q

In computing, ___ is an optimization technique used primarily to speed up computer programs by storing the results of expensive function calls and returning the cached result when the same inputs occur again. ___ has also been used in other contexts (and for purposes other than speed gains), such as in simple mutually recursive descent parsing. Although related to caching, ___ refers to a specific case of this optimization, distinguishing it from forms of caching such as buffering or page replacement. In the context of some logic programming languages, ___ is also known as tabling.

A

Memoization or memoisation

104
Q

In computer science, ___ is a form of automatic memory management. The ___ attempts to reclaim ___, or memory occupied by objects that are no longer in use by the program. ___ was invented by John McCarthy around 1959 to simplify manual memory management in Lisp.

___ is essentially the opposite of manual memory management, which requires the programmer to specify which objects to deallocate and return to the memory system. However, many systems use a combination of approaches, including other techniques such as stack allocation and region inference. Like other memory management techniques, ___ may take a significant proportion of total processing time in a program and, as a result, can have significant influence on performance. With good implementations and with enough memory, depending on application, ___ can be faster than manual memory management, while the opposite can also be true and has often been the case in the past with sub-optimal ___ algorithms.

Resources other than memory, such as network sockets, database handles, user interaction windows, file and device descriptors, are not typically handled by ___. Methods used to manage such resources, particularly destructors, may suffice to manage memory as well, leaving no need for ___. Some ___ systems allow such other resources to be associated with a region of memory that, when collected, causes the work of reclaiming these resources.

A

Garbage collection (GC), garbage collector, or just collector

105
Q

A ___ is a file system that keeps track of changes not yet committed to the file system’s main part by recording the intentions of such changes in a data structure known as a “___”, which is usually a circular log. In the event of a system crash or power failure, such file systems can be brought back online more quickly with a lower likelihood of becoming corrupted.

Depending on the actual implementation, a ___ may only keep track of stored metadata, resulting in improved performance at the expense of increased possibility for data corruption. Alternatively, a ___ may track both stored data and related metadata, while some implementations allow selectable behavior in this regard.

A

Journaling file system

106
Q

In computing, a ___, controls how data is stored and retrieved. Without a ___, data placed in a storage medium would be one large body of data with no way to tell where one piece of data stops and the next begins. By separating the data into pieces and giving each piece a name, the data is easily isolated and identified. Taking its name from the way paper-based data management system is named, each group of data is called a “file”. The structure and logic rules used to manage the groups of data and their names is called a “___”.

A

File system or filesystem (often abbreviated to fs)

107
Q

___ is a computer file system architecture and a family of industry-standard file systems utilizing it. The ___ file system is a continuing standard which borrows source code from the original, legacy file system and proves to be simple and robust. It offers useful performance even in lightweight implementations, but cannot deliver the same performance, reliability and scalability as some modern file systems. It is, however, supported for compatibility reasons by nearly all currently developed operating systems for personal computers and many mobile devices and embedded systems, and thus is a well-suited format for data exchange between computers and devices of almost any type and age from 1981 up to the present.

The name of the file system originates from the file system’s prominent usage of an index table, the ___, statically allocated at the time of formatting. The table contains entries for each cluster, a contiguous area of disk storage. Each entry contains either the number of the next cluster in the file, or else a marker indicating the end of the file, unused disk space, or special reserved areas of the disk. The root directory of the disk contains the number of the first cluster of each file in that directory; the operating system can then traverse the ___, looking up the cluster number of each successive part of the disk file as a cluster chain until the end of the file is reached. In much the same way, sub-directories are implemented as special files containing the directory entries of their respective files.

A

File Allocation Table (FAT)

108
Q

A ___ is any computer file system which allows a computer file to exist in several versions at the same time. Thus it is a form of revision control. Most common ___ keep a number of old copies of the file. Some limit the number of changes per minute or per hour to avoid storing large numbers of trivial changes. Others instead take periodic snapshots whose contents can be accessed with similar semantics to normal file access.

A

Versioning file system

109
Q

The ___ was implemented in April 1992 as the first file system created specifically for the Linux kernel. It has metadata structure inspired by the traditional Unix File System (UFS) and was designed by Rémy Card to overcome certain limitations of the MINIX file system. It was the first implementation that used the virtual file system (VFS), for which support was added in the Linux kernel in version 0.96c, and it could handle file systems up to 2 gigabytes (GB) in size.

A

Extended file system, or ext

110
Q

In computer programming, ___ patterns specify sets of filenames with wildcard characters. For example, the Unix Bash shell command mv *.txt textfiles/ moves (mv) all files with names ending in .txt from the current directory to the directory textfiles. Here, * is a wildcard standing for “any string of characters” and *.txt is a ___ pattern. The other common wildcard is the question mark (?), which stands for one character.

A

Glob

111
Q

In computer science, ___ is the ability of a process to examine, introspect, and modify its own structure and behavior.

A

Reflection

112
Q

In programming languages, a ___ is a technique for implementing lexically scoped name binding in a language with first-class functions. Operationally, a ___ is a record storing a function together with an environment. The environment is a mapping associating each free variable of the function (variables that are used locally, but defined in an enclosing scope) with the value or reference to which the name was bound when the ___ was created. Unlike a plain function, a ___ allows the function to access those captured variables through the ___ copies of their values or references, even when the function is invoked outside their scope.

A

Closure, also lexical closure or function closure,

113
Q

___ defines how variable names are resolved in nested functions: inner functions contain the scope of parent functions even if the parent function has returned.

A

Lexical Scoping

114
Q

___ is an approach to public-key cryptography based on the algebraic structure of ___ over finite fields. ___ requires smaller keys compared to non-___ (based on plain Galois fields) to provide equivalent security.

___ are applicable for key agreement, digital signatures, pseudo-random generators and other tasks. Indirectly, they can be used for encryption by combining the key agreement with a symmetric encryption scheme. They are also used in several integer factorization algorithms based on ___ that have applications in cryptography, such as Lenstra ___ factorization.

A

Elliptic-curve cryptography (ECC)

115
Q

___ is the process of structuring a relational database in accordance with a series of so-called ___ forms in order to reduce data redundancy and improve data integrity. It was first proposed by Edgar F. Codd as part of his relational model.

___ entails organizing the columns (attributes) and tables (relations) of a database to ensure that their dependencies are properly enforced by database integrity constraints. It is accomplished by applying some formal rules either by a process of synthesis (creating a new database design) or decomposition (improving an existing database design).

A

Database normalization

116
Q

___ is a computer programming concept applicable to multi-threaded code. ___ code only manipulates shared data structures in a manner that ensures that all threads behave properly and fulfill their design specifications without unintended interaction. There are various strategies for making ___ data structures.

A program may execute code in several threads simultaneously in a shared address space where each of those threads has access to virtually all of the memory of every other thread. ___ is a property that allows code to run in multithreaded environments by re-establishing some of the correspondences between the actual flow of control and the text of the program, by means of synchronization.

A

Thread safety

117
Q

A bit, token, fragment of code, or some other mechanism which is used to restrict access to a shared function or device to a single process at a time, or to synchronize and coordinate events in different processes.

A

Semaphore

118
Q

In distributed computing, a ___ is when a computer program causes a procedure (subroutine) to execute in a different address space (commonly on another computer on a shared network), which is coded as if it were a normal (local) procedure call, without the programmer explicitly coding the details for the remote interaction.

A

Remote Procedure Call (RPC)

119
Q

The ___ asks the following question: “Given a list of cities and the distances between each pair of cities, what is the shortest possible route that visits each city and returns to the origin city?” It is an NP-hard problem in combinatorial optimization, important in operations research and theoretical computer science.

A

Travelling salesman problem (also called the travelling salesperson problem or TSP)

120
Q

In computing, ___ is arithmetic using formulaic representation of real numbers as an approximation to support a trade-off between range and precision. For this reason, ___ computation is often found in systems which include very small and very large real numbers, which require fast processing times. A number is, in general, represented approximately to a fixed number of significant digits (the significand) and scaled using an exponent in some fixed base; the base for the scaling is normally two, ten, or sixteen.

The term ___ refers to the fact that a number’s radix point (decimal point, or, more commonly in computers, binary point) can “___”; that is, it can be placed anywhere relative to the significant digits of the number. This position is indicated as the exponent component, and thus the ___ representation can be thought of as a kind of scientific notation.

A

Floating-point arithmetic (FP)

121
Q

A ___ is a device or computer program which encodes or decodes a digital data stream or signal. ___ is a portmanteau of coder-decoder.

A coder encodes a data stream or a signal for transmission or storage, possibly in encrypted form, and the decoder function reverses the encoding for playback or editing. ___ are used in videoconferencing, streaming media, and video editing applications.

A

Codec

122
Q

In signal processing, ___ is the process of encoding information using fewer bits than the original representation. Any particular compression is either lossy or lossless. Lossless compression reduces bits by identifying and eliminating statistical redundancy. No information is lost in lossless compression. Lossy compression reduces bits by removing unnecessary or less important information. Typically, a device that performs ___ is referred to as an encoder, and one that performs the reversal of the process (decompression) as a decoder.

A

Data compression, source coding, or bit-rate reduction

123
Q

In propositional logic and boolean algebra, ___ are a pair of transformation rules that are both valid rules of inference. They are named after Augustus ___, a 19th-century British mathematician. The rules allow the expression of conjunctions and disjunctions purely in terms of each other via negation.
The rules can be expressed in English as:
the negation of a disjunction is the conjunction of the negations; and
the negation of a conjunction is the disjunction of the negations;
or
the complement of the union of two sets is the same as the intersection of their complements; and
the complement of the intersection of two sets is the same as the union of their complements.
or
not (A or B) = not A and not B; and
not (A and B) = not A or not B

A

De Morgan’s laws

124
Q

In logic, mathematics and linguistics, And (∧) is the truth-functional operator of logical ___; the and of a set of operands is true if and only if all of its operands are true. The logical connective that represents this operator is typically written as ∧ or ⋅ .
A ^ B is true only if A is true and B is true.
The term “logical ___” is also used for the greatest lower bound in lattice theory.

A

Conjunction (an operand of a conjunction is a conjunct)

125
Q

In logic and mathematics, or is the truth-functional operator of (inclusive) ___, also known as alternation; the or of a set of operands is true if and only if one or more of its operands is true. The logical connective that represents this operator is typically written as ∨ or +.
A ∨ B is true if A is true, or if B is true, or if both A and B are true.
In logic, or by itself means the inclusive or, distinguished from an exclusive or, which is false when both of its arguments are true, while an “or” is true in that case.

A

Disjunction (an operand of a disjunction is called a disjunct)

126
Q

To maintain code, you first need to understand the code. To understand it, you have to read it. Consider for a moment how much time you spend reading code. It’s a lot. ___ increases maintainability by reducing the time necessary to read and understand the code.

A

DAMP (Descriptive And Meaningful Phrases)