Software Engineering Glossary

.
special directory in Unix-based operating systems that represents the current directory
..
special directory in Unix-based operating systems that represents the parent directory
.htaccess
configuration file for Apache
.NET
open source managed software framework developed by Microsoft based on C#
2D
space with two dimensions
3 2 1 backup rule
states that there should be 3 copies of the data on 2 different media with 1 copy off-site
32bit architecture
architecture for CPUs and operating systems that allows to address 2^32 bytes of memory
3D
space with three dimensions
3D printing
additive manufacturing process of making 3D objects from a digital blueprint
3G
third generation of mobile network technology
4G
fourth generation of mobile network technology
64bit architecture
architecture for CPUs and operating systems that allows to address 2^64 bytes of memory
68-95-99.7 rule
68% of values lie within one standard deviation of the mean, 95% lie within two, and 99.7% lie within three
7z
file format for compression, also a program implementing it and command for it
802.1x
IEEE standard for network access control
8K UHD, 8K Ultra HD, 8K Ultra High Definition
video resolution of 7680x4320 pixels
A record
DNS record that maps a domain name to an IPv4 address
AAAA record
DNS record that maps a domain name to an IPv6 address
AAC, advanced audio coding
file format for encooding audio
AAI
abbreviation for authentication, authorization and identity
abandonware
software that is no longer maintained by its developer and is no longer sold or supported
ABC, abstract base class
abstract base classes module in Python which decorates methods as abstract and then registers concrete classes as implementations of the abstract base
absolute path
path that starts with the root directory and points to the same location within file system regardless of where it is used; e.g. /var/log/syslog; cf. relative path
abstract class
class containing at least one abstract method
abstract data type, ADT
mathematical model for data types defined by its behaviour
abstract method
method that has a declaration but does not have an implementation
abstract syntax tree, AST
tree representation of the syntax of a code or structure of program
acceptance criteria
set of conditions that a software must satisfy to be accepted by a stakeholder or a customer
access control
security technique that restricts access to a resource based on authentication and authorization
access point, AP
network node that allows devices to connect to the network
accessibility
property of a software that makes it usable by people with disabilities or special needs
account
representation of the identity of a user in a system
accuracy
metric for machine learning and information retrieval which gives the proportion of correct predictions among total number of cases; TN + TP / (TN + TP + FN + FP)
Acer
computer manufacturer
ACID
set of properties of database transactions; see atomicity, consistency, isolation, durability
ack
command for searching in text files with regular expressions
ACL, access control list
list used by operating systems and network services to manage access permissions to resources
ACPI, advanced configuration and power interface
specification for operating systems to discover and configure hardware components
Acrobat Reader
program for viewing PDF files developed by Adobe
activation function
function that transforms the output of a neuron into a value that is then passed to the next layer; e.g. ReLU, sigmoid, tanh
activation record
data structure containing information about a function’s execution state, including parameters, local variables, and return address
Ada
statically typed object-oriented high-level programming language developed by the US Department of Defense for embedded systems
Adam optimizer
optimizer that uses weight decay and momentum from SGD optimizer
AdamW optimizer
optimizer that uses weight decay and momentum from Adam optimizer
adblock
software for blocking ads on websites usually in the form of a browser extension
add-one smoothing
technique in NLP to adjust probabilities to avoid zero probabilities of OOV words
additive synthesis
sound synthesis technique that adds sine waves together
adequacy
metric in machine translation which refers to how well the meaning of the source text is preserved in the target text
Adobe
company that develops software for creative professionals
Advent of Code, AOC, AoC
yearly programming challenge
AES, ADVANCED ENCRYPTION STANDARD
encryption algorithm
affine function
composition of a linear function followed by a translation
affordance
property of an object that suggests how it can be used
aggregation
function which combines several items (e.g. rows) into one value; e.g. average, count, min, max, median, sum, range etc.
AGI, artificial general intelligence
AI that can perform any intellectual task that a human can
agile, agile development
flexible and iterative approach to project management from 90s that prioritizes adaptability and emphasizes lots of small steps and continuous improvement instead of upfront planning and long-term scheduling
Aho-Corasick algorithm
algorithm for finding multiple search patterns in a text
AI alignment
subfield of AI that studies how to align artificial intelligence) with human values
AI complete problem
problem or task that is as hard as any artificial intelligence problem
Airbyte
software for connecting a source of data with a consumer of the data
Airflow
open source software developed by Apache written in Python for workflow management
AJAX, asynchronous JavaScript and XML
technique used in web development to create interactive and dynamic web applications based on JavaScript and XML
Alexa
voice assistant developed by Amazon
AlexNet
convolutional network model architecture that won the ImageNet competition in 2012
ALGOL
high-level programming language developed in 1958
algorithm
finite sequence of instructions for solving a problem or doing a computation
aliasing
having multiple names for the same thing
ALPAC
commitee known for its 1966 negative report impacting funding for machine translation research
alpha channel
layer of transparency in a bitmap image
AlphaGo
AI algorithm that learned to play the game of go by playing against itself
AlphaZero
AI algorithm that learned to play chess, shogi and go by playing against itself
alpine
CLI client for email written in C
Alpine Linux
lightweight Linux distribution based on musl and busybox
ALSA, advanced Linux sound architecture
software framework and part of the Linux kernel for providing an API for sound card device drivers
alsamixer
CLI software for controlling sound card drivers
Alt key
modifier key on a keyboard that modifies the function of other keys
ALU, arithmetic logic unit
core component of a CPU that performs arithmetic and logical operations
Amazon
company which started as an online bookstore and has grown into one of the largest companies in the world
ambiguity
property of a word or phrase with multiple meanings or interpretations
AMD, advanced micro devices
company that produces CPUs and GPUs
ampersand
name of the symbol &
Anaconda
distribution of the Python and R programming languages for scientific computing
Miniconda
minimal installer for Anaconda containing only conda and Python
anaphora
word or phrase that refers to another word or phrase in a text; e.g. “I like the book. It is interesting.”
anaphora resolution
NLP task of finding anaphoras in a text
anchor (HTML)
HTML element in a hypertext document that links to another document or a specific part of it
anchor (regular expression)
regular expression metacharacter that fixes position without matching any characters
AND
binary logical operation that outputs true only when both inputs are true
Android
mobile operating system developed by Google based on Linux
Android Studio
IDE for developing Android apps developed by Google based on IntelliJ
angel investor
individual who provides seed funding for a startup
Angular
TypeScript web framework developed by Google
AngularJS
discontinued (as of 2023) JavaScript web framework developed by Google
anomaly detection
machine learning technique for identifying unusual data points in dataset
anonymous function
function that does not have a name
ANSI C
C standard published by ANSI
ANSI, American National Standards Institute
organization that oversees the development of voluntary consensus standards for products, services, processes, systems, and personnel in the United States
Ansible
open source CLI automation software developed by Red Hat written in Python; it can configure systems, deploy software, and orchestrate advanced workflows to support application deployment, system updates, and more using ssh execution from controlled to managed nodes
Ansible Tower
web-based UI and dashboard for Ansible
Ant
build system for Java projects
anti entropy
process in distributed systems used to ensure data consistency and synchronization among nodes
anti join
join that returns only rows from the left table that do not match any rows in the right table
Apache software foundation, ASF
software foundation that develops open source software
Apache license
open source software license developed by the Apache software foundation
Apollo
GraphQL client and server library for JavaScript
Apache (HTTP server)
HTTP server developed by Red Hat
API, application programming interface
way for two or more programs to communicate with each other, type of software interface, offering a service to other pieces of software
APK, Android application package
file format for Android apps
APL, a programming language
programming language developed in the 60s for mathematical notation
append
operation which adds items to the end of a list or file
appimage
file format for Linux apps
Apple
technology company that specializes in consumer electronics, proprietary software, and online services; e.g. macOS, Xcode. Swift, App Store
AppleScript
scripting language developed by Apple for macOS
applet
small application
application, app
see software
AppStore
software distribution platform for iOS apps
apt, advanced packaging tool, aptitude
CLI package manager for Debian-based Linux distributions
Arch Linux
Linux distribution that follows the KISS principle
architecture (machine learning
functional form or type of a model; sometimes incorrectly used as a synonym of the model itself
archive
file containing one or more files and/or directories
Ardour
open source DAW
Arduino
microcontroller board
argc, argument count
parameter in the main function that represents the number of command line arguments
argmax
operation that finds the argument that gives the maximum value from a target function
argument
value passed to a function when calling it; it can be passed by value or by reference; cf. parameter
argv, argument vector
parameter in the main function that is an array of strings representing the command line arguments
arithmetic mean
sum of a collection of numbers divided by the count of numbers in the collection
ARM, Advanced RISC Machine
processor architecture using a RISC instruction set
ARM64
64-bit version of the ARM architecture
array
data structure for storing a sequence of simpler (usually homogenous) data types
array programming language
programming language operating mainly on arrays; e.g. APL, J, K, NumPy
Arrow
framework for tabular in-memory analytics developed by Apache
artificial intelligence, AI
field of computer science that studies how to make computers do things that people are (or have been) better at
Asana
software for project management
ASCII art
ASCII text characters and symbols that are combined to create an image
ASCII, American Standard Code for Information Interchange
encoding standard for plain text using 7-bit to represent Western European language characters; cf. Unicode
asciidoc
markup language for documentation
ASGI, asynchronous server gateway interface
protocol for web servers written in Python
ASP.NET
web framework developed by Microsoft for C# and .NET
aspell
CLI spell checker
ASR, automatic speech recognition
see speech recognition
assembler
software for converting assembly into machine code
assembly
low-level programming language that is a human-readable representation of machine code
assertion
expression in a programming language that is assumed to be true; used for debugging but sometimes dropped by compilers or interpreters during runtime
assignment
statement that assigns a value to a variable
association-rule mining
unsupervised learning technique for finding relations between variables in a dataset; e.g. people who buy diapers also buy beer
associative array
data structure that maps keys to values; cf. dictionary and map
asterisk
name of the symbol *
ASUS
company that develops hardware
asymmetric cryptography
cryptography system that uses different keys for encryption and decryption
asynchronous operation
operation that does not block the process from executing other tasks or operations
asynchronous programming
programming paradigm that allows the program to concurrently execute multiple tasks without waiting for the completion of the previous task
at sign
the name of the symbol @
AT&T Bell Labs
R&D division of AT&T that developed Unix and C
R&D, research and development
process of developing new products or services
Atlasian
that develops products for software developers, and project managers among other groups
Atlassian
company that develops software for software development teams
atomicity
property of a transaction that guarantees that either all or none of the operations are performed
attention
mechanism in neural networks that allows the network to focus on specific parts of the input
attribute
property (feature) of an object
Audacity
open source audio editing and recording software
audio embedding
embedding of an audio signal
authentication
process of verifying the identity of a user or a system
authoritative name server
server that stores the DNS records for a domain
authorization
process of verifying that a user or a system has access to a resource
autocompletion, auto-completion
feature that suggests possible completions for a word or phrase as the user is typing and allows the user to use the completion by pressing a key (tab) or clicking a button
autocorrelation, auto-correlation
correlation of a signal with itself shifted by a certain interval called lag
autoencoder
type of artificial neural network used for learning efficient codings, typically for the purpose of dimensionality reduction
autokey cipher
cipher that incorporates the message into the key for encryption
automatic variable
variable that is created and destroyed automatically by the compiler or interpreter; e.g. $@ in make
automation
process of replacing a manual process with a computerized one
automaton
mathematical model of a machine that can perform computations
autoregressive model
model which uses past predictions for predicting the value
availability
property of a system that ensures that the information is accessible to authorized users
AVC, advanced video coding
standard for video compression
AVI, audio video interleave
file format for video and audio
AVL tree, Adelson-Velskii Landis tree
self-balancing binary search tree with height difference of at most 1 between left and right subtrees
Awesome WM
tiling window manager
AWK, awk, Aho–Weinberger–Kernighan
programming language for processing files in text format
AWS, Amazon Web Services
cloud computing platform from Amazon
ax
16-bit general-purpose register in x86 that is the lower half of eax
axiom
formal statement that is assumed to be true
Azure
IaaS from Microsoft
B tree
TODO
Byobu
terminal multiplexer
B+ tree
TODO
B-frame
frame that is encoded using motion compensation from both the previous and the next frame
B2B, business to business
providing services, products to other businesses
B2C, business to costumer
business model where a company sells products or services directly to consumers
Babel
transpilation library for JavaScript
BabelNet
multilingual lexicalized semantic network and ontology automatically created by linking Wikipedia to the WordNet
back button
GUI button in a web browser that allows the user to go back to the previously visited page
back propagation, backprop
algorithm that iteratively updates weights of the model according to the loss function
backdoor
attack TODO
backend, be, back-end
part of a software that is not directly accessed by the user and is usually running on a server
background process, background job
process that is not directly accessed by the user
backoff model
statistical language model that uses a hierarchy of simpler models when data is sparse
backport
TODO
backup
a copy of data that can be used to restore the original data
Backus-Naur form
notation for describing the formal grammar of a programming language
backward compatibility
property of a software that allows it to work with older versions of itself
balanced parentheses
property of a string that contains an equal number of opening and closing parentheses in the proper order
bandwidth
maximum amount of data that can be transferred over a network in a given amount of time
bar chart
chart that uses bars to show the frequency of categorical data
base address
memory address that serves as a reference point for accessing elements or data structures in memory
base64
binary to text encoding that represents binary data in an ASCII string format
Bash, Bourne Again Shell
shell for Linux-based operating systems developed by GNU
BASIC
programming language from 60s designed for students to learn programming
batch
random portion of training data used for forward pass (every time different/random) to save compute time; too small batches may introduce noise in loss values over time
batch normalization
technique for normalization of neural networks that normalizes the output of a layer to have mean of 0 and a standard deviation of 1
batch size
hyperparameter of neural networks that determines the number of examples in a batch
Bayes’ rule
see Bayes’ theorem
Bayes’ theorem
if P(x) is true then P(y|x) = P(x|y) * P(y) / P(x); cf. conditional probability
Bayesian network
graph that represents conditional dependencies between random variables
Bazaar
version control system developed by Canonical
Bazel
open source build system developed by Google; similar to make
Beam
framework for distributed batch and streaming data processing developed by Apache
beam search
algorithm for finding the most likely sequence of words in a language model
BEAM, Bogdan Erlang Abstract Machine
virtual machine for Erlang programming language; used also by Elixir
BeautifulSoup
Python library for web scraping and HTML parsing
behavioral pattern
design pattern that describes communication between objects
benchmark
running an experiment on system, component, algorithm to asses its performance, efficiency or other metric
BERT, Bidirectional Encoder Representations from Transformers
transformer-based ML technique for NLP pre-training
bfloat16
float format suitable for NVIDIA cards
bias
constant which is added to the product of features and weights used to offset the result to help the models to shift the activation function towards the positive or negative side
bidi, bidirectional text
text containing both left-to-right and right-to-left scripts
big data
term for a large amount of data that is too large to be processed by traditional methods or by a single computer
big O notation, O()
mathematical notation that describes the time complexity of a function (or algorithm) and puts an upper bound on time, memory or other resources required for the function
BigQuery
data warehouse from Google
bigram
n-gram of size 2
BigTable
distributed database from Google
binary
compiled executable file
binary operator
operator that takes two operands; e.g. 1 + 2
binary representation
representation of a value (number) in base 2; i.e. using only 0s and 1s
binary search
search algorithm that finds the position of a target value within a sorted array in logarithmic time by a recursive process of splitting the searched part of the array in half
binary search tree
binary tree where the left child is smaller than the parent and the right child is larger than the parent
binary tree
tree data structure where each node has at most two children
binomial distribution
probability distribution that describes the number of successes in a sequence of trials which can have two outcomes (success or failure); as the number of trials increases the distribution approximates normal distribution
bioinformatics
interdisciplinary field that studies biology using computer science approaches
biometrics
authentication method that uses biological characteristics of a person; e.g. fingerprint
BIOS, Basic Input/Output System
firmware that initializes hardware during booting of a computer
Bison
parser generator from GNU
bit
smallest data representable by a computer, 0 or 1, true or false, on or off
Bitbucket
version control system developed by Atlassian
bitcoin
cryptocurrency and blockchain protocol
bitmap
data structure that represents a bit array
bitmap image
digital image represented by a bitmap
bitrate
data rate of a digital signal measured in bits per second
bittorrent
peer-to-peer file sharing protocol
bitwise operation
operation that is performed on bit level
Blackberry
smartphone brand
blade server
compact server computer with a modular design optimized to minimize the use of physical space and energy
Blender
open source 3D graphics software
BLEU, Bilingual Evaluation Understudy
metric for evaluating the quality of machine translation
blob, binary large object
data type that can store binary data in a database; e.g. an image or a video
block (video)
smaller unit within a macroblock, usually 8x8 or 4x4 pixels, used for more detailed processing and compression in video encoding
block comment
comment which spans multiple lines; delimited by special symbols, e.g. /* and */ in C
blockchain
distributed database that is used to maintain a continuously growing list of records called blocks
blog
website that contains posts usually in reverse chronological order
blogosphere
all blogs on the internet and their interconnections
Bloom filter
probabilistic data structure for set membership queries which may return false positives with configurable small probability and uses O(log n) space
Blu-ray
optical disc format
bluetooth
wireless technology for exchanging data over short distances
boilerplate
code that is repeated in many places; e.g. a HTML header or a menu on a website or Java getters and setters
bookmark
URL stored and easily accessible in a browser
bookmarklet
short JavaScript code executed by visiting a URL starting with javascript: which operates on the current web page and can be saved as a bookmark in browsers
boolean
data type that can have only two values: true or false
Boolean algebra
branch of mathematics that deals with boolean values and logical operations
Boolean formula
formula composed of boolean variables and logic operations
boolean function
function that takes boolean values as input and returns a boolean value as output
boot loader, bootloader
software that loads the operating system into the computer memory
secure boot
UEFI feature that checks the operating system for malware before booting
OEM, original equipment manufacturer
company that produces parts and equipment that may be marketed by another manufacturer
UEFI, Unified Extensible Firmware Interface
firmware that replaces the traditional BIOS and provides an interface between the operating system and the hardware
Bootstrap
CSS framework for responsive web design developed by Twitter
bot
software that performs automated tasks; short for robot
Bottle.py
Python web framework distributed in a single file
bottleneck (machine learning)
layer in a neural network that has a smaller number of parameters than the previous layer
BOW, bag of words
simple model for natural language processing that ignores grammar and word order and represents text as a vector of word counts
Boyer-Moore algorithm
efficient string-searching algorithm which preprocesses the pattern to be searched for and runs faster as the pattern length increases
BPF, Berkeley Packet Filter
technology used for running sandboxed programs in a virtual machine-like construct in the Linux kernel without changing kernel source code or adding additional modules
Brainfuck
esoteric programming language with minimalist design, similar to Turing machine
branch
version control system term for a development copy of a repository that can be merged back to the original repository
branch misprediction
CPU low-level optimization that allows the CPU to continue executing instructions even if the branch has not been resolved yet and if the branch is resolved incorrectly, the instructions that were executed must be discarded
branch-per-feature workflow
workflow of using version control where each feature or bug fix is developed in a separate branch
Brasero
open source CD and DVD burner
breadcrumbs
GUI navigation element that shows the path to the current web page
breadth first search, BFS
graph algorithm that starts at the root node and explores all the neighboring nodes before moving to the next level; cf. DFS
break
keyword in some programming languages which exits a loop or switch immediately
breakpoint
debugging tool that pauses the execution of a program at a specific line of code
brew
package manager for macOS
bricking
state where an electronic device becomes completely unusable and inoperable
Brill’s tagger
error-driven transformation-based algorithm for PoS tagging
broadband
network connection with a high data transfer rate
broadcast
network communication method where a message is sent to all nodes in the network
Brother
printer brand
browser
software for viewing and navigating web; usually a GUI application, sometimes TUI application for a terminal
brute force algorithm
algorithm that tries all possible solutions to a problem
BSD, Berkley Software Distribution
Unix operating system developed at the University of California, Berkley
BSS section
section in a assembly code that contains uninitialized variables
btrfs, B-tree file system
file system for Linux using B-tree developed by Oracle
bubble sort
algorithm for sorting
buffer
data structure for storing data in a memory to be processed later
bug
undesirable feature in a source code causing an error in compilation or execution
build
process of converting source code into an executable program
bundle
web app distribution in a single file
bus
computer component for transferring data between components; e.g. PCI bus
bus factor
minimum number of team members needed for running a business
business intelligence, BI
software for analyzing business data
busy waiting
process of waiting for a condition to become true by repeatedly checking it; see also polling
busybox
software that provides several Unix utilities in a single executable
byte
8 bits
byte pair encoding
encoding used in GPT models, shorter tokens are used for encoding longer words (tokens)
bytecode, byte code
set of instructions compiled for a runtime; e.g. Java and Python bytecodes
C#
object oriented programming language from Microsoft
C++, cpp
object oriented programming language
C, clang
low level programming language
cache
intermediate memory for storing data that is frequently accessed for better performance
cache memory
small, high-speed memory storage unit located close to the CPU, used to temporarily store frequently accessed data or instructions to improve overall system performance
call stack
data structure that stores information about the active subroutines calls
callback
function passed as an argument to another function to be called later
camelCase
naming convention for identifiers where words are joined together without spaces and each word starts with a capital letter; e.g. getMoreData
Canonical
company behind Ubuntu
Canva
software for creating graphics
canvas
HTML element for drawing graphics
CAP theorem
theorem that states that a distributed system cannot be consistent, available and partition tolerant at the same time
captcha, Completely Automated Public Turing test to tell Computers and Humans Apart
task for distinguishing humans from bots; e.g. a web page with a distorted image of text
captive portal
web page that a user is required to visit and interact with before accessing a public Wi-Fi network
car
Lisp function for returning the first element of a list
Cardan grille
cipher that uses a grid to hide the message
cardinality
number of elements in a set
Cassandra
distributed NoSQL database from Apache
casting
process of converting a data type to another
cat
Unix command for printing the contents of files
catastrophic cancellation
when the difference of two approximate numbers (e.g. lengths) is significantly different from the difference of the real values
categorical data
such data which can have only a discrete set of values; e.g. type of education, gender etc.; cf. continuous data
category (mathematics)
collection of objects and morphisms between them
causation
relationship between two events where one event is the cause of the other event; often confused with correlation
CB, continuous build
process of building software after every change to the code base
CBOW, continuous bag of words
neural network model for natural language processing using word embedding
CBR, constant bit rate
property of audio codec which guarantees that the bitrate is constant; cf. VBR
CC, creative commons
family of licenses for creative works
CC-0
license that imposes no restrictions on a work
CC-BY, creative commons attribution
license which allows sharing, adapting and commercial use of a work as long as the author is credited (attributed)
CC-NC, creative commons non-commercial share-alike
license which allows sharing and adapting a work as long as the derived work is licensed under the same license and is not used for commercial purposes
CC-ND, creative commons non-derivative
license which allows sharing a work as long as it is not modified
CC-SA, creative commons attribution share-alike
license which requires the derived work is licensed under the same license
cd
command for changing the current directory
CD ROM
read only CD
CD RW
rewritable CD
CD, compact disk
medium for storing data
CD, continuous delivery
automatic process of releasing software in short cycles
cdr, contents of decrement part of register
Lisp function for returning the second element of a list
ceil
mathematical function for rounding a number up
Celery
Python library for asynchronous tasks
CentOS
Linux distribution based on Red Hat Enterprise Linux
centroid
center of mass of a shape used in clustering algorithms
CEO, chief executive officer
executive position in a company responsible for overall management of a company
certbot
software for managing TLS certificates
certificate
digital document that certifies the identity of a person or an organization or the ownership of a public key
certificate authority
entity that issues digital certificates
CESNET, Czech Education and Scientific NETwork
NREN for the Czech Republic
CGI, common gateway interface
standard for running programs on a web server
cgroup
Linux kernel feature for limiting and isolating resource usage of a process
chain of responsibility pattern
behavioral pattern
chaining
method of calling multiple methods on an object in a single statement; e.g. obj.method1().method2().method3()
changelog
list of changes in a software project
char
data type for storing a single character
character
representation of a symbol; e.g. a letter, a digit, a punctuation mark etc.
chatbot
bot for chatting with humans
checkbox
GUI element for selecting one or more options
checkpoint
place in a program where the state of the program is saved
checksum
value calculated from data for detecting errors in the data when the data is transmitted or stored
chi-square test
statistical test for testing the independence of two categorical variables
Chinchilla
LLM experiment aimed at exploring the limits of language model scaling
chip (hardware)
integrated circuit
chipset
set of chips on a motherboard
Chomsky hierarchy
classification of formal grammars into four types: regular, context-free, context-sensitive and recursively enumerable
chroma
color component of a color space
chroma subsampling
method of reducing the amount of data in a video by reducing the resolution of the chroma
Chrome
web browser from Google
Chromebook
laptop running ChromeOS
ChromeOS
operating system from Google based on Linux
Chromium
open source web browser from Google
CI, continuous integration
frequent merging of small changes to the main branch
CIDR, classless inter-domain routing
standard for IP addressing that improves routing efficiency
cipher
encryption algorithm
CircleCI
Saas for continuous integration and continuous delivery
circular buffer
see ring buffer
class (OOP)
extensible template for creating objects, providing initial values for state (member variables) and implementations of behavior (member functions)
class imbalance
the problem in machine learning where there is an unequal distribution of classes in the dataset
class inheritance
mechanism of object oriented programming where a class inherits properties of another class
class method
method of a class that is called on the class itself, not on an instance of the class
classification model
model which predicts a class or a category e.g. given a picture: what animal is in the picture or given an audio file: what genre is the song in the file; see also regression
CLI, command line interface, command line
TUI for interaction with the OS and programs using commands
ClickUp
Saas for project management
client
computer or browser that requests services from a server
Clippy
MS Office assistant in the shape of a paperclip
Clojure
functional programming language on JVM runtime based on Lisp
closure
function that has access to variables from the scope where it was defined
cloud computing
model of computing where resources are provided as a service over a network
cluster
group of computers working together
clustering
machine learning technique for grouping similar instances in a dataset together
cmake
build system for C++
Cmd key, command key
modifier key on a keyboard on Apple computers
cmp
assembly instruction used for comparing two values or operands which sets the processor flags based on the result of the comparison
CMS, content management system
software for managing content on a website; e.g. WordPress
CMYK, cyan magenta yellow black
color model used for printing
CNAME record, canonical name record
DNS record for mapping a domain to another domain
COBOL, common business oriented language
imperative procedural high-level programming language for business applications from the 1950s still in use today (as of 2023)
code
text representation of instructions for a computer to execute written in a programming language
code completion
IDE feature for completing code based on the context
code control
process of controlling changes to a codebase
code coverage
measure of how much of the source code is covered by tests
code injection
security vulnerability where malicious code is inserted into a program, often leading to unauthorized or unexpected behaviour
code review
process of reviewing source code changes resulting either in an approval (for merge) or asking for changes
code smell
characteristic in source code that might indicate a deeper problem
codebase
collection of source code
codec
software for encoding and decoding data, usually audio or video
codeowner
individual or team responsible for maintaining and reviewing code changes in a specific part of a software project used in version control systems
CoffeeScript
programming language that compiles to JavaScript
ColdFusion
programming language for web development from Adobe
Colemak
keyboard layout optimized for in English
collaborative filtering
machine learning task for filtering out items that a user might like on the basis of reactions by users with similar preferences; by searching a large group of people and finding a smaller set of users with tastes similar to a particular user
collation
set of rules that determine how data is sorted and compared in a database
collectd
daemon which collects system and application performance metrics
collection (data type)
data type that holds multiple values; e.g. array, set
collection (Mongo)
group of documents similar to a table in a RDBMS
collocation
sequence of words or terms that co-occur more often than would be expected by chance
color depth
number of bits used to represent the color of a single pixel in a bitmap
color model
model for representing colors as tuples of numbers; e.g. RGB, CMYK
color space
color model with a specific color gamut
columnar database
database optimized for querying a subset of columns rather then inserting or updating rows
combinator
higher-order function
combobox
GUI element that combines a textbox with a dropdown
command line arguments
parameters provided to a program at runtime via the command line
command, cmd
written instruction causing a computer to do something; consists of a program name, arguments
commit
version control operation that saves changes to a repository
Common Lisp
Lisp dialect Common Lisp
Lisp dialect
CommonCrawl
web crawler making the data available for research
communicating sequential processes, CSP
concurrency model where processes communicate by sending messages; also a programming language implementing the model
compilation
process of translating source code into machine code
compiler
program that translates source code into machine code
compose key
modifier key that allows to enter special characters by pressing the compose key and then a sequence of other keys; e.g. compose + " + a = ä
compression
process of reducing the size of data
compromise
security breach; e.g. leaking of a private key
computable function
function that can be calculated by an algorithm
computational linguistics
field of linguistics concerned with the statistical or rule-based modeling of natural language from a computational perspective
computer
machine that can be programmed to perform computation
computer science
scientific field studying computation, information and automation
computer security, cybersecurity
branch of computer science concerned with the protection of computer systems and networks
computer vision
subfield of computer science processing and analyzing images
computer worm
type of malware that replicates itself in order to spread to other computers
concatenation, concat
operation which joins two data structures into one; e.g. joining two strings or using cat command on two files
concept drift
change in the data distribution over time in machine learning
concurrency
property of a program which allows multiple tasks to be executed at the same time
Conda
package manager for Python
conditional probability
probability of an event given that another event has occurred; written as P(x|y) where x is the event and y is the condition
conditional statement
statement that executes a block of code if a condition is true and optionally another block of code if the condition is false
confidentiality
property of a system that ensures that only authorized users can access the information
configuration management
process of managing changes to a system in a way that it maintains integrity over time
conflict
when there are two changes to the same part of a code base which can’t be resolved automatically
confusion matrix
2D matrix showing the number of correct and incorrect predictions made by a classification model
consensus algorithm
algorithm used for achieving agreement on a single data value among distributed processes or systems
consistency
property of a database which ensures that all data is valid according to defined rules
consistent hashing
type of hashing that minimizes the need for remapping keys when a hash table is resized
console
TUI for interaction with the OS and programs using commands; cf. terminal
const
keyword in some programming languages which declares a variable as constant
constant
variable which is not changed during execution of a program
constructor
special method of a class which is called when an instance of the class is created
container
virtualization technology for running applications in isolation
content farm
website that produces large amounts of low-quality content to attract visitors and earn money from ads
context switching
process of changing focus when doing multiple tasks
context-free grammar, CFG
formal grammar where each production rule is of the form A -> α, where A is a non-terminal and α is a string of terminals and/or nonterminals
context-free language, CFL
formal language that can be generated by a context-free grammar
context-sensitive grammar, CSG
formal grammar where each production rule is of the form αAβ -> αγβ, where A is a non-terminal and α, β, γ are strings of terminals and/or nonterminals
continuous data
data which contain a number that represents a quantity, e.g. weight; cf. categorical data
contract
TODO
convnext
family of convolutional neural network architectures
convolution
operation on two functions which produces a third function expressing how the shape of one is modified by the other
convolutional neural network, CNN
neural network containing convolution layers instead of fully connected layers particularly good for computer vision tasks
coocurrence analysis
method in computational linguistics to study the frequency and patterns with which words cooccur in texts
cookies
small piece of data sent from a server and stored in the user’s browser used to identify the user and store user-specific data
cooperative multitasking
tasks must yield when they do not need resources
coordinate
number(s) representing a position in space
copy on write
optimization technique where a copy of an object is created only when it is modified
copyleft
the legal technique of granting certain freedoms over copies of copyrighted works with the requirement that the same rights be preserved in derivative works
copyright
legal right to control the use and distribution of a creative work
Cordova
open source mobile development framework which allows you to use standard web technologies, HTML5, CSS3, and JavaScript for cross-platform development
core
CPU unit that reads and executes instructions; see also multicore
coredump
file containing the memory image of a process when it crashed
coreference
when two or more expressions in a text refer to the same entity; e.g. “John” and “he” in “John went to the store. He bought milk.”; cf. anaphora
coreutils
set of basic Unix CLI tools; e.g. cat
corollary
proposition that follows from and is often appended to one already proved
coroutine
function that can pause execution and return control to the caller
corpus lexicography
field of lexicography that studies corpora for the purpose of creating dictionaries
corpus linguistics
field of linguistics that studies language phenomena using corpora
corpus, text corpus
collection of documents in a readable format
correlation
the strength of a association between two variables; does not imply causation
correlation coefficient
measure of how well-correlated two variables are, if CC between X and Y is 1.0, knowing X allows perfect prediction of Y, if CC is 0.0, knowing X tells you nothing about Y, and if it is -1.0, then X predicts Y, but a change in X causes an opposite change in Y
CORS, cross origin resource sharing
mechanism that allows restricted resources on a web page to be requested from another domain
Ceph
distributed object storage and file system
Cortex
complex system for monitoring large systems
CouchDB
NoSQL database from Apache
covariance
measure of how much two variables change together; correration coefficient is normalized covariance
CPAN, comprehensive Perl archive network
public repository of Perl packages
CPU, central processing unit
the most important processor in a computer; its “control center”
CPU-bound process
process that is limited by the speed of the CPU
CQT, constant Q transform
Fourier transform that uses a logarithmically spaced frequency axis
CRAN, comprehensive R archive network
public repository of R packages
crate
TODO
CRDT
TODO
CRT
hardware TODO
creational patterns
design pattern that deals with object creation mechanisms
Creative Commons
non-profit organization that provides licenses for creative works
credential
piece of document (or information) of an individual issued by a third party
CRF, constant rate factor
variable bitrate encoding method used in video compression to achieve a consistent level of quality throughout the video based on the complexity of the content
CRISP-DM, cross-industry standard process for data mining
standard for life cycle for data mining projects
CRM, customer relationship management
business strategy for managing a company’s interactions with customers and also software that provides tools for this
cron
command line utility for scheduling and running tasks for Unix-like OS
cronjob
job or task scheduled and run by cron
crontab
configuration file that specifies shell commands to run on a given schedule (on reboot, every 10 minutes, hourly etc.)
cross compilation
process of compiling code for one platform on a different platform
cross entropy
measure of the difference between two probability distributions
cross platform development
development of software that can run on multiple platforms
cross validation
technique for assessing how the results of a statistical analysis will generalize to an independent data set
cross-site scripting, XSS
security vulnerability in web apps that allows an attacker to execute arbitrary JavaScript code on the client
CRUD, create, read, update, delete
set of basic operations for databases
cryptocurrency
digital currency that uses cryptography for security
cryptography
field of computer science concerned with encryption and decryption in order to securely transmit data
CSIRT, computer security incident response team
team that handles computer security incidents
CSS, cascading style sheets
programming language for styling HTML documents
CSS3
version of CSS
CSV, comma separated values
text format for storing tabular data
CTO, chief technology officer
executive position in a company responsible for technology used and developed in a company
Ctrl key, control key
modifier key on a keyboard
CUDA, compute unified device architecture
parallel computing platform and programming model developed by Nvidia for GPUs
cURL
command line tool for transferring data over network protocols
curryfication
process of transforming a function that takes multiple arguments into a sequence of functions that take one argument each
curse of dimensionality
phenomenon in which algorithms suffer from poor performance on data with high dimensionality
cursor (database)
pointer to a row in a database table
cursor (GUI)
graphical representation of mouse position
cursor (TUI)
movable indicator in TUI showing the current position for new text
CVS, concurrent versions system
software for tracking changes in a software projects
cycle
closed path in a graph
cyclomatic complexity
the number of possible execution paths inside a given piece of code
Cygwin (library)
collection of GNU libraries dynamic library that provides POSIX compatibility layer for Windows
Cypher
query language for graph databases developed by Neo4j
Cypress
JavaScript testing framework for web apps
D3.js, D3
JavaScript library for producing dynamic, interactive data visualizations
daemon
non-interactive background process in Unix whose parent process is init process
DAG, directed acyclic graph
graph with no cycles
DER format
a binary form of a certificate or private key
Dagster
data orchestration framework
Dart
programming language for web development from Google
Dash (library)
Python framework for building web pplications with interactive visualizations
Dasher
software for writing by eye gaze
data abstraction
TODO
data analysis
process of inspecting, cleansing, transforming and modeling data with the goal of discovering useful information from it
data augmentation
technique for increasing the amount of training data by adding slightly modified copies of already existing data
data contamination
when test examples are included in a model’s training data
data flow diagram
diagram that shows how data is processed by a system
data hazard
TODO
data lake
scalable storage repository that holds data of various types and formats in its raw form for later data analysis
data leakage
see information leakage
data link layer
second layer of the OSI model which provides the functional and procedural means to transfer data between network entities and to detect and possibly correct errors that may occur in the physical layer
data mining
the process of extracting useful patterns from large datasets
data model
model that describes the structure of data and the operations that can be performed on it
data orchestration
process of automating data pipelines
data pipeline
set of data processing elements connected in series where the output of one element is the input of the next one usually in the form of a DAG
data science
field of computer science that uses scientific methods to extract knowledge from data
data splitting
splitting dataset into train set, development set, validation, test parts
data structure
way of storing various data in computers, e.g. graphs, images, list of words, … usually linked to an algorithm which works with the structure effectively to solve a problem
data type
classification of data which tells the compiler or interpreter how the programmer intends to use the data
data versioning
process of tracking changes to data
data visualization
graphical representation of data which helps to understand the data and find patterns in it
data warehouse
centralized repository that stores cleaned and transformed structured data designed for query and analysis
data wrangling
process of cleaning, structuring and enriching raw data into a desired format for further use
data-oriented design, DOD
programming paradigm that focuses on efficient and flexible organization, processing and storage of data
database session
period of time during which a database connection is open
database, database system, db
collection of data organized in a way that allows access, management and updates
dataframe
data structure for storing data in a tabular format used in Pandas
dataset
collection of data used for machine learning or data science
datepicker
GUI element for selecting a date
datetime
data type for representing a date and time
DAW, digital audio workstation
software for recording, editing and producing music in the form of audio files
DB2
database management system TODO
dbt, data build tool
open source tool for data transformations using SQL queries and which manages data dependencies and abstracts from the infrastructure
dd
CLi utility in Unix-like operating systems used for copying and converting data, often used for tasks like disk imaging and backup
DDD, data display debugger
GUI tool for several CLI debuggers as GDB
DDoS, distributed denial of service
DoS attack that uses multiple computers to perform the attack
deadlock
situation in which two or more competing actions are each waiting for the other to finish
Debian
Linux distribution
debugger
software for debugging software allowing step-by-step execution and inspection; e.g. GDB
debugging
process of examining, analyzing, finding and fixing bugs during development of a software
decentralized system
system in which components are distributed across a network
decision tree
machine learning architecture that uses a tree-like graph to model decisions
declaration
statement that introduces a name into a program
declarative programming language
programming language that expresses the logic of a computation without describing its control flow; e.g. SQL
decoding
process of converting encoded data into its original form
decorator
function that takes another function and returns a modified function with additional functionality
decrement
unary operation that subtracts one from a number
decryption
process of converting encrypted data into its original form
Deep Blue
chess-playing supercomputer developed by IBM which beat the world chess champion Garry Kasparov in 1997
deep learning
technique to extract and transform data by using multiple layers of neural networks
Deep Mind
AI company acquired by Google behind the AlphaGo and AlphaZero programs
Deep Thought
computer in the book The Hitchhiker’s Guide to the Galaxy which was built to find the answer to the Ultimate Question of Life, the Universe, and Everything
DeFi, decentralized finance
financial services built on top of blockchain technology
defragmentation
process of reducing fragmentation of files in a file system
Delphi
IDE for Pascal
demultiplexor
function or program that performs the inverse operation of a multiplexor
dense matrix
matrix with many non-zero elements
dense vector
vector with many non-zero elements
dependency
software or library or framework that is required for another software, library of framework to work
dependency injection
technique for passing dependencies to a function or object from the outside
deployment
process of making a software available for use by others
depth-first search, DFS
graph algorithm that explores as far as possible along each branch before backtracking
deque
data structure that allows adding and removing elements from both ends
dereferencing
process of accessing the value stored at a memory address pointed to by a pointer variable
derivative
measure of how a function changes when its input changes
deserialization
process of converting serialized data into its original form
design by contract, DBC
software design approach that uses formal specification of software components
design for testability pattern
design pattern that deals with testing
design pattern
general, reusable solution to a commonly occurring problem in software design; e.g. MVC
desktop
computer designed for regular use at a single location
desktop application
software that runs on a desktop
desktop environment
graphical user interface for an OS
deterministic finite automata
type of finite automata where each state has exactly one transition for each possible input
dev
a programmer
development set, dev set
see validation set
DevOps, development and operations
set of practices that combines software development and IT operations; e.g. CI/CD
DGT, Directorate General for Translation
directorate of the European Commission responsible for translation and language services
dialog (UX)
UI element that allows users to interact with a computer
Dice coefficient
statistical measure for evaluating similarity between two sets used in NLP
dictionary
data structure that maps keys to values
differentiability
property of a function that it can be approximated by a linear function
dig, domain information groper
CLI tool for querying DNS servers
digit
symbol used to represent numbers; e.g. 2
digital data
discrete representation of data
digital imaging sensor
sensor that converts an optical image to an electronic signal
Digital Millennium Copyright act section 1201(A)
U.S. law that makes it illegal to circumvent digital locks over copyrighted works, restricting user’s ability to access, use, or discuss materials that they own
DIKW pyramid, data information knowledge wisdom pyramid
hierarchy of knowledge that describes the relationship between data, information, knowledge and wisdom
dimension
the minimum number of coordinates needed to specify any point within a given space
dimensionality
number of features in a dataset
direct memory access, DMA
feature allowing certain hardware subsystems in a computer to access system memory independently of the CPU
directory
file system data structure which contains references to children files and directories in a tree-like structure
dirty page
page that has been modified since it was last written
disambiguation, word sense disambiguation, WSD
process of identifying the meaning of a word in a given context, usually by selecting from a list of possible meanings
Discord
proprietary software for chatting and video conferencing
discrete Fourier transform, DFT
Fourier transform of a discrete signal
discretization
process of transforming continuous data into discrete data
disentangled representation
in the context of machine learning, a vector where every element corresponds to a single factor of variation (e.g. colour, shape, size) cf. distributed representation
disk drive
hardware device that reads and writes data to a disk
disk image
file that contains the contents of a storage
disk, disc
storage device for computers
dispatcher
function that receives a request and sends it to the appropriate handler
display
physical or virtual screen of a computer
distributed computing
field of computer science that studies distributed systems
distributed representation
in the context of machine learning, a vector where every element corresponds to multiple factors of variation (e.g. colour, shape, size) cf. disentangled representation
distributed system
system whose components are located on different computers in a network
distribution
set of programs that are built, tested and distributed together
dividend
number that is divided by another number
divisor
number that divides another number
divide and conquer algorithm
algorithm design paradigm that recursively breaks down a problem into two or more sub-problems of the same or related type, until these become simple enough to be solved directly
Django
Python web framework
dmesg
command in Unix-based systems for displaying messages from the kernel
DNS packet
packet that contains a DNS query or a DNS response
DNS record
data record in the DNS that contains information about a domain
DNS resolver
server that receives DNS queries and returns the corresponding DNS records
DNS, domain name system
hierarchical and decentralized naming system for computers, services, or other resources connected to the internet or a private network
DocBook
markup language for technical documentation
Docker
containerization platform and software for building, running and shipping containers
Dokku
platform as a service for web applications with CLI for deploying applications to a server; cf. Heroku
dd
command in Unix-based systems for copying and converting files
docker compose
Docker CLI tool for defining and running multi-container Docker applications
Docker image
file that contains a container and all its dependencies
Dockerfile
file that contains instructions for building a Docker image
documentation
description of the behaviour and functions intended for users
Docutils
Python library for parsing reStructuredText into HTML, LaTeX, XML or plain text
Dojo
JavaScript toolkit for building web applications
DOM, document object model
cross-platform and language-independent API for representing and interacting with XML documents
domain
name that identifies one or more IP addresses with a name that is easier to remember and use in URLs
domain specific language, DSL
high level abstration programming language that uses concepts and rules from a specific domain
DoS, denial of service
cyber attack that prevents legitimate users from accessing a service by overwhelming it with requests
dot product
scalar operation that takes two equal-length sequences of numbers and returns a single number
dotfiles
files that start with a dot (.) and contain configuration for software and operating systems
double
data type for representing floating point numbers with double precision in C and C++
double-word, dword
data size that typically consists of 32 bits or 4 bytes, commonly used for representing integers and memory addressing
download
process of copying data from a remote server to a local computer
dq
assembly directive used to declare and allocate space for a quadword variable or data in memory
drag&drop
UI mechanism for selecting and moving objects on a screen with a pointer device e.g. mouse
driver
software that controls a device
driver code
short code demonstrating or testing a specific program, function, code
DRM, digital rights management
technologies that restrict the use of digital content and devices after purchase
dropdown
UI element that allows users to select one value from a list
Drupal
content management system written in PHP
DRY, don’t repeat yourself
principle of software development that states that every piece of knowledge must have a single, unambiguous, authoritative representation within a system
DSLR, digital single-lens reflex
camera that combines the optics and the mechanisms of a single-lens reflex camera with a digital imaging sensor
DTD, document type definition
XML markup language that defines the building blocks of an XML document
durability
property that ensures database transactions are permanent
DVD, digital versatile disc
optical disc format
Dvorak
keyboard layout designed for typing speed and comfort
dw
assembly directive used to declare and allocate space for a word (16 bits) variable or data in memory.
dwm, dynamic window manager
tiling window manager for X11 from suckless
dynamic library, dll, dynamically linked library
library that is loaded at runtime
dynamic programming
programming paradigm that solves complex problems by breaking them down into simpler subproblems
dynamic web page
web page that is generated at runtime; cf. static web page
dynamically typed language
programming language that does not require variable types to be defined explicitly
DynamoDB
database management system with focus on availability and scalability sacrificing some of the ACID properties
e-commerce
business model that lets firms and individuals buy and sell things over the internet
e-ink
display technology that mimics the appearance of ink on paper
e-reader
device for reading ebooks
E2E test, end to end test
test that tests a complete software system from beginning to end
ELF, executable and linkable format
file format for executable files and shared libraries in Linux
core dump
file containing the memory image of a process when it crashes
E2EE, end-to-end encryption
encryption method that protects data between the sender and the recipient
early adopter
person who starts using a new software or service before most other people
early binding
process of linking a function call to its definition at compile time
early stopping
technique to avoid overfitting in ML by stopping the training process early
eax
32-bit general-purpose register in the x86, commonly used for various arithmetic and data operations
ebook
book stored in a file format
Eclipse
IDE for Java
Ecma international
international standards organization for information and communication systems
ECMAScript
JavaScript standard by Ecma International
ecosystem
libraries, community, online resources etc. related to a given programming language
ed, line editor
line-oriented editor
edge
link between two nodes in a network
edge computing
computing that takes place near the source of data
edit distance
measure of how many operations (insertion, deletion, substitution) are required to change one string into another; cf. Levenshtein distance
editor
software for editing files
edx
32-bit general-purpose register in the x86, often used in conjunction with eax for extended arithmetic operations
egg
logical structure for releasing a specific version of a Python project (code, resources, metadata) which is importable and distributable
Elasticsearch
search engine based on Lucene
Electron
framework for building desktop applications with web technologies
element
component (node) of a XML document; e.g. <head>
Elixir
functional programming language running on BEAM runtime supporting extreme concurrency and fault tolerance
EM algorithm, expectation-maximization algorithm
iterative method for finding maximum likelihood or maximum a posteriori estimates of parameters in statistical models
Emacs
text based editor with a built-in Lisp interpreter
email
electronic mail sent over a network
embedded system
computer system with a dedicated function within a larger mechanical or electrical system
embedding
mapping of a discrete feature to a vector
Ember.js
JavaScript framework for building web applications
emdash
dash that is as wide as the letter m
encapsulation
OOP principle of bundling data and methods that operate on that data
encoder decoder model
neural network architecture used in natural language processing for transforming an input to an output
encoding
process of converting data from one form to another
encryption
process of encoding a message or information in such a way that only authorized parties can access it
end-to-end model, e2e model
ML model that processes raw input data to produce the final output with minimal pre-processed features
endash
dash that is as wide as the letter n
endofunctor
functor mapping a category to itself
endpoint
URL of a web service
Enron dataset
dataset of emails from the Enron corporation used for research in NLP and ML
enshittification
informal term for the process by which platforms degrade UX over time to maximize profit
entity
distinct, separate, identifiable thing or concept often used in the context of data modeling
entropy
measure of the amount of information in a message
enum
data type representing a set of named constants; e.g. enum Color { RED, GREEN, BLUE }
environment variable
variable whose value is set outside the program or shell script
epic
in agile software development, a large user story that is broken down into smaller tasks
epilogue
portion of a function in assembly that performs cleanup tasks, such as restoring registers and stack, before returning control to the caller
epoch
one complete pass through the training data
epub, e-pub
ebook format based on XML
equ
assembly directive used to define symbolic constants or values, which can simplify code readability and maintenance
ER diagram, entity relationship diagram
diagram that shows the relationships between entities in a database
erasure coding
technique that breaks data into fragments and adds redundancy to recover from errors in distributed systems
Erathosthenes sieve
algorithm for finding all prime numbers up to a given limit by filtering out all non-prime numbers iteratively
ereader, e-reader
device for reading ebooks in digital format
ergodic process
statistical term for a process where its time average is equal to its ensemble average
ergonomics
study of designing equipment and devices that fit the human body and its cognitive abilities
Erlang
functional programming language supporting extreme concurrency and fault tolerance; uses BEAM runtime
ERP, enterprise resource planning
software for managing business processes
error
mistake in a program that causes it to behave incorrectly
error correcting code
code that can detect and correct errors in data
error handling
process of responding to error conditions
error rate
the proportion of validation set which was incorrectly predicted or labelled or classified by a model
error-driven transformation-based learning
approach in ML where models are iteratively improved by focusing on errors in predictions
Esc, escape
key on a keyboard used to generate the escape character (used to exit a mode)
escape character
character that signals the start of an escape sequence
escape sequence
sequence of characters that represents a special character; e.g. \n represents a newline character in Python
esoteric programming language, esolang
programming language designed to test the boundaries of programming language design; e.g. Brainfuck
esports
competitive video game playing
estimator
model that learns from data
ETH, ether
cryptocurrency and blockchain platform
Ethereum
blockchain platform for smart contracts
ethernet
standard set of protocols for LAN, MAN and WAN networks
ethtool
utility for querying and changing network interface controller and driver settings
ETL, extract transform load
process of extracting data from one database and loading it into another
evaluation (machine learning)
process of assessing a model’s performance on validation set
event-driven programming
programming paradigm in which the flow of the program is determined by events such as user actions, sensor outputs, or messages from other programs
evolutionary algorithm
algorithm that uses principles of evolution (mutation, selection, crossover) to solve problems
ex, extended line editor
line-oriented text editor for Unix systems
line-oriented user interface, line-oriented UI
UI for early text editors where users edited documents one line at a time; e.g. ed, ex
exabyte
10^18 bytes or 1,000 petabytes
Excel
spreadsheet application by Microsoft; part of Microsoft Office
exception
situation when a program cannot continue its execution due to an error or unexpected situation; the flow of execution is interrupted
executable, exe
binary file that can be run as a program
execution
process of running a program, command or script
EXIF, exchangeagle image file format
standard that specifies formats for images to store special tags (attributes) used by digital cameras
exponent
number that indicates how many times a base number is multiplied by itself
exploit, exploitation
software that takes advantage of a vulnerability in a system
expression
combination of values, variables, operators and functions that is evaluated to a single value
Ext js
JavaScript framework for building desktop applications
ext3
file system used by Linux
ext4
journaling file system used by Linux
extension
suffix of filename indicating its file format
extern
keyword used in assembly to declare external symbols or variables that are defined in other modules or source files
extrapolation
method for estimating unknown values by using known values outside the range of known values
extreme programming
agile software development methodology that emphasizes teamwork and communication
F score, F1 score, F measure
harmonic mean of precision and recall
F#, F sharp
functional programming language running on .NET runtime
Facebook
SaaS for social networking, also the name of the company that created it
factorial
unary function with the definition f(n) = n! = n * (n-1) * (n-2) * … * 2
factory
design pattern that defines an interface for creating an object but lets subclasses decide which class to instantiate
FAHQMT, fully automatic high quality machine translation
machine translation system that does not require human intervention or post-editing
FAISS, Facebook AI Similarity Search
library for efficient similarity search and clustering of dense vectors
fallout
TODO
false negative
item which was incorrectly classified as negative (not belonging to a class)
false positive
item which was incorrectly classified as positive (belonging to a class)
false positive rate
see fallout
fan in
number of inputs to a component
fan out
number of outputs from a component
fast.ai
library which simplifies building and training models built upon Pytorch
fasttext
library for efficient text classification and word embedding written in C++
fat finger
situation when a user accidentally presses the wrong key on a touch screen
FAT, file allocation table
file system for hard drives by Microsoft
FAT32
32-bit version of the FAT file system
FDD, floppy disk drive
disk drive that reads and writes data to a floppy disk
feature (machine learning)
measurable property of a phenomenon being modeled in machine learning; e.g. a pixel value in an image or a word in a sentence
feature (software)
a piece of functionality of a software product
feature creep, scope creep
situation when a software product has more features than originally planned
feature flag
software development technique that allows to enable or disable a feature without deploying a new version of the software
federated learning
machine learning technique where the model is trained on decentralized data
Fedora
Linux distribution sponsored by Red Hat
feedforward neural network
neural network where the information flows in one direction from one layer to the next
fetch (git)
operation that downloads commits from a remote repository to a local repository
few shot learning
machine learning technique that learns from a small number of examples
ffmpeg
command line tool for manipulating video and audio
FFT, fast Fourier transform
algorithm for computing the Fourier transform efficiently TODO
FIFO, first in first out
data structure where the first element added is the first element removed
Figma
collaborative web app for design
file
representation of data stored on a disk; not necessarily contiguous
file browser, file manager
UI for navigating the file system
file buffer
buffer used to store data read from or written to a file
file descriptor
number that uniquely identifies an open file in an operating system
file format
standard that specifies the structure and encoding of a file
file system
method of storing and organizing files on a disk
find
command for finding files in a file system
fine tuning
transfer learning technique where the parameters of a pretrained model are updated by training for additional epochs; many-shot learning
finger
command for displaying information about users
finite automata
automata with a finite number of states used to model computation and regular expressions
Firebase
app development platform by Google
Firefox
web browser by Mozilla
firewall
security system that monitors and controls incoming and outgoing network traffic
firmware
low-level software that is embedded in a device and is not easily changed
first-order logic
see predicate logic
fish, friendly interactive shell
shell with autocompletion, syntax highlighting and scripting capabilities
fit
the process of updating the parameters of a model such that the predictions of the model using the training data match the target labels
fitness function
in evolutionary algorithms, a function that measures the quality of a solution
fixed point (programming language)
representation of real numbers within a set range by maintaining a fixed number of digits after the decimal point; cf. floating point representation
Flash
multimedia platform by Adobe
flaky test
test that sometimes passes and sometimes fails without any changes to the code
flash memory
see flash storage
flash storage
non-volatile storage device that can be electrically erased and reprogrammed
flash attention
an optimization technique that enhances the efficiency of attention mechanisms in transformer models, particularly benefitting the training and deployment of LLMs on GPUs by optimizing the computational workload and memory usage
Flask
Python web framework
flat file
file that contains records with no structured relationships
flexbox
CSS layout mode that arranges elements in a single direction
float
data type for representing floating point numbers
floating point number
binary representation of real numbers
floor
mathematical function that rounds a real number down to the nearest integer
floppy disk, FD
disk storage device that uses a flexible magnetic disk enclosed in a plastic shell
FLOPS, floating point operations per second
measure of performance in the number of floating point operations per second
fluency
measure of smoothness and natural flow in language often used in assessing MT quality
Flutter
UI toolkit for building mobile applications developed by Google
fold (functional programming)
see reduce
folder
see directory
font
set of glyphs used to render text and digital representation of a typeface
font family
set of font styles that share a common design
foo bar baz
placeholder names used in code examples
for loop
loop that repeats a block of code for a specified number of times
foreground process, foreground job
current process that is running and receiving input from the user
foreign key
key that references a primary key in another table
fork
copy of a repository in a version control system
formal grammar
set of rules for constructing valid sequences of word or tokens in a language
formal language
set of strings of symbols that may be constrained by rules
formal verification
process of proving that a program satisfies a specification
FORTH
programming language based on stack data structure
Fortran
programming language designed for scientific computing
forward pass
applying the model to the data based on the current parameter values
forward reference
reference to a label or symbol in assembly before it has been defined which may be resolved during the assembly process
Fourier transform, FT
transform that decomposes a signal into frequency components
fragmentation
phenomenon where a file is stored in non-contiguous blocks on a disk
frame
single image in a sequence of images that make up a video
FrameNet
lexical database of English representing the meaning of words in terms of frames and semantic roles
Borland Turbo
TODO
Free Pascal
IDE and compiler for Pascal and Object Pascal
Object Pascal
object-oriented dialect of Pascal
framerate, fps, frames per second
number of frames displayed or processed per second
framework
collection of tools, components, guidelines and libraries to simplify the development of software
freedesktop.org
organization that develops standards for desktop environments
frontend, FE, front-end
software component that interacts directly with the user
fsync
system call that ensures that all data in the buffer is written to disk
fsyncgate
bug in PostgreSQL that caused data loss on Android
FTP, file transfer protocol
protocol for transferring files between computers on a network
FTR
abbreviation of “for the record”
full duplex communication
communication where both parties can send and receive data simultaneously
full text search
information retrieval technique for finding documents that contain a given set of words from a query
fully connected layer
layer where each neuron is connected to every neuron in the previous layer
function
subroutine that can be called from other parts of the program
functional paradigm
programming paradigm based on the concept of functions and immutability
functional programming language
programming language based on functional paradigm; e.g. Haskell, Erlang
function component
React component that is defined as a function
functor
morphism function between categories
FUSE, file system in userspace
API for implementing file systems in userspace
g++
C++ compiler based on GCC
Gale-Church algorithm
algorithm for sentence alignment
garbage collector, GC
part of a programming language runtime system that manages the memory used by a program; its goal is to identify and reclaim memory which is no longer in use (referenced by the program), prevent memory leaks and improve memory efficiency
garden path sentence
ambiguous sentence that leads to an incorrect (partial) interpretation or syntactic analysis; e.g. time flies like an arrow and fruit flies like a banana
gate (machine learning)
TODO
Gatsby
React-based, open-source web framework; cf. Next.js
GB, gigabyte
10^9 bytes or 1,000 megabytes
GCC, GNU compiler collection
collection of compilers for programming languages developed by the GNU project
gdb, GNU debugger
debugger for C and C++ developed by the GNU project
GDPR, General Data Protection Regulation
EU regulation on data protection and privacy
gem, Ruby gem
package of Ruby application or library code
general-purpose computing on graphics processing units, GPGPU
the use of a GPUs in applications traditionally handled by the CPU; cf. CUDA, shader
generative model
model that can generate new data
generator
function whose state is saved then it returns (yields) a value so that execution can be continued from that point the next time it’s called
generics
programming language feature allowing to define functions and types that can be used with different types of data
genetic algorithm
see evolutionary algorithm
gensim
Python library for unsupervised topic modeling and NLP
geocoding
process of transforming a description of a location into a location on the Earth
geohash
system of geocoding that encodes geographical locations into short strings of digits and letters
geolocation
the process of determining the location of a device using its IP address
geometry
branch of mathematics that studies the properties of shapes
getaddrinfo
system call that resolves a domain name to an IP address
getter
method that returns the value of a property
gettext
program for translating strings in software
gevent
coroutine-based Python library for asynchronous programming based on greenlets
gibibyte
2^30 bytes or 1,024 mebibytes
GIGO, garbage in, garbage out
principle that states that incorrect or poor quality input will always produce faulty output
GIL, global interpreter lock
mutex allowing only one thread to hold the control of the Python interpreter
GIMP, GNU image manipulation program
raster graphics editor by the GNU project
git
distributed version control system
GitHub
SaaS git
GitLab
open source SaaS git with self-hosting option
Google Kubernetes Engine, GKE
managed Kubernetes service for containers running on GCP
global scope
scope that is visible in the whole program
global variable
variable with a global scope
globbing
specifying a set of files using a simplified regular expression; e.g. *.txt matches all files with the .txt extension
glue tag
TODO
glyph
graphical representation of a character
Gmail
SaaS email service from Google
GNN, graph neural network
TODO
Gnome
desktop environment for Linux
GNU, GNU is not Unix
project to create a free operating system
GNU public license, GPL
license that allows to use, modify and distribute software as long as the source code is made available
GNU/Linux
Unix-like operating system based on the Linux kernel and the GNU userland; not to be confused with Linux
Go, golang
open source programming language designed to be suitable for systems programming
Good-Turing smoothing
statistical technique in NLP for estimating the probability of unseen events in a dataset
Goodreads
website with book reviews developed by Amazon
Google
company that provides SaaS services and open source software
Google AI
division of Google that focuses on artificial intelligence
Google Analytics
SaaS for tracking website traffic by Google
Google Cloud Platform, GCP
Iaas by Google
Google Maps
SaaS for maps by Google
Google Play
SaaS for distributing Android apps
Google Plus
discontinued (as of 2019) social network by Google
Google Search
SaaS search engine
Google Wave
discontinued (as of 2012) SaaS for real-time communication and collaboration developed by Google
GOP, group of pictures
a set of frames that are compressed together
goroutine
thread in Go
GOTO
statement that causes the program to jump to another part of the code; included e.g. in BASIC and C
GPLv3
TODO
GPS, global positioning system
satellite navigation system using the intersection of signal from three satellites to determine the position of a receiver on the Earth
GPT, generative pre-trained transformer
family of large language models from OpenAI
GPT4
large language model from OpenAI based on GPT architecture
ChatGPT
SaaS for chatbot based on GPT models
GPTQ, generative pre-trained transformer quantization
type of post-training quantization for LLM compressions (from 32 bits down to 3–4 bits)
GPU, graphics processing unit
special type of processor suitable for massive parallel computing
gradient
how each element is contributing to the final value (objective function) of the model; it is the slope of the function or the partial derivation; all functions and their elements must be differentiable
gradient boosting
machine learning technique for regression and classification problems, which produces a prediction model in the form of an ensemble of weak prediction models, typically decision trees
gradient descent
optimization algorithm for finding local/global maxima/minima in a function by iteratively moving in the direction of the negative gradient
Grafana
dashboard for time series data
graph (discrete mathematics)
set of vertices and edges connecting them
graph (mathematical analysis)
visual representation of a function; cf. plot, chart
graph database
NoSQL database for storing and easy querying graph data
graph theory
branch of mathematics studying graphs
graphene
Python library for GraphQL
graphics card
hardware component that generates and outputs images to a display it also allows parallel computing
GraphQL
query language for API developed by Facebook
greenlet
Python library for cooperative multitasking
grep, global regular expression print
CLI tool for searching and filtering text files
grid (CSS)
grid is a set of intersecting horizontal and vertical lines defining the columns and rows
grid search cross validation
trying all combinations; suffers from exponential growth of combinations
gRPC, Google remote procedure call
implementation of RPC using protobufs sent over HTTP 2.0 protocol in full-duplex mode
GRU, gated recurrent unit
recurrent neural network that uses gates to control the flow of information
GTK, GIMP toolkit
widget toolkit for creating GUI applications
guesser
algorithm which guesses morphological categories and PoS](#pos) in OOV words in NLP of morphologically rich languages
GUI, graphical user interface
user interface that allows users to interact with computer programs through graphical icons and visual indicators; a mouse is typically used to manipulate the elements of the user interface
gulp
JavaScript build system
gunicorn
HTTP server
gzip
CLI tool for compressing data
H.264
see HEVC
H.265
video compression standard
Hadoop
framework for distributed computing developed by Apache
HAL2000
computer in the book 2001: A Space Odyssey
hallucination
nonsensical output of a generative model; coined by Andrej Karpathy
Hamming code
error-correcting code where each data bit is represented by a parity bit that is the result of a XOR operation on a subset of the data bits
Hamming window
window function used in signal processing
hapax legomenon
word or expression that occurs only once within a dataset or text corpus
haptic feedback
feedback based on the sense of touch particularly in technology that simulates physical sensations
hardware abstraction layer, HAL
layer of abstraction that allow the operating system to interact with the hardwareo at a general level rather than at a detailed hardware level
hardware accelerator
processor designed to accelerate machine learning tasks
hardware interrupt
interrupt generated by external hardware devices to signal the CPU that they require attention, also can trigger interrupt service routines and are used to handle events such as keyboard input or disk I/O
hardware, hw
physical part of a computer
harmonic mean
reciprocal of the arithmetic mean of the reciprocals of the values
hash
result of a hash function
hash collision, collision
the situation when two different inputs produce the same output in a hash function
hash function
function that maps data of arbitrary size to data of fixed size
hash table, hash map
data structure that maps keys to values using a hash function
hashbang
see shebang
Haskell
functional programming language from 1990s with a strong type system
HCI, human-computer interaction
discipline concerned with the design, evaluation and implementation of interactive computing systems for human use and with the study of major phenomena surrounding them
HDD, hard disk drive
electro-mechanical non-volatile data storage device
HDFS, Hadoop Distributed File System
distributed file system used by Hadoop for storing large datasets
HDR, high dynamic range
technology enhancing the range of color and contrast in images by combining multiple images of the same scene taken at different exposures
head (Unix command)
CLI tool for printing the first few lines of a file
head (model)
the part of a pretrained which is removed and replaced with a randomly initialized layers suitable for fine-tuning on the target dataset
headless browser
web browser without a GUI usually used for automated testing and web scraping
heap
tree based data structure that satisfies the invariant property that the parent node is greater than its children nodes (in the case of a max heap)
heap sort
algorithm for sorting using heap in O(n log n)
Helm
package manager for Kubernetes
Heroku
platform as a service for web applications
heuristics
problem-solving approach using practical methods or shortcuts to produce solutions that are not guaranteed to be optimal
HEVC, high efficiency video coding
video compression standard improving on its predecessor H.264/MPEG-4 AVC, supporting resolutions up to 8K UHD and 10-bit color depth
hexadecimal number, hex
number in base 16
hibernation
power-saving state of a computer that uses the least amount of power when the memory is saved to the hard drive
hidden layer
layer of a neural network that is not an input layer nor an output layer
hidden Markov model, HMM
statistical model that assumes the Markov property and that the state is not directly observable
high level programming language
programming language with strong abstraction from the details of the computer
higher-order function
function that takes another function as an argument, returns a function as a result, or both
hitchhiker
someone who is part of a project but does not actually do any work on it
home directory
directory in a file system that is designated for a particular user and typically contains the user’s files; in Unix systems, it is denoted by ~
homonymy
language phenomenon when a word that is spelled the same as another word but has a different meaning; e.g. bank (financial institution) and bank (land alongside a river)
horizontal scaling
increasing performance by adding more nodes to a distributed system
host
computer connected to a network
hostname
identifier that is assigned to a computer connected to a network
hot swapping
replacing a module without stopping the whole system
hotfix
patch applied to a software to fix a critical bug
hover
user interface event when the mouse is moved over an element without pressing any buttons
HP, Hewlett-Packard
software and hardware company
HPC, high-performance computing
field of computer science that deals with supercomputers and parallel computing
href
HTML attribute used to specify the URL of a hyperlink
HTER, human translation error rate
metric used in machine translation to measure the post-editing effort, it compares a human-translated text with a machine-translated one
HTML, hypertext markup language
markup language for creating hypertext documents used on the web; represented in memory as a DOM
HTML5
version of HTML with new elements, attributes, and behaviors e.g. <video>, <audio>, <canvas>, <svg>
htmx
JavaScript library for AJAX with HTML attributes
htop
CLI tool for monitoring system resources
HTTP DELETE
HTTP method for deleting data
HTTP GET
HTTP method for retrieving data
HTTP header
part of HTTP request or response containing key-value pairs; e.g. Content-Type: application/json or Content-Length: 1024
HTTP POST
HTTP method for creating data
HTTP PUT
HTTP method for updating data
HTTP server
server that serves HTTP requests
HTTP verb
GET, DELETE, PUT, POST etc.
HTTP, hypertext transfer protocol
text based protocol for client server communication over the Internet used by the web
HTTP/1
version of HTTP
HTTP/2
version of HTTP
HTTPS
secured HTTP
hub (network)
central or core part of a network where connections or paths intersect
HuggingFace
company that develops NLP models and framework of the same name
HuggingFace Space
platform for sharing NLP models and datasets
human-readable format
file format that is easy for humans to read and understand
hunalign
program for sentence alignment
Hungarian notation
naming convention for variables where the name of the variable indicates its type; e.g. strName or lNames
HUP, hangup
POSIX signal to terminate a process
hyperlink
reference to another document or part of it that a reader can follow by clicking
hyperparameter
global parameter of the model; e.g. learning rate or batch size
hyperparameter tuning
process of finding optimal hyperparameters of a model
hypertext
text that contains hyperlinks
hypervisor
software that creates and runs virtual machines and manages them
hyphen
punctuation mark -
I-frame
frame that contains only the changes from the previous frame
I/O buffering
process of temporarily storing data while it is being transferred between two elements in a computer
IaaS, infrastructure as a service
cloud computing service that provides virtualized computing resources over the internet
IBM, International Business Machines
software and hardware company
iCloud
cloud storage service by Apple
ICMP, internet control message protocol
network protocol for sending error messages
icon
GUI element represented as a graphical symbol used for navigation and interaction
ICQ
instant messaging application; the name derives from “I seek you”
id
unique identifier, usually a number
IDE, integrated development environment
software containing tools to facilitate software development; usually contains a text editor, console, debugger or file browser
identifier
name that identifies a variable, function, class, or other object
idiv
x86 assembly instruction used for signed integer division which divides the accumulator (rax) by a specified operand, storing the quotient in rax and the remainder in the remainder (rdx) register
IDL, interface definition language
programming language for defining interfaces
IEC, International Electrotechnical Commission
international standards organization for electrical engineering
IEEE, Institute of Electrical and Electronics Engineers
professional association for electrical engineering and computer science
if statement
see conditional statement
iframe
HTML element that allows to embed another HTML document inside the current one
IIS, Internet Information Services
web server by Microsoft
IM, instant messaging
form of communication that offers real-time text transmission over the Internet
image classification
task in machine learning to classify images into categories
ImageMagick
software suite for image manipulation
ImageNet
image-based dataset for machine learning with 14 million images in more than 20,000 categories
IMAP, internet message access protocol
protocol used my email clients to retrieve emails from email server – messages are kept on the server; cf. POP3
IMDb
website with information about movies and TV shows
immutability
property of an object or data type that cannot be changed
imperative programming language
programming language that uses statements to change a program’s state
implementation
realization of a specification in a programming language
implicit type conversion
type conversion that is done automatically by the compiler
IMSI, international mobile subscriber identity
key used to identify a subscriber on mobile telephony devices
imul
x86 assembly instruction used for signed integer multiplication
inc
x86 assembly instruction used to increment the value of a register or memory location by 1
increment, inc
unary operation that increases a variable by one
index (programming language)
indices represent the position of an element in a sequence; e.g. the first element has index 0 in many programming languages
indexing
process of creating an index for a database to improve the speed of data retrieval
inference (logic)
process of deriving logical conclusions from premises
inference (ML)
process of using a model to make predictions
infimum
greatest lower bound
infix
middle of a string or word
infix notation
standard notation where the operator is placed between its operands
influxdb
time series database
information hiding
TODO
information leakage
situation when a model is able to learn validation set from the training data
information retrieval
discipline of computer science
information technology
TODO
information theory
branch of applied mathematics that studies quantification, storage, and communication of information
ingest
process of importing multiple data into a single data store
ingress
Kubernetes resource that manages external access to the cluster by exposing HTTP and HTTPS routes
inheritance
see class inheritance
INI
text format used for configuration
init process
process with PID 1 in Linux that starts and manages other processes
init system
system in Linux that starts and manages services
initialization
process of setting the initial values of weights and biases in a neural network
inner join
join that only includes rows that match in both tables
inorder
tree traversal where the root is visited between the left and right subtrees
inplace operator
operator that modifies its operand; e.g. += in Python
input device
hardware that sends data to a computer; e.g. keyboard, mouse
INSERT
SQL statement and operation to insert data into a table
insert sort, insertion sort
algorithm for sorting
Instagram, IG
social network for sharing photos and videos
installation
process of setting up a software
instance (OOP)
object of a class
instruction pointer register, rip
CPU register that holds the memory address of the next instruction to be executed
instruction set
set of instructions that a processor can execute; e.g. x86, ARM, MIPS, RISC-V, …
integer
basic data type to represent whole numbers
integral
mathematical object that can be interpreted as an area or a volume
integrated circuit
electronic circuit made of semiconductor material
integration test
test that checks if the components of a system work together
integrity
property of a system that ensures that the information is not modified by unauthorized users
Intel
company that designs and manufactures microprocessors
IntelliJ
IDE for Java and other languages
inter-annotator agreement, IAA
measure of the degree of agreement among different annotators in assigning categories to items in NLP
intercom, intercommunication system
communication system within a building
interface
point of interaction between two systems, APIs, user and a computer
interface (OOP)
contract that specifies what a class can do without specifying how it does it
interlingua
artificial language used as an intermediary between two natural languages
internationalization, i18n
process of designing a software so that it can be adapted to various languages and regions
internet
global network of computers; connected via internet protocol
interpolation
method for estimating unknown intermediate values by using known values
interpreted language
programming language which is not compiled into machine code but is interpreted by an interpreter on the fly; e.g. Python, JavaScript
interpreter
software that interprets source code of a programming language and executes it, it can be interactive
interprocess communication, IPC
mechanism that allows processes to communicate with each other
interruption
situation when a process is stopped by an interrupt request
intersection
set of elements that are common to two or more sets
invariant
property which stays the same after a set of operations is executed
IO, I/O, input/output
type of operation that reads from or writes to a storage
IO-bound process
process that is limited by the speed of the IO
iOS
operating system for Apple devices
IoT, internet of things
network of devices connected to the internet
IP address
unique identifier of a device connected to the internet used in the internet protocol
IP, internet protocol
set of rules that govern how data is sent and received over a network
iPad
tablet developed by Apple
iPhone
smartphone developed by Apple
iptables
program for configuring firewall in Linux
IPv4
version of IP using 4 bytes for addresses
IPv6
version of IP using 6 bytes for addresses
IPython, interactive Python
interactive shell for Python with features like syntax highlighting, autocompletion, history etc.
IRC, internet relay chat
text based instant messaging system
IRQ, interrupt request
signal sent to CPU that temporarily stops a running process
ISO (file format)
file format for storing disk images
ISO 8601, ISO date format
standard for date format that is in the form YYYY-MM-DD and is useful for sorting
ISO 8859-1
standard for character encoding of Latin alphabet
ISO, international organization for standardization
organization that develops and publishes international standards
isolation
property of database transactions that ensures that concurrent transactions do not interfere with each other
ISP, internet service provider
company that provides access to the internet
ISR, interrupt service routine
function in low-level programming that handles interrupts from hardware or software
issue
bug or a feature request; cf. ticket
iterator
object that allows to iterate over a collection of items
iTerm
terminal emulator for macOS
J
array programming language
jar, Java archive
file format for distributing Java classes and other resources
Java
high-level cross-platform object-oriented programming language; developed by Sun Microsystems with syntax similar to C
Java Virtual Machine, JVM
virtual machine that executes Java bytecode
JavaDoc
documentation generator for Java
JavaScript
programming language used mainly for web development
Jekyll
static site generator written in Ruby
Jenkins
open source automation server for continuous build and continuous deployment
Jinja
templating engine and language for Python
jitter
variation in latency
jmp
assembly instruction used for unconditional branching which transfers control to a specified memory address, allowing for non-sequential execution of code; cf. GOTO
join
operation that combines two or more database tables into one
Joomla
content management system
journaling file system
file system that keeps track of changes not yet commited to the file system’s main part by recording the goal of such changes
JPEG, JPG, joint photographic experts group
method of lossy compression for digital images; files with this compression usually have .jpg or .jpeg extension
jq, JSON query
CLI tool for parsing and manipulating JSON
jQuery
JavaScript library for DOM manipulation
jQuery UI
jQuery library for creating user interfaces
JSF, JavaServer Faces
Java framework for web development
JSON, JavaScript Object Notation
text format for representing structured data
JSONL, JSON Lines
text format where each line is a JSON object
Julia
LLVM based, dynamically typed programming language for high performance
Jupyter notebook
open source web application for creating and sharing computational documents; cf. literate programming
JWT, JSON web token
standard for creating access tokens that assert some number of claims
K
proprietary array programming language
k-means clustering
unsupervised clustering algorithm that partitions n observations into k clusters by repeatedly calculating the centroid of the current groups and then assigning each observation to the nearest centroid until the centroids do not change anymore
Kafka
framework for distributed streaming data processing developed by Apache
Kaggle
data science competition platform and online community
Kaimin normalization
torch.nn.init.kaiming_normal_()
Kali Linux
Linux distribution for penetration testing
kanban
visual system supporting decision making in project management; commonly in combination with scrum
kata
short practise, e.g. implementing a known algorithm
KDD, knowledge discovery in databases
process of discovering useful knowledge from a collection of data
KDE, K Desktop Environment
desktop environment for Linux and other Unix systems
KDY, Know Your Domain
process of understanding the domain of the software being developed
kebab case
naming convention where words are separated by hyphens; e.g. my-temp-variable
keepassx
password manager for Linux
Kendo
UI library for JavaScript
Keras
open source neural network library written in Python
kernel (machine learning)
function that takes two inputs and returns a similarity score
kernel (operating system)
program at the core of an operating system controlling everything in the system; it manages processes, memory, I/O operations etc
kerning
process of adjusting the spacing between characters in a proportional typeface
key (cryptography)
piece of information that controls the operation of a cipher
key binding
mapping between a key or combination of keys and an action
key value store
database that stores data as a collection of key-value pairs
keyboard
peripheral device for input of text
keyframe
frame that is encoded fully without referencing other frames; cf. B-frame, P-frame
keylogger
software that records every keystroke
keymap
mapping between physical keys and actions
keynav
software for controlling the mouse cursor with the keyboard
keyring
see password manager
kibibyte
2^10 bytes or 1,024 bytes
kill
command to terminate a process by sending it a signal
kilobyte
1,000 bytes
Kindle
e-reader developed by Amazon
Kibana
a data visualization dashboard for Elasticsearch
dashboard
GUI that provides at-a-glance views of indicators relevant to a particular objective or business process
KISS, keep it simple stupid
approach to software development based on the idea that most systems work best if they are kept simple rather than made complicated
kNN, k-nearest neighbors
classification algorithm that classifies a new observation by finding the k closest observations in the training set and assigning the new observation to the most common class among these k neighbors
knowledge base
collection of knowledge in digital form
Kotlin
programming language for Java virtual machine and Android
KPI, key performance indicator
measurable value that demonstrates how effectively a company is achieving key business objectives
Kubernetes, k8s
open source system for automating deployment, scaling and managing containerized apps
KVM, kernel-based virtual machine
open source virtualization technology built into Linux kernel developed by Red Hat
KYC, Know Your Customer
process for identifying and verifying the client’s identity to protect financial institutions against fraud, corruption, money laundering etc.
L1 cache
cache that is part of the CPU and is the fastest to access
L1 regularization
regularization technique that adds a penalty equal to the sum of the absolute value of the coefficients
L2 cache
cache that is part of the CPU and is slower to access than L1 cache
L2 regularization
regularization technique that adds a penalty equal to the sum of the squared value of the coefficients
LED, light emiting diode
TODO used in screens
label
correct answer of the ground truth associated with the input data
lambda calculus
mathematical model of computation based on function abstraction and application using variable binding and substitution; introduced by Alonzo Church in 1930s
lambda function
anonymous function
lamma.cpp
library for running pretrained models; it has a wrapper for Python
LAN, local area network
computer network that interconnects computers within a limited area such as a school, university campus or office building
LanceDB
open source vector database for machine learning applications
Laplace smoothing
technique in for handling OOV in NLP by adding a small value to the count of each word
laptop
portable computer
Laravel
PHP web framework
laser printer, laserjet
printer that uses a laser beam to produce an image on a drum that is rolled through a reservoir of toner and then onto a sheet of paper
late binding
technique of deferring the resolution of a symbol until runtime
latency
the time between sending a request and receiving a response or initiating an action and seeing the result
LaTeX
Tex macro package for typesetting documents using markup language
lattice
partially ordered set in which every two elements have a unique supremum and a unique infimum
layer
neural network component that transforms input data into output data represented as a matrix
layout engine
software component that combines content with a presentation to generate an output that can be displayed on a screen
lazy evaluation
evaluation strategy that delays the evaluation of an expression until its value is needed; e.g. the second half of A and B is not evaluated when A is false
LDA, latent Dirichlet allocation
generative statistical model that allows sets of observations to be explained by unobserved groups that explain why some parts of the data are similar
LDAP, lightweight directory access protocol
protocol for accessing and maintaining services over IP; a common use is to provide a central place to store usernames and passwords
leaderless replication
replication scheme in which all nodes are equal and there is no distinguished leader
leaf function
function that does not call any other functions within its body
leaf node
node that has no children
Leaflet
open source JavaScript library for mobile-friendly interactive maps
leaky bucket
algorithm for controlling data flow in networks by analogy to water flowing out of a bucket
lean
set of practices that emphasize efficiency, minimizing waste, and delivering value to customers; originated in Toyota manufacturing
learner
combination of a model and data; used e.g. in fastai library
learning bias
see bias
learning rate
hyperparameter expressing how much to change the weights each pass to move down the loss gradient
learning rate decay
learning rate can be dynamic (with regards to the step number within optimization); can be determined by tracking losses while altering learning rates
least squares
method for finding the best fit of a set of data points to a linear function by minimizing the sum of the squares between the actual and predicted values
least upper bound
element that is greater than or equal to other elements; see also supremum
Leet Code
website for practicing design and implementation of algorithms
left join
join that returns all rows from the left table and the matched rows from the right table
legacy code
code that is old and difficult to maintain
lemma (linguistics)
the canonical form of a lexeme
lemma (mathematics)
proven proposition which is a corollary to one or more of the axioms of a system
Lesk algorithm
algorithm for word sense disambiguation that uses the dictionary definition of a word and the context in which the word appears to resolve ambiguity
less
command for viewing text files; cf. more
Let’s Encrypt
free, automated, and open certificate authority providing digital certificates for website encryption
Levenshtein distance
specific type of edit distance
lexeme
unit of lexical meaning that underlies a set of words that are related through inflection; e.g. run, runs, ran and running are forms of the same lexeme run
inflection
process of adding morphemes that modify a verb’s tense, mood, aspect, voice, person, or number or a noun’s case, gender etc.
lexer
program that performs lexical analysis
lexical analysis
process of converting a string into a sequence of lexemes
lexical scoping
scoping that uses the location of a variable’s definition to determine where it can be used
LGTM, looks good to me
commonly used in code review as an approval formula
libc
library that defines the system calls and other basic facilities such as string handling
glibc
GNU C library
library
reusable software usually organized into modules
license
legal document that grants permission to use a software under certain conditions
lifecycle
steps that an object goes through; in OOP, the steps are between creation and destruction, in issues management, the steps are between creation and resolution
LIFO, last in first out
data structure where the last element added is the first one to be removed
linear data structure
data structure where the elements are arranged in a linear order
linear probing
hashing technique that resolves collisions by trying the next slot in the hash table
linear regression
regression analysis with assumed linear relationship between the independent variables and the dependent variable
linguistics
scientific study of language
link farm
see content farm
linked list
data structure for storing a sequence of items
linker
program that combines machine code with other libraries to create an executable
linkrot
process by which hyperlinks on individual websites in general point to web pages, servers or other resources that have become permanently unavailable
LINQ, language integrated query
query syntax that is integrated into the programming language; e.g. SQL in C#
linter
program that analyzes source code to flag programming errors, bugs, stylistic errors, and suspicious constructs
Linux
open source Unix-like operating system
Linux distribution
Linux kernel bundled with additional software; e.g. Ubuntu, Fedora or Arch Linux
Liskov substitution principle
principle in object-oriented programming stating that if S is a subtype of T, then objects of type T may be replaced with objects of type S without altering any of the desirable properties of the program
Lisp
a family of functional programming languages with fully parenthesized syntax from the 1950s which represents code as nested lists
list
array containing a sequence of (heterogenous) elements
list comprehension
syntax for creating a list based on existing lists in-place; e.g. [x**2 for x in range(10)]
list file, lst
file generated by an assembler that contains the assembly code along with its corresponding machine code instructions, often used for debugging and analysis
listeme
item that is memorized as part of a list as opposed to being generated by a rule; e.g. the word took in the list take, took, taken
literate programming
programming paradigm that combines documentation (prose) and source code
little endian
byte order of a binary number in which the least significant byte is stored first
livelock
situation when two or more processes are in a loop waiting for each other to finish and thus none of them can finish
LL grammar, left linear grammar
formal grammar in which all productions are of the form A → wB or A → w where A and B are nonterminals and w is a string of terminals
LL1 grammar, left linear grammar with one lookahead
LL grammar in which the first terminal of B is unique
LLM, large language model
language model with a large number of parameters usually based on transformers
LLVM, low level virtual machine
compiler and toolchain between any instruction set architecture and any programming language written in C++
LM, language model
probability distribution over sequences of words
LMGTFY, let me google that for you
sarcastic response to a question that could have been easily answered by a search engine
load balancing
technique used to distribute workloads across multiple resources
load factor
ratio of the current number of elements in a hash table to the size of the hash table
LOC, line of code
number of lines of code used as a metric for measuring the size of a software program
local storage
storage that is available only to the current browser
local variable
variable that is declared inside a function and is only accessible inside that function
locale
set of parameters that defines the user’s language, region and preferences
localhost
hostname that refers to the current computer
localization, l10n
TODO
lock
synchronization mechanism for enforcing limits on access to a resource in an environment where there are many threads of execution
lodash
JavaScript library that provides utility functions
log
special output of a program used for debugging and troubleshooting, monitoring and performance analysis and security and auditing
log linear time complexity
time complexity of an algorithm that is proportional to the logarithm of the input size
log loss
see cross entropy loss function
logarithmic time
time complexity of an algorithm that is proportional to the logarithm of the input size
logDice score
statistical measure used in corpus linguistics for evaluating collocation strength coocurrence analysis; cf. Dice coefficient
logging
process of recording events, actions or messages that occur during a program execution and which produces logs
logic
branch of mathematics
logic gate
electronic circuit that implements a logical operation
logical operation
function that takes one or more boolean values and produces a boolean value
logical operator
symbol that represents a logical operation
logistic function
function which startsoff increasing slowly, then grows more rapidly and eventually levels off; the f(x) values are usually between 0 and 1
logistic regression
classification algorithm that uses the logistic function to model the probability of a certain class or event existing such as pass/fail, win/lose, alive/dead or healthy/sick
logit
function that maps probabilities to the real numbers which are easier to work with in logistic regression
long
representation of integers in some programming languages
lookahead (parser)
number of tokens that are read ahead to decide which production to use in parsing
lookahead (regular expression)
number of characters that are read ahead in a string to decide whether a pattern matches
loop
sequence of instructions that is repeated until a certain condition is reached; a part of flow control in programming languages
loose coupling
TODO
loss, loss function
function which takes a model’s predictions and the desired output and computes a number expressing how good is the model’s prediction; used for driving the stochastic gradient descend; the measure of model’s performance
lossless compression
compression where no information is lost when the compressed data are uncompressed; cf. lossy compression
lossy compression
compression where some information is lost when the compressed data are uncompressed; cf. lossless compression
low level abstraction
abstraction provides little or no abstraction from a computer’s instruction set architecture
LR grammar, left regular grammar
formal grammar in which all productions are of the form A → wB or A → w where A and B are nonterminals and w is a regular expression
LSM tree, log-structured merge tree
data structure that maintains a sorted key-value map in persistent storage
lsof
command for listing open files
LSP, language server protocol
protocol for enabling IDE features for a programming language
LSTM, long short term memory
recurrent neural network model which can learn long-term dependencies
LTE, long-term evolution
standard for wireless broadband communication for mobile devices and data terminals
LTR, left to right text
text (or script) written from left to right; e.g. Latin, Cyrillic
Lua
programming language designed primarily for embedded systems and clients
LuaTeX
TeX engine that uses Lua as an embedded scripting language
Lucene
Java library for information retrieval and full-text search
luma
brightness component of a color space
LUW
acronym for three major operating systems Linux, Unix, and Windows
LWN.net
Linux news website and webzine
m4
macro processor
MAC address, media access control address
unique identifier assigned to a network device for communications at the data link layer
MXNet
deep learning framework by Apache
machine code
sequence of instructions executed directly by a CPU
machine language
lowest-level programming language that is directly executed by a CPU consisting of binary instructions that correspond to specific operations and memory addresses
machine learning, ML
field of computer science; training of programs developed by allowing a computer to learn from its experience (training data) rather than through manually coding the individual steps
machine translation, MT
NLP task of translating text from one language to another
MacOS
operating system for Apple computers
macro
rule or pattern that specifies how a certain input sequence should be mapped to a replacement output sequence according to a defined procedure; a part of preprocessor
macroblock
block of pixels, typically 16x16, used as the basic unit for processing and compressing video frames which includes luma (brightness) and chroma (color) information
mail
see email
mail list, mailing list
collection of names and addresses used by an individual or an organization to send material to multiple recipients
mail server
server that handles email
main (C)
function that is called when a C program starts
main branch, main
see master branch
main memory
see RAM
mainframe
large computer that is used by many people at the same time
make
build automation CLI tool from GNU
Makefile
script for make
malloc
C function for allocating a block of memory on the heap
malware
malicious software
man page
documentation for a command or other software component in Unix
MAN, metropolitan area network
network that interconnects users with computer resources in a geographic area or region larger than that covered by even a large LAN but smaller than the area covered by a WAN
managed code
code that runs on a virtual machine and is managed by the runtime
Mann-Whitney U test
non-parametric test for comparing the means of two samples
Mantis
open source bug tracking system
mantissa
part of a floating point number which contains its significant digits
many to many, m:n
relationship between two entities where one entity can be associated with many instances of the other entity and vice versa
map
see dictionary
mapping
function that associates each element of a set with an element of another set
MapReduce
algorithm for processing and generating large data sets
MariaDB
relational database management system that is a drop-in replacement for MySQL
markdown, MD
text format for specifying basic formatting
Markov chain
stochastic model describing a sequence of possible events in which the probability of each event depends only on the state attained in the previous event
Markov property
property of a stochastic process where the conditional probability distribution of future states of the process depends only upon the present state, not on the sequence of events that preceded it
markup language
text format that uses tags to define elements within a document
masking
operation that uses a sequence of bits to select or modify a subset of bits
master branch, master
branch in a version control system which is considered to be the definitive version of the source code
material design
UI design system developed by Google
material UI
React component library implementing material design
Matlab
programming language and GUI for numerical computing
Matplotlib
Python library for data visualization
matrix
rectangular array of numbers arranged in rows and columns; a vector of vectors
Mattermost
open source, self-hosted Slack alternative
Maven
build system for Java projects
maximum likelihood estimation, MLE
statistical method for estimating the parameters of a model based on observed data
mc, midnight commander
CLI file manager
McCabe complexity
see cyclomatic complexity
MDA, model driven architecture
software development methodology that focuses on modeling and model transformation
mean
quantity that has a value which is intermediate to the extreme values of a set of numbers
mean squared error, MSE
loss function for regression defined as the average of the squared differences between the predicted value and the actual value
mebibyte
2^20 bytes or 1,024 kibibytes
media player
software for playing multimedia
median
value separating the higher half of a sorted data sample from the lower half
megabytes
10^6 bytes or 1,000 kilobytes
memory
part of computer that is used to store information for immediate use; see also RAM
memoization
caching
memo (React)
higher-order component for memoizing a functional component to prevent unnecessary re-renders when its props or state have not changed
memory address
representation of the location of bytes in memory
memory allocation
process of allocating a block of memory for a variable in a program
memory footprint
amount of memory used by a program
memory leak
bug in a program that causes it to consume more and more memory over time
memory management
consists of tasks like memory alloocation, memory freeing
memory safety
property of a programming language that guarantees that a program cannot access memory that it is not authorized to access
Mercurial
distributed version control system
merge
action of adding code changes to an existing code base in a repository; usually integrating commits from a development branch into the main branch
merge conflict
situation when two commits cannot be merged automatically by a version control system since they modify the same part of the code
merge request
process of asking code maintainers and code reviewers to review code changes; cf. pull request
merge sort
algorithm for sorting
Merkle tree
tree data structure that is used to efficiently verify the contents of a large data set by storing hashes of the subtrees in nodes
Metasploit Framework
penetration testing tool
msfconsole
CLI for Metasploit Framework
message broker
software that translates messages from the formal messaging protocol of the sender to the formal messaging protocol of the receiver
metacharacter
character that has a special meaning in a regular expression; cf. escape sequence
metadata
data about data; e.g. EXIF allows adding information about the camera, lens, location and date to an image file for a photo taken with a smartphone
METEO
machine translation evaluation metric
METEOR
metric used in machine translation that considers word order and semantic similarity, offering a more flexible evaluation compared to BLEU
method
function that is defined inside a class
metric
function that measures the quality of a model or a system; used for human consuption, cf. loss
MFC, Microsoft Foundation Classes
C++ library for developing Windows applications
MI, mutual information
measure in information theory that quantifies the mutual dependence between two variables
micro-benchmark
short snippet of code used to compare performance or other qualities/properties
microblogging
form of blogging that allows users to write brief text updates
microcontroller
integrated circuit that contains all the functions of a computer
microprocessor
integrated circuit that contains all the functions of a CPU of a computer
microservice
software architecture that structures an application as a collection of services that are loosely coupled, independently deployable, organized around business capabilities and owned by a small team
Microsoft
company that develops and sells computer software and consumer electronics
Microsoft Cognitive Toolkit
deep learning framework
mid-squared method
pseudorandom number generator
middleware
software that connects two otherwise separate systems
migration
process of moving data from one database to another or upgrading a database to a new version
mindmap
diagram used to visually organize information often around a single concept
minification
process of removing all unnecessary characters from the source code without changing its functionality
MIPS architecture
reduced instruction set computer architecture
MIPS, million instructions per second
measure of a computer’s performance
MIT license
TODO
mixed type
data type that can contain values of different types
Mkdocs
static site generator for documentation
MKV, Matroska video, matroska
video container file format that can hold an unlimited number of video, audio, picture, or subtitle tracks in one file
MLC, machine learning compilation
project for running models on various platforms
MLOps, machine learning operations
practice of applying DevOps to machine learning
mmap, memory map
system call that maps files or devices into memory without copying data
MMLU, massive multitask language understanding
multilingual dataset for benchmarking large language models
mobi
ebook file format for Kindle
mobile application
application designed to run on mobile devices
mobile friendly website
website that displays correctly on mobile devices
mock
simulated object or function that mimics the behaviour of a real object or function
Mockito
Java framework for mocking
mod rewrite
module for Apache server that provides a rule-based rewriting engine to rewrite requested URLs on the fly
modal
dialog that requires users to interact with it before they can return to the main application which usually overlays the main application window
modal editor
editor that has different modes for different operations; e.g. insert mode for inserting text, normal mode for navigation and manipulation, visual mode for highlighting parts of text, command mode for executing commands etc.
model
special kind of a general program which can do many things based on weights and its structure
model parameters
see parameters
model view controller, MVC
software design pattern for implementing user interfaces where model represents the structure of data, view is a way of interpreting the model and controller is a way of controlling the the view and provide the model with new data
modifier key
key on keyboard that modifies the action of another key when pressed together with it; e.g. Shift, Alt, Ctrl
modular design
design principle that divides a system into smaller parts called modules which can be independently created and then used in different systems
module
part of a program that can be used in other programs
momentum
hyperparameter of gradient descent that determines how much the previous update influences the current update
monad
monoid in the category of endofunctors
monad (design pattern)
design pattern in which pipeline implementation are abstracted by wrapping a value in a type
Mongo, MongoDB
NoSQL database system
Mongoose
ORM in Node.js for MongoDB
monoid
algebraic structure with a single associative binary operation and an identity element
monorepo
repository that contains more than one project; e.g. both backend and frontend of a web application
monospace
type face in which all characters have the same width
Monte Carlo method
class of algorithms that rely on repeated random sampling to obtain numerical results for simulations, optimization, and numerical integration
more
command for viewing text files; cf. less
morpheme
smallest meaningful unit of a language
morphism
structure-preserving mapping from one mathematical structure to another
morphological analysis
process of breaking words down into morphemes or assigning parts of speech to them
morphology
branch of linguistics that studies the structure of words
Moses
statistical machine translation software
motherboard
main printed circuit board in a computer that holds many of the crucial components of the system as CPU, memory, connectors for hard drives, USB ports, etc.
mouse
pointing device that detects 2D motion relative to a surface
mouseless computing
human-computer interaction technique that allows users to interact with a computer without using a mouse
mov
x86 assembly instruction which copies data from one location to another, such as between registers or between memory and registers
Mozilla
nonprofit organization that develops open source software
MPEG, Moving Picture Experts Group
working group of experts that was formed by ISO and IEC to set standards for audio and video compression and transmission
MPEG4
MPEG standard for audio and video compression
MPI, message passing interface
standard for message passing between parallel processes
MPP, massively parallel processing
architecture that uses many processors to perform a set of coordinated computations in parallel
MS Access
database management system from Microsoft
MS DOS, DOS
text-based operating system developed by Microsoft
mul
x86 assembly instruction which multiplies two integer values and stores the result in the destination operand
multi-word expression, MWE
phrase that consists of multiple words that functions as a single unit of meaning; e.g. New York City, United States of America
multicore
CPU that contains more than one core
multimedia
content that uses a combination of different content forms such as text, audio, images, animations, video, etc.
multiple dispatch
process of choosing the right method to apply based on the number of arguments and their type; in OO programming languages the choice is based on the first argument, e.g. in Julia it’s based on the signature of the method
multiplication
arithmetic operation
multiprocessing
parallel computing technique in which a program is divided into multiple processes which are executed simultaneously on different CPUs
multitasking
parallel computing technique in which a program is divided into multiple tasks which are executed simultaneously
multithreading
parallel computing technique in which a program is divided into multiple threads which are executed simultaneously on different CPUs
musl
libc implementation that is small and fast
mutability
property of a data type that can be changed after it has been created
mutation
operation which alters the data (e.g. in a database)
mutex, mutually exclusive flag
object (lock) which prevents multiple threads from accessing the same resource at the same time
mutt
text based email client
mux, multiplexer
function or program allowing several input signals to share one device or resource; a multiple-input single-output switch
MVCC, multi-version concurrency control
concurrency technique that allows multiple versions of the same data to coexist
MX record
DNS record that specifies a mail server responsible for accepting email messages on behalf of a domain
MyMemory
translation memory system combining MT with human contributions
MySQL
open source relational database management system
naive Bayes classifier
simple probabilistic classifier based on applying Bayes’ theorem with strong independence assumptions
NAL, network abstraction layer
part of the H.264/AVC and HEVC video coding standards, responsible for formatting the video data in a manner suitable for transport or storage, abstracting the specifics of the network or storage medium
NVMe, non-volatile memory express
protocol for accessing flash storage via the PCIe bus
Nagios
open source monitoring system
PCIe, Peripheral Component Interconnect Express
high-speed serial bus standard for connecting peripherals to a computer
name binding
association of data (or code) with identifiers
named entity, NE
entity that is referenced by a proper name; e.g. Thomas Jefferson (person), New York (location), Microsoft (company)
namespace
set of unique names used to identify and refer to objects
namespace packages
way of splitting code of one Python package into separate directories or repositories
NaN, not a number
special floating point value that represents an undefined or unrepresentable value
NAND, not and
logic gate and binary logical operation that outputs true only when at least one input is false
Nano
text based editor for Unix
NAS, network attached storage
storage that enables multiple users and heterogeneous client devices to retrieve data from a centralized disk
NAT, network address translation
method of mapping IP address space onto another by modifying network address in the IP header
natural language
language that has evolved naturally in humans; e.g. English, French, Chinese, etc.
natural language processing, NLP
field of computer science that deals with the interaction between computers and humans using natural language; also a subset of AI
Nautilus
file manager for the GNOME
NEF, Nikon Electronic Format
image file format used by Nikon cameras
negation
logical operation that takes a boolean and returns the opposite boolean
negative caching
DNS caching of negative responses
negative lookahead
TODO
Neo4j
graph database
neomutt
fork of mutt actively maintained (as of 2023)
Neovim
fork of Vim with better support for plugins, LSP and Lua scripting
NetBeans
IDE for Java
netcat
networking utility for reading from and writing to network connections using TCP or UDP
netstat
CLI tool that displays network connections, routing tables, and a number of network interface statistics
network
group of computers connected together
network interface controller
hardware component that connects a computer to a network
neural network
machine learning model inspired by the neuron model
neuron model
mathematical model of a biological neuron
newline
special character or sequence of characters that is used to represent the end of a line of text and the start of a new line
newsgroup
discussion group on the Internet
Next.js
React framework
NFS, network file system
file system over network
Nginx
HTTP server
ngram, n-gram
sequence of n items, usually words or characters
ngrep, network grep
network packet analyzer that uses regular expressions for complex pattern matching
NIST, national institute of standards and technology
organization that promotes innovation and industrial competitiveness in the United States
NLTK, natural language toolkit
Python library for NLP
nmap, network mapper
network scanner used to discover hosts and services by sending packets and analyzing the responses
no free lunch theorem
theorem that states that no machine learning optimization algorithm works best for every problem
node (graph theory)
vertex in a network
node (parallel computing)
computer in a cluster that is dedicated to performing computation
Node.js
JavaScript runtime built on Chrome’s V8 JavaScript engine
NOHUP
POSIX signal and command to ignore the HUP signal
noisy channel model
model in information theory and SMT
Nokia
Finnish multinational telecommunications, information technology, and consumer electronics company
non-parametric test
statistical test that does not make assumptions about the population; e.g. Mann-Whitney U test; cf. parametric test
non-volatile storage, non-volatile memory
storage that retains its data even when not powered
nondeterministic finite automata
type of finite automata where each state can have multiple transitions for the same input
nondeterministic Turing machine
Turing machine that can be in multiple states at once
nonterminal, non-terminal
symbol that can be replaced by a sequence of other symbols
NOR, not or
binary logical operation that outputs true only when both inputs are false
normal distribution
probability distribution that is symmetric and bell-shaped
normal form
database is in normal form if it satisfies certain constraints that avoid data anomalies
normalization (database)
process of organizing data in a database and turning it into a normal form
normalization (machine learning)
process of rescaling numeric attributes to a range of values between 0 and 1
normalized scientific notation
standardized way of representing real numbers using a mantissa and an exponent
NoSQL, not only SQL
database system to store non-tabular data: key-value, documents, graph (nodes and vertices)
NOT
unary logical operation that outputs true only when the input is false
Notepad
simple text editor available in Windows by default
Notepad++
open source text editor for Windows based on Scintilla
NP problem
problem that can be solved in polynomial time (O(n^k)) by a nondeterministic Turing machine
NP-complete problem
problem that is as hard as any NP problem
npm, node package manager
package manager for Node.js
NREN, national research and education network
specialised internet service provider dedicated to supporting the needs of the research and education communities within a country
nroff
markup language for typesetting documents
NS record, name server record
DNS record that specifies the authoritative name servers for a domain
NSFW, not safe for work
content (e.g. a comment on a social network) which should be looked at in private as it may contain offensive or indecent material
nsstring
string class in Objective-C
NTFS, new technology file system
proprietary journaling file system developed by Microsoft for Windows
NTP, network time protocol
protocol for synchronizing clocks over a network
NTSC, National Television System Committee
analog television color system
null
constant that typically represents a null pointer, an empty value, or no data
null pointer
pointer that does not point to any object
null pointer exception
exception that occurs when a program attempts to access a null pointer
nullish coalescing operator, ??
logic operator that returns its right-hand side operand when its left-hand side operand is null or undefined, and otherwise returns its left-hand side operand
NumPy
Python library for efficient matrix operations
NVIDIA
company that designs and manufactures GPUs
NVIDIA Collective Communications Library, NCCL
library for parallel computing on GPUs
NVIDIA Optimized Deep Learning Frameworks, NVIDIA DALI
library for accelerating data pipelines for machine learning applications
OAuth, open authorization
open standard for authentication and authorization
object
data structure that contains data and functions to operate on that data
object code
see machine code
object storage
storage architecture that manages data as objects
Objective-C
object oriented programming language developed by Apple for macOS and iOS
observability
measure of how well internal states of a system can be inferred from knowledge of its external outputs
Ocaml
functional programming language
OCR, optical character recognition
technology to convert images of typed or handwritten text into text format
ODBC, open database connectivity
standard for database access
ODS, operational data store
database designed to integrate data from multiple sources for additional operations on the data
Office 365
cloud service by Microsoft that provides access to office software
Office, MS Office
suite of office software developed by Microsoft
offset
integer value that represents the displacement or distance from a base address, index or position
OLAP, online analytical processing
software that enables users to analyze multidimensional data interactively from multiple perspectives; cf. OLTP
OLTP, online transaction processing
software that facilitates and manages transaction-oriented applications; cf. OLAP
onclick
HTML attribute that specifies a JavaScript function to be executed when the element is clicked
one hot encoding, 1-hot encoding, one-of-V encoding, 1-of-V encoding
ML method where a categorical variable is converted into a binary vector where each index in the vector corresponds to a category, with a ‘1’ indicating the presence of that category; e.g. the categories ‘red’, ‘green’, and ‘blue’ could be encoded as [1, 0, 0], [0, 1, 0], and [0, 0, 1]
ontology
formal representation of knowledge as a set of concepts within a domain and the relationships between those concepts
OOM, out of memory
situation when a program tries to allocate more memory than is available
OOO, out of office
situation when a person is not available (e.g. on vacation)
OOP, object oriented programming
programming paradigm based on the concept of objects and their interactions
OOV, out of vocabulary
word that is not in the vocabulary used by a language model; usually replaced with <unk> or some other special token
open access
publication model that makes research outputs freely available to the public
open addressing
hash table collision resolution technique where the hash function is used to find an alternative location in the table
open source
software whose source code is available to the public under a license that specifies conditions of use and modification
Open Type, OTF
font format
Open-closed principle
software design principle that states that software entities should be open for extension, but closed for modification
OpenAI
non-profit AI research company
OpenCV, open computer vision
open source computer vision and machine learning software library
OpenGL
API for rendering 2D and 3D vector graphics
OpenOrca
huge dataset of questions and answers
OpenShift
container orchestration platform by Red Hat
OpenSSL
library used for secure communication over computer networks
OpenVPN
open source VPN software
operand
value on which an operator acts
operation
function that takes one or more inputs and produces a result; e.g. addition, subtraction, multiplication, division
operator
symbol that represents an operation
operator overloading
programming language feature that allows operators to be redefined for custom types
optical disc
storage medium that uses optical technology to read and write data
optimistic concurrency control
concurrency control method that assumes that no conflict will occur
optimizer
function that minimizes the loss function by adjusting the weights of a model
OPUS
large multilingual parallel corpus
or
logil operator that returns true if either of its operands is true
Oracle
database management system and a company that develops it
Oracle Cloud
IaaS and PaaS by Oracle
orchestration
process of automating the deployment, management and scaling of containers
order of magnitude
power (factor) of 10
ORM, object relational mapper
technique for converting data between a relational database and objects in an object oriented programming language
OS X
Unix based operating system developed by Apple
OS, operating system
software that manages computer and provides common services for applications run on the computer
OSI model, Open Systems Interconnection model
conceptual model that characterizes and standardizes the communication functions of a computing system without regard to its underlying internal structure and technology
outlier
data point that differs significantly from other observations
Outlook
email and calendar software developed by Microsoft
overfitting
when a model starts to memorize the training set instead of finding generalizable underlying patterns in the data
overflow
when a number is too large to be represented by the data type used to store it
overlay file system
file system that stores files on another file system
Overleaf
SaaS for LaTeX
P-frame
frame that is encoded using the difference between it and the previous frame
package
the form of software suitable for distribution
package manager
program that automates the process of installing, upgrading, configuring, and removing software modules
packet
unit of data that is routed between an origin and a destination on a network
page
fixed-length block of memory
page fault
when a program tries to access a page that is not in the main memory
page rank
algorithm for measuring the importance of a web page for the purpose of search engine
pagination
technique for dividing a large dataset or document into smaller parts (called pages)
pair programming
software development technique where two programmers work together on the same task usually on one computer
PAL, phase alternating line
video encoding system used in Europe
palindrome
string that reads the same backward as forward
PaLM, pathways language model
large language model from Google AI with 540 billion parameters
Parquet
column-oriented data file format designed for efficient data storage and retrieval developed by Apache
Pandas
Python library for data analysis
parallel, GNU parallel
command line tool for parallel computing
parallel computing
type of computation where many calculations are performed simultaneously
parallel corpus
corpus that contains translations of the same text in multiple languages where each sentence is aligned with its translation
parameter
variable that is part of the function definition
parameters (machine learning)
sometimes used interchangeable with weights
parametric test
statistical test that makes assumptions about the population; e.g. t-test; cf. non-parametric test
parent class
class that is inherited from
parity bit
bit added to a byte of data to make the number of bits with the value 1 even or odd
parser
program for parsing
parsing, syntactic analysis
procedure that analyzes the structure of a text according to the rules of a formal grammar
partial derivation
derivation of a function with respect to one of its arguments
partition
contiguous block of sectors on a disk that is treated as a separate unit
partition table
table that stores information about the partitions on a disk
Pascal
imperative programming language designed in 1968 for teaching purposes
pass
CLI password manager
pass (Python)
keyword in Python that does nothing
pass (machine learning)
one complete presentation of the training set to a model
pass by reference
method of passing arguments to a function where the function receives a reference to the original variable instead of a copy of its value
pass by value
method of passing arguments to a function where the function receives a copy of the original variable instead of a reference to its value
password
string of characters used for authentication
password manager
software for securely storing passwords and other credentials
PATA, parallel AT attachment
bus interface for connecting mass storage devices, predecessor of SATA
patch
software update that fixes bugs
PATH
environment variable that specifies the directories in which executable programs are searched in Unix command line
path (graph theory)
sequence of vertices in a graph where each vertex is connected to the next one
path (OS)
string that identifies a file or directory in a file system
pattern
see regular expression
pattern matching
technique for checking if a string matches a given regular expression
PayPal
company that provides online payment services
PC, personal computer
computer for personal use
PCA, principal component analysis
technique for reducing the dimensionality of a dataset by projecting it onto a lower dimensional space
PCI, peripheral component interconnect
bus for connecting hardware devices to a computer
PDF, portable document format
file format for storing documents in a device independent manner suitable for printing
PDO, PHP data objects
PHP extension for database access
peer-to-peer network, p2p
network where all nodes are equal and there is no central server
PEMDAS, parantheses, exponents, multiplication, division, addition, subtraction
mnemonic for the order of operations in Python expressions
pentest, penetration test
security test of a software or hardware system by attempting to exploit its vulnerabilities
perfect hash function
hash function with no collisions
peripheral
hardware device that is connected to a computer but is not part of it; e.g. a printer
Perl
scripting language
permalink, permanent link
URL that points to a specific web page and does not change over time
perplexity
measurement in information theory that quantifies how well a model predicts a sample
persistent memory
memory that retains its contents even when power is lost
PERT, program evaluation and review technique
project management statistical tool for estimating the time required to complete a project developed by the US Navy in the 1958
pessimistic lock
lock that prevents other processes from accessing a resource until the lock is released
petabyte
10^15 bytes or 1,000 terabytes
Petri net
graph for modeling concurrent systems
PGP, pretty good privacy
encryption software
PhantomJS
headless browser
PHP, PHP hypertext preprocessor, personal home page
programming language for creating dynamic web pages
phrase-based MT, phrase-based machine translation, PBMT
approach in MT where translations are made on the basis of phrases rather than individual words; cf. word-based MT
pi, Ludolph’s number
constant–the ratio of a circle’s circumference to its diameter, approximately 3.14159
pickle
Python standard library module for serializing and deserializing objects
PID, process identifier
number used by an operating system to uniquely identify a process
pie chart
chart that shows the relative sizes of different categories in a dataset as slices of a pie
PII, personally identifiable information
information that can be used to identify a person
PIL
Python library for image processing
ping
Unix command for testing whether a host is reachable using ICMP
ping of death
denial of service attack that sends malformed ICMP packets to a host
Pinterest
social network for sharing images
pip
Python package manager
pipe
Unix inter-process communication mechanism that connects the standard output of one process to the standard input of another
pipeline, pipe, |
method for passing standard output from one process to another as standard input; symbolized by ‘|’ in many shell environments
pivot table
table that summarizes data from another table
pivoting
technique for rotating a table by turning the columns into rows
pixel art
art that is created by placing individual pixels on a canvas
pixel perfect
type of design that is implemented with pixel level accuracy
pixel, px, pel, picture element
single point in a raster image or the smallest addressable element in a screen
plain text
file format for storing text in some encoding
platform
software or hardware environment in which applications can run
platform as a service, PaaS
cloud computing service that provides a platform for running applications; e.g. Heroku
PLOS, Public Library of Science
open access publisher
plot
graph that shows the relationship between two variables
Plotly
data visualization library
plugin
software component that adds a specific feature to an existing program
PoC, proof of concept
(software) prototype that demonstrates the feasibility of a concept
pointer
variable that stores the memory address of a value
polling
technique for periodically checking for new data; e.g. a client periodically checks for new messages; cf. busy waiting
polymorphism
programming language feature where a method can be used with different types
polysemy
property of a word or phrase that has multiple meanings; e.g. “bank” can mean a financial institution or the land
pop
operation that removes an element from a stack
POP3, Post Office Protocol version 3
protocol for retrieving email messages which are deleted from the server upon retrieval
popup
graphical user interface element that appears on top of the current window
PoS tagger
program that assigns a part of speech to each word in a text
PoS, part of speech
category of words in a natural language that have similar grammatical properties; e.g. noun, verb, adjective, adverb
POSIX, portable operating system interface
family of standards for maintaining compatibility between Unix systems
post
message sent to a forum or a wegpage
post mortem
analysis of an issue caused by a bug after it has been mitigated
post-editing (machine translation)
process of improving translation from MT by human editors
postfix
notation where the operator is written after the operands; e.g. 3 4 +
PostgreSQL, Postgres, pg
relational database system with ACID compliance
Postman
software for testing APIs
postorder
tree traversal where the children of a node are visited before the node itself
PostScript, PS
page description language from Adobe
pothole case
see snake case
power law
relationship between two quantities where one quantity varies as a power of another
PowerBI
business intelligence tool from Microsoft
PowerPoint
sofware for creating presentations by Microsoft
PowerShell
shell and scripting language from Microsoft
pragma
directive in source code that provides additional information to the compiler, typically to optimize or modify compilation
pragmatics
subfield of linguistics dealing with context-dependent aspects of meaning that are not directly derived from the words of the language
precedence
order in which operators are evaluated
precision
the fraction of true positives cf. recall
predicate
function that returns a boolean value
predicate logic
logic that uses quantified variables and quantified predicates
prediction
output or result of a model
preemptive multitasking
multitasking technique where the scheduler can interrupt a task to run another task
prefetching
technique for loading data into cache before it is needed
prefix
beginning of a string or word; e.g. re in rethink, un in undo, etc.
prefork server model
server model where there is a central master process that manages a set of worker processes
preorder
tree traversal where the root is visited before the children
preprocessor
program that processes a text file before it is compiled
presupposition
in pragmatics, a proposition which is assumed to be true in a given discourse
pretrained model
model that has weights already trained on some other (usually larger) dataset
primary key
column or set of columns that uniquely identifies a row in a table
prime number, prime
number that is only divisible by itself and 1; e.g. 11
Primefaces
Java library for creating web applications
primitive
data type that is not composed of other data types
principle of compositionality, compositionality principle
language expression is compositional if the meaning of it is determined by the meaning of its constituents; e.g. the meaning of red car is compositional while White house is not
printf
C function for printing formatted text
priority queue
data structure where the element with the highest priority is removed first
private key
key used for encryption that is kept secret
private method
method that can only be called from within the class where it is defined
private variable
variable that can only be accessed from within the class where it is defined
private network
network that is not accessible from the public Internet
probability distribution
function that describes the probability of a random variable taking certain values
procedure
function that does not return a value
process
program in execution which has its own memory space
processor
hardware component that executes instructions
production
deployment of a software that is used by users
program
set of instructions for a computer to execute usually in in binary format
programming language
artificial language for writing programs
programming paradigm
style of programming
progress bar
graphical user interface component for showing the progress of a task
Project Gutenberg
digital library of public domain books
project management
discipline of planning, organizing, and managing resources (time, money, people) to achieve specific goals
Prolog
logic programming language from the 1970s
prologue
initial set of instructions at the beginning of a function that typically includes stack setup, register saving, and other preparations for the function’s execution
Prometheus
software for aggregating metrics from various services; designed to run on one server
promise
JavaScript object representing the eventual completion or failure of an asynchronous operation
prompt (browser)
JavaScript component for interacting with the user
prompt (ChatGPT)
input from the user in a chatbot conversation
proof of work
consensus mechanism where the miner must solve a puzzle to add a block to the blockchain
property
variable that is accessed like an attribute but is actually a method
proportional typeface
typeface where the width of characters varies
propositional calculus
branch of logic that deals with propositions and their relationships
proprietary software
software that is not open source
protocol
set of rules for communication between two entities
protocol buffer, protobuf
binary file format developed by Google
Protractor
e2e testing framework for Angular
proxy server
server intercepting requests and forwarding them to the appropriate servers and then back to users with the goal of load balancing, security, and caching
ps
command for listing processes in Unix
pseudorandom number generator
algorithm that generates a sequence of numbers that appear random, but are actually deterministic
psql
command for interacting with a PostgreSQL
public domain
intellectual property that is not protected by copyright; license which allows sharing and adapting a work without any restrictions
public key
key that is shared publicly; cf. private key
public method
method that can be called from outside the class where it is defined
pull (git)
operation in a git which fetches and merges changes from a remote repository
pull request
request to merge a branch into another branch; cf. merge request
pumping lemma for regular languages
lemma that says that all sufficiently long strings in a regular language have a substring that can be repeated an arbitrary number of times to produce a new string that is also part of the language; the lemma is used to prove that a language is not regular
punctuation
symbols used in writing to separate sentences and their elements to clarify meaning; e.g. comma, period, question mark, etc.
Puppet
configuration management tool
Puppeteer
Node.js library for controlling headless Chrome
push (git)
operation in a git which sends changes to a remote repository
push (stack)
operation that adds an element to a stack
pushdown automata
type of finite automata with a stack that can be used to store data
PWA, progressive web app
web app that uses modern web capabilities and APIs to deliver an app-like experience
PyCharm
IDE for Python
pypy
Python implementation written in Python
Pydantic
Python library for data validation and settings management
pySpark
Python API for Spark
pytest
Python testing library
Python
dynamically typed programming language
PyTorch
machine learning framework for Python
Q
high-level, general-purpose programming language used mainly in finance for time series analysis
QA, quality assurance (software development)
process for ensuring quality of a software
QA, question answering (machine learning)
task of answering a question based on a given context
QEMU, quick emulator
virtualization software
Qt
cross-platform framework and toolkit for developing GUI applications
quadratic probing
hashing technique that uses a quadratic function to find the next available slot in a hash table
quadratic time
time complexity of an algorithm that is proportional to the square of the size of the input
quadtree
tree in which each internal node has exactly four children used in spatial indexing
quadword, qword
data type used to represent 64 bits or 8 bytes of data, often used for storing large integers, memory addresses, and floating point numbers in assembly
quant
quantitative analyst
quantified self
movement of people tracking personal data; e.g. health, sleep, etc.
quantifier
logical operator that binds a variable in a logical formula; e.g. and
quantitative analysis
analysis of numerical data; e.g. stock prices, sales, etc.
quantization
process of converting a continuous signal into a discrete signal
quantum computing
field of computing that applies principles of quantum physics to information theory and computation
qubit
quantum bit, the fundamental unit of quantum information in quantum computing
query
request for information from a system
query language
programming language for querying data
query optimization
process of choosing the most efficient way to execute a query
queue
data structure that stores data in FIFO manner
quick sort
recursive algorithm for sorting lists
quorum
minimum number of votes required for a decision to be valid
qutebrowser
web browser focused on keyboard navigation and minimalism which uses Qt and Python for development and Vim key bindings
QWERTY
standard keyboard layout
QWERTZ
keyboard layout used in Central Europe
R, rlang
programming language for statistical computing
RabbitMQ
message broker
race condition
error that occurs when the timing or sequence of processes’ execution leads to incorrect or unexpected behaviour
rack (hardware)
physical frame or enclosure for mounting multiple electronic equipment modules, commonly used in server and networking installations
radio button
GUI element that allows the user to select one option from a list of options
radix sort
sorting algorithm that classifies data based on the digits of the numbers from the least significant digit to the most significant digit and is efficient for sorting large sets of data with a limited range of possible values
RAG, retrieval augmented generation
using a relevant document prepended to the prompt to improve the results of chatbot
RAID, redundant array of independent disks
storage technology that combines multiple disks into a single logical unit
RAID0
TODO
RAID1
storage technology that mirrors data across two or more disks for redundancy
RAID2
RAID configuration using Hamming code error correction rarely used in practice
RAID5
TODO
RAM, random access memory
memory that can be accessed randomly
random forest
machine learning architecture that uses an ensemble of decision trees
random generator
algorithm that generates a sequence of numbers that cannot be predicted
random search
random combination of hyperparameters are used to find the best solution
random variable
variable whose possible values are numerical outcomes of a random phenomenon; e.g. the number of heads in 10 coin flips
ransomware
malware that encrypts data and demands a ransom from the victim
Raspberry Pi
small computer used in IoT
raster graphics
representation of graphical components as a collection of pixels
raster image
see bitmap image
RAW
image file format storing unprocessed data from a digital camera
rax
x86 CPU register used as the general-purpose accumulator register
rbp, base pointer register, RBP, register base pointer
x86 CPU register commonly used for addressing variables on the stack in function prologues and epilogues
rbx, rcx
x86 CPU register used as a general-purpose register for data storage and manipulation
rc suffix, run commands
Unix configuration file suffix for running commands at startup
rdi
x86 CPU register used for passing the first argument to a function in the calling convention of some operating systems
rdx
x86 CPU register used for various purposes, including as a general-purpose register and for holding the high part of a dividend in integer division operations
React
JavaScript web framework developed by Facebook
React component
UI component in React
React hook
React functions (or API) for directly using state and lifecycle features from function components, usually starting with use
React Redux
method to share global state in React web app
README
plain text file that contains information about a software; usually part of its repository
real time
system that responds to events immediately
recall
the ratio of retrieved relevant items and all relevant items; also true positive / (true positive + false negatives)
recaptcha, reCAPTCHA
CAPTCHA service by Google
reciprocal
reciprocal of a number x is 1/x
recommendation engine
see recommendation system
recommendation system, recommender system
system that recommends items to users based on their preferences; cf. collaborative filtering
recursion
technique of solving a problem by solving a smaller part of the same problem
recursively enumerable grammar
TODO
recursively enumerable grammar, RE grammar
grammar that can generate all recursively enumerable languages; also known as type-0 grammar or unrestricted grammar
red black tree
data structure that is a binary search tree with additional constraints on the nodes
Red Hat
company that develops Linux distributions and other software
Red Hat Enterprise Linux, RHEL
Linux distribution from Red Hat with long-term support, paid subscription and focus on stability
red zone
region in memory in the x86 reserved for temporary data storage for leaf functions
Reddit
social media platform
redirect
process of forwarding a request to another URL and potentially another server
Redis
key-value store
redo
operation that repeats the last undo operation
Redshift
data warehouse service from AWS
reduce
higher-order function that takes a binary function, a starting value (accumulator) and a list, and applies the function to the accumulator and each element of the list
redundancy
fault tolerance technique where multiple copies of data are stored
Redux store
global state in React Redux
refactoring
technique for changing (ideally improving) the design of existing code without changing its behaviour
register
small, fast memory location within the CPU that temporarily hold data and instructions during processing
registry
database of configuration settings in Windows
regression analysis
estimates the expected value of a numeric attribute when all the input attributes are fixed
regression model
model which predicts one or more numeric quantities e.g. a temperature or a location; cf. classification
regression testing
process of testing a software after a change to ensure that the change did not break the software
regular expression, regex, regexp, RE
pattern for matching strings written as a string; cf. regular language
regular grammar
formal grammar where all rules are of the form A -> aB or A -> a where A and B are non-terminals and a is a terminal
regular language
formal language that can be described by a regular grammar
regularization
technique for reducing overfitting; e.g. L1 and L2 regularization
reinforcement learning, RL
machine learning technique where an agent learns by interacting with an environment without a specific goal but by maximizing a reward for desired behaviour
relational database management system, RDBMS
database and related utilities for storing and retriewing (querying) tabular data
relative path
path that is relative to the current directory; e.g. ../../foo.txt
release
version of a software that is ready for production
ReLU, rectified linear unit
activation function used in neural networks which is defined as max(0, x)
remote desktop
desktop environment that is running on a remote server and can be accessed from a client
remote repository
repository that is stored on a remote server
replica
copy of a database or service that is used to increase availability
repository, repo
decentralized storage location for version control system
research software engineer, RSE
software engineer building software for other researchers
resilient distributed dataset, RDD
data structure that represents a collection of records that can be partitioned across nodes in a cluster and can be operated on in parallel
ResNet, residual network
type of convolutional model
ResNet32
ResNet with 32 layers
resolution
number of pixels in a display, image or video usually expressed as the number of pixels in the horizontal and vertical dimensions; e.g. 1920x1080
responsive web design
method of designing web apps that adapts to different screen sizes
REST API
API built on HTTP 1.1 protocol based on the principles of REST
REST, representational state transfer
software architecture for web services
RESTful API
set REST API
reStructuredText
markup language for writing technical documents
reStructuredText, reST
markup language for writing Python documentation
resumption
continuing an operation or process after a pause or interruption
return
keyword that returns a value from a function
reverse engineering
process of analyzing a software or hardware to understand its design and functionality, often for replication or enhancement
revision
see commit
RFC, request for comments
document proposing a standard
rFlags, register flags
CPU register in x86 that holds various flags that indicate the status and results of arithmetic and logical operations
RGB, red green blue
color model where each basic color is represented by one byte
RGBA, red green blue alpha
color model where each basic color is represented by one byte and the alpha channel is used for transparency
right join
join that includes all rows from the right table and only matching rows from the left table, when there is no match, the left columns are filled with NULL
ring buffer
data structure that is a queue with a fixed size that overwrites the oldest element when full
RIP, register instruction pointer
CPU register in x86-64 indicating the location of the next instruction to execute
ripgrep, rg
command-line tool for searching files using regular expressions; cf. grep, ack
RISC, reduced instruction set computer
computer with a small set of simple instructions
RISC-V
open source RISC instruction set
RLHF, reinforcement learning with human feedback
technique for improving on pure LLM where a human (or a better model) picks a better answer from a selection
RNN, recurrent neural network
model architecture for modeling sequential data with layers that are connected to themselves which allows the model to remember previous states
ROC curve, receiver operating characteristic curve
graph) that shows the performance of a binary classifier at different thresholds; the curve is obtained by plotting the true positive rate (also known as recall) along the y-axis against the false positive rate
roll back
undo a transaction or a deployment
root (linguistics)
morpheme that carries the main meaning of a word; e.g. overbooked, underachiever
root (OS)
user with the highest level of privileges in Unix systems
root directory
directory that contains all other directories denoted as /
root node
node with no parent
rotating file
set of files to store recent information where the oldest file is deleted when a new file is created
router (network)
device that forwards packets between networks
router (web app)
mechanism for mapping URLs to views
routine
set of instructions that performs a specific task in a program; generic term for function, method, procedure
routing table
data table stored in a router or network host that lists the routes to particular network destinations
RPC, remote procedure call
protocol that allows a program to cause a subroutine or procedure to execute in another address space (commonly on another computer on a network) without the programmer explicitly coding the details for this remote interaction
RPS, request per second
metric for measuring the performance of a server
RSA, Rivest–Shamir–Adleman
cryptographic algorithm for public key encryption
RSI, repetitive strain injury
injury caused by overuse of the hands and arms; e.g. by typing or using a mouse
RSP, Register Stack Pointer
CPU register that points to the top of the current stack frame in x86
RDF, resource description framework
W3C standard for describing resources on the web in the form of triples: subject, predicate, object
RSS, Rich Site Summary, RDF Site Summary, Really Simple Syndication
XML format for publishing updated content on web
RSVP, répondez s’il vous plaît
request for a response to an invitation (e.g. for a meeting)
rsync
CLI program for copying files between two locations effectively by only transferring the differences
Unison
file synchronization program similar to rsync
RTF, rich text format
file format for storing formatted text
RTFM, read the fucking manual
initialism and internet slang
RTL, right to left text
text (or script) written from right to left; e.g. Arabic, Hebrew
rubber duck debugging
method of finding a solution to a problem just by articulating it in spoken or written form
Ruby
dynamic open source programming language
Ruby on Rails
web framework written in Ruby
rule 31
principle in online communities stating that if it exists, there is internet content of it
rule-based MT, RBMT, rule-based machine translation
machine translation approach relying on manually predefined linguistic rules
ruliad
abstract object representing the result of following all possible computational rules in all possible ways
runtime
instructions executed while a program is running necessary for the proper execution of the code; e.g. garbage collector in Python
runtime code
code required to implement runtime system of a programming language
runtime error
error that occurs during runtime and which usually can’t be detected beforehand
Rust
low-level programming language designed to be memory-safe
rustacean
mascot of Rust
rxvt
terminal for X11
S
programming language for data analysis; cf. R
Sentry
self-hosted and cloud-based service for application performance monitoring and error tracking
S3 (R)
framework for OO in R
S3, simple storage service
cloud storage service by AWS
SaaS, software as a service
method of software delivery and licensing in which software is accessed online
Safari
web browser by Apple
Salesforce
CRM platform and company that develops it
salt
random data used as an additional input to a hash function
Samba
software suite for file sharing
Samsung
South Korean company that manufactures electronics
sandbox
isolated environment for testing either separated from production or restricted in terms of resources
sanity check
quick test to confirm that a system is working properly or data quality is reasonable
SAP, systems, applications and products
software company developing ERP systems
SAS, statistical analysis system
software suite for advanced analytics
Sass
preprocessor scripting language which is transpiled into CSS
SAT, satisfiability problem
problem of determining if there exists an interpretation that satisfies a given Boolean formula
SATA, serial AT attachment
bus interface for connecting mass storage devices
sbt, Scala build tool
build tool for Scala
Scala
open source functional programming language that runs on the JVM
scalar
single value of a particular type; e.g. integer, float
scanf
C function for reading formatted input
scanner
input device for digitizing documents and images
scheduler
process that decides which process to run next
scheduling
process of assigning resources to tasks
schema
specification of database structure (format of tables, types of columns, etc.)
Scheme
functional programming language
Scikit learn, sklearn, scikit
Python library for machine learning
Scintilla
open source code editing component
SciPy
Python library for scientific computing
scope
part of a program where a name binding is valid
Scrapy
Python library for web scraping
screen
display device for a computer
screen lock
program that prevents unauthorized access to a computer
screen reader
program that reads text displayed on a screen used e.g. by visually impaired users
screen, GNU screen
terminal multiplexer
screencast
digital recording of computer screen
screensaver
program that displays an (animated) image when a computer is idle
screenshot
digital image of computer screen
script
program written in a scripting language; synonymous with program in some contexts
scripting language
programming language used to manipulate, customize and automate existing systems; usually interpreted; e.g. AWK, Bash, Lua, etc.
scriptio continua
text or language without spaces between words
scrolling
moving displayed text or graphics in a particular direction
scrum
agile project management framework focused on adaptability and iterative progress through fixed-length sprints
scrum master
person responsible for facilitating the scrum process
SCSI, small computer system interface
set of standards for physically connecting and transferring data between computers and peripheral devices
SD card, secure digital card
flash memory storage device
SDK, software development kit
toolikit for developing software for a specific platform
Seaborn
Python library for data visualization
search engine
software system that is designed to carry out search in a large collection of documents, e.g. web
SECAM, Séquentiel couleur à mémoire
analog television color system
sector
smallest unit of storage on a disk
security by obscurity, security through obscurity
security through secrecy of design or implementation; e.g. sharing a link with randomly generated URL
security vulnerability
weakness in a system that allows an attacker to compromise the confidentiality, integrity or availability of the system
sed, stream editor
CLI Unix utility for text processing
seed funding
first money that a startup receives used usually for product development and market research
seed, random seed
value used for initialization of random generator function
seek
low level method for jumping to a position in a file
segmentation
memory management technique that divides a computer’s primary memory into segments
segmentation fault, segfault
runtime error caused by an invalid memory access
SELECT
SQL statement for querying relational database for selecting columns or rows based on the query
selection sort, select sort
sorting algorithm that repeatedly finds the minimum element and puts it at the beginning
Selenium
Python library for web scraping
self
keyword in some programming languages that refers to the current object
self balancing tree
tree data structure that automatically keeps its height small to guarantee fast operations
self hosting
running a service on your own (virtual) server
self join
join of a table with itself
SELinux
security module for Linux kernel
semantic versioning, semver
convention for versioning software in the form of MAJOR.MINOR.PATCH where MAJOR number is incremented when backward incompatible changes are made, MINOR is incremented when new functionality is added in a backwards-compatible manner, and PATCH is incremented when backwards-compatible bug fixes are made
semantics (linguistics)
study of meaning in language; also level of language carrying meaning
semaphore
synchronization primitive used to control access to a shared resource in the context of concurrency
semiconductor
material with electrical conductivity between that of a conductor and an insulator
semicolon
punctuation mark ;
sense vote
preliminary vote to determine the sense of the meeting
sensitivity
see recall
sentence alignment
NLP technique for aligning sentences in multilingual texts which are translations of each other on document level resulting in parallel corpus
SEO, search engine optimization
process of improving the visibility of a web page in search engine results
separation of concerns
general principle for software development
sequence-to-sequence model
type of ML model used for transforming a sequence of elements from one domain into another commonly used in NLP e.g. for machine translation
sequential data
data that is stored in a sequence and the order is an inherent property of it
sequential search
technique for finding an element in a list by checking each element in order
serial port
hardware interface for serial communication
serialization
process of converting data structures or objects into a format that can be stored or transmitted
series A
first round of venture capital financing where the money raised are usually used for developing a business plan and to increase revenue
series B
second round of venture capital financing where the money raised are usually used for scaling the business and to provide competitive salaries
series C
third round of venture capital financing where the money raised are usually used for expanding into new markets and acquisitions
server
computer which is connected to a network and provides services to other computers
serverless
cloud computing execution model where the cloud provider dynamically manages the allocation of machine resources
servlet
Java programming class used to extend the capabilities of servers
set (data structure)
data structure that stores unique elements
setter (OOP)
method for setting a value of a property
setuptools
Python library for packaging
SGD, stochastic gradient descent
method for efficiently finding weights for a model
SGML, standard generalized markup language
markup language for defining document types
shader
program that runs on a GPU to compute rendering effects (lighting or position of vertices and pixels) which can be used for general programming; cf. GPGPU
Shannon’s game
game to study the redundancy and information content of the English language
sharding
database partitioning technique where each partition is stored on a separate server
shared library
library that is loaded at runtime
Sharepoint
collaboration platform by Microsoft
shebang
in Unix, the first line of a script that tells the shell which interpreter to use to execute the script; e.g. #!/usr/bin/python
shell script
a set of commands for shell stored in a file; cf. program
shell sort
sorting algorithm that sorts elements far apart from each other and then reduces the gap between elements to be compared
shell, sh
program that interprets and executes commands entered by the user in terminal
shift
operation that moves all bits in a binary number to the left or right and which can be used for multiplication or division by powers of 2
Shift key
modifier key that is usually used to uppercase letters
Shiny
R package for building interactive web apps
Shopify
SaaS e-commerce platform
short option
command option that is a single character; e.g. -h
sibling
node that has the same parent
side effect
change made by a function that is not part of its return value and remains after the function has finished executing; e.g. modifying a global variable or writing to a file
sigmoid
non-linear function with a characteristic S-shaped curve; see also logistic function
signal
message sent to a process to notify it of an event
SignalR
library for ASP.NET for real-time web functionality
signed integer
integer that can be negative or positive
significance
measure of how likely it is that an effect is not due to chance
significand
see mantissa
SIGSEGV, segmentation fault
signal sent to a process when it accesses a memory location that is not allowed
SIM card, subscriber identity module card
removable card used in mobile devices which securely stores IMSI
SIMD, single instruction, multiple data
parallel computing technique where a single instruction is executed on multiple data points
similarity search
search for similar objects in a database or dataset
Simula
the first object-oriented programming language which introduced objects, classes, inheritance, coroutines and garbage collection
simulated annealing
optimization technique inspired by the process of annealing in metallurgy used to find an approximate global optimum in a large search space by iteratively making small random changes to a solution and accepting those changes according to a specific probability that decreases over time
single responsibility principle, SRP
principle in which a module should be responsible to one and only one actor each class should have only one reason for rewriting
singleton
class with its only instance or set with only one element
singleton pattern
design pattern where a class can only have one instance usually implemented by hiding the constructor
Siri
voice assistant by Apple
skip list
data structure for storing a sorted list of items using a hierarchy of linked lists for faster search
skip-gram
algorithm in NLP used for learning high-quality word embeddings
Slack
commercial software for instant messaging
slice (video)
subdivision of a video frame used in video compression, self-contained, able to be decoded independently of other slices, which is useful for error recovery and parallel processing
slider
GUI element for selecting a value from a range
slug
abbreviated portion of a webpage’s URL that uniquely identifies it. e.g. https://www.mysite.com/category/post-name has slug post-name
Smalltalk
object-oriented programming language from the 1970s
smart contract
program that runs on a blockchain and can be used to automatically enforce an agreement
smoothing
technique in statistics for making a dataset less noisy or more comprehensible
smoke test
see sanity check
SMS, short message service
protocol for sending text messages over mobile networks
SMTP, simple mail transfer protocol
protocol for transmitting emails
SMTPS, simple mail transfer protocol secure
secured version of SMTP using TLS
snake case
naming convention for identifiers where words are separated by underscores; e.g. num_of_students
snap (Linux)
package format for Linux
snapshot
copy of a database (or a dataset at a specific point in time
Snowflake
Tor pluggable transport
SOAP, simple object access protocol
protocol for exchanging XML messages over HTTP
socat
CLI tool that establishes two bidirectional byte streams and transfers data between them
social network
application that allows users to connect with each other over internet, share multimedia content, etc.
socket (operating system)
file descriptor used e.f. for inter-process communication
socket.IO
JavaScript library for real-time web apps
SOFSEM
international conference on current trends in theory and practice of computer science originated in 1974 in Czechoslovakia
softmax
non-linear function that exponentiates numbers and normalize them to sum into 1.0; used to make the layer output a probability distribution
software
complex program consisting of source code and data, UI and documentation
software 2.0
term coined by Andrej Karpathy to distringuish the traditional software development (manually writing a code) and the approach of machine learning—letting the computer learn on its own from training data
software architecture
high-level structure of a software
software design
process of defining the software architecture
software development
process of creating software, programming
software engineering
see software development
SOLID
set of design principles used in object oriented programming; S for single responsibility principle, O for open-closed principle, L for Liskov substitution principle, I for interface segregation principle and D for dependency inversion principle.
sort, sorting
operation with data sequence which re-arranges its elements in ascending or descending order
sound card
hardware device that can play and record sound and convert between analog and digital signals
source code
see code
source control
see version control
source language
language from which a translation is made
SPA, single page application
web app that loads a single HTML page and dynamically updates the page as the user interacts with it
space
set of points
spam
unsolicited email messages
Spark
framework for distributed computing built on top of Hadoop
SPARQL
query language for RDF data
sparse matrix
matrix in which most of the elements are zero
sparse vector
vector in which most of the elements are zero
spawn
method of creating a new process from an existing one
specification
document that describes a system to be developed: its requirements properties, user interface, etc.
specificity
the proportion of actual negatives that are correctly classified; calculated as TN / (TN + FP)
speech recognition
task of converting digial audio signal of speech into text
spell checker
software that checks the spelling of words in a text
spellchecker
software tool for checking and correcting spelling errors in text
Sphinx
Python documentation generator built upon Jinja and Docutils
splice
method of inserting or removing elements from an array
split tunneling
VPN configuration where only traffic destined for the private network is sent through the VPN and other traffic is sent through the regular connection
spline
curve defined by control points in vector graphics
splint
static analysis tool for C
spreadsheet
software or a data structure for working with tabular data
Spring
Java framework
sprint
interval in agile development during which a team works intensively on a set of tasks; usually 1–4 weeks long
spyware
malware that collects information about a user without their knowledge
SQL injection
security vulnerability in web apps that allows an attacker to execute arbitrary SQL code on the server
SQL, structure query language
domain specific language for managing and manipulating relational databases
SQLAlchemy
Python ORM
SQLite
single file database system
square brackets
brackets [ and ]
square root
number that when multiplied by itself gives the original number
SSD, solid state disk
storage device based on flash memory
SSH key
public key used for SSH authentication
SSH, secure shell
protocol and a program for secure communication between two computers over an insecure network
SSL, secure socket layer
protocol for establishing an encrypted connection between a client and a server
SSO, single sign-on
mechanism for logging in to multiple web apps with a single set of credentials
SSR, server side rendering
technique of rendering a web app on the server and sending the result to the client as HTML
st, simple terminal
terminal for X11 from suckless
stack
data structure that operates in LIFO manner
stable sort
sorting algorithm that preserves the order of elements with equal keys
stack frame
data structure used to represent the state of a function or subroutine during execution typically including information like local variables and return addresses
stack overflow
bug that occurs when a stack is full and a new element is pushed onto it
stack trace
list of function calls that led to the current point of execution
StackOverflow
online platform for asking and answering questions about programming
stale link
hyperlink that leads to an unaccessible web page
standard
specification that describes how a system should behave or be structured
standard deviation
measure of how spread out a set of values is computed as the square root of the variance
standard error output, stderr
output stream for error messages in Unix
standard input, stdin
input stream for reading data in Unix systems
standard library
set of libraries that are distributed with a programming language
standard output, stdout
output stream for writing data in Unix systems
startup
newly founded company
statement
syntactic unit of a programming language that expresses some action to be carried out; e.g. x = 1 or INSERT INTO users VALUES (1, 'John')
static analysis
analysis of a program without executing it
static linking
when external libraries are included in a program at compile time by the linker
static binding
see early binding
static memory allocation
memory allocation where the size of the allocated memory is known at compile time
static method
method that is not bound to an object
static site
website that doesn’t contain any dynamic content (e.g. JavaScript code)
static site generator
software that generates a static site from a set of templates in plain text
static type checking
type checking that is performed as static analysis
statically typed programming language
programming language that requires type annotations of variables
statistical machine translation, SMT
machine translation approach that uses n-gram models to translate text from one language to another
statistical model
model that describes a system using statistical methods
statistics
branch of mathematics that deals with data analysis
stem
part of word without suffix; e.g. booking, booked, books
stemming
NLP technique that removes the suffixes from words to reduce the size of the vocabulary or as a kind of word normalization
stochastic system
system that has some randomness in it
Stockfish
chess software
storage engine
part of database that is responsible for storing and retrieving data from the disk
stored procedure
function that is stored in a database to be executed later
streaming
method of data processing where data is processed as it arrives and not as a whole
Streamlit
Python library for building data science web apps
stress testing
type of testing that checks the system under heavy load
string
data structure for representing text
strong type system
type system that does not allow implicit type conversions
struct
C library for working with structured data
structural patterns
group of design patterns that deal with the composition of classes and objects
structured analysis
software design method that uses data flow diagrams to describe a system
structured data
data that is organized in a certain way and can be easily processed
structured programming
paradigm that promotes the use of well-organized, modular code composed of functions or subroutines
Stuxnet
computer worm discovered in 2010 known for targeting industrial control systems
subdomain
part of a domain; e.g. www in www.example.com
subprocess
process that is spawned by another process
subroutine
specific type of routine which help avoid code duplication; two types: function and procedure; the term emphasizes that it is a subordinated part of a program
substring
part of a string
subtree
tree that is a part of another tree
suckless
community of open-source developers that create minimalistic software; e.g. st, dwm
sudo, superuser do
superuser command in Unix systems that allows to run predefined commands as the root or another user
suffix
ending of a string or word; e.g. .txt in file.txt, rc in .bashrc, ing in running, etc.
sum
result of adding two or more numbers
Sun Microsystems
company that developed Java
superclass
see parent class
supercomputer
computer with high level of performance
superuser
user with the highest level of privileges in Unix systems
supervised learning
machine learning task where the model is trained using labeled data
supremum
least upper bound
SVG, scalable vector graphics
XML-based file format for representing vector graphics
SVM, support vector machine
machine learning model for classification and regression
SVN, Subversion, svn
open source software for versioning and revisions of source code developed by Apache
Swagger
framework for documenting REST APIs
swapping
process of moving memory pages between RAM and disk
SWEBOK, software engineering body of knowledge
IEEE standard for software engineering which describes generally accepted knowledge about software engineering
Swift
programming language developed by Apple running on LLVM
Swing
Java GUI toolkit
switch (statement)
statement that allows to select one of many code blocks to be executed
swipe
TODO
SWOMPT, subject-verb-object-manner-place-time
word order in English
Symfony
PHP framework
synchronization (multiprocessing)
process of coordinating the execution of multiple threads or processes
syntactic sugar
syntactic shortcut that makes the code easier to read and write but does not add any new functionality; e.g. x++ vs. x = x + 1
syntax
set of rules that defines the combinations of symbols that are considered to be correctly structured programs in a given programming language
syntax highlighting
feature of a UI that highlights the syntactic elements of a programming language to make the code easier to read
SysML, systems modeling language
UML for systems engineering
system call, syscall
request to an operating system to perform a low-level operation; e.g. opening a file, reading a file, etc.
systemd
Linux init system
systemd timers
systemd unit for scheduling tasks
SYSTRAN, SYStem TRANslation
machine translation software
T-score
statistical measure used in a variety of contexts, including hypothesis testing in statistics
TFLOPS, teraflops
equal to one trillion flops per second
TTL, time to live
a mechanism which limits the lifespan of data in a computer or network
t-test
parametric test for comparing the means of two samples
T9
predictive text technology for mobile phones
table (database)
collection of related data held in a structured format within a database
table (spreadsheet)
cells organized into rows and columns
tableless web design
web design method that avoids using HTML tables for layout control
tablet
portable computer with a touchscreen and without a keyboard
tabular data
data represented in the form of a table–in rows and columns
tabular model
model which predicts one column of a table based on data in other columns of the table
tabulator, tab
whitespace character that advances the cursor to the next position usually located at every 4th or 8th column, also the corresponding key on the keyboard
TAC, traffic acquisition costs
money paid to other companies for using a company’s product; e.g. Google pays Apple to be their default search engine
tagset
a set of PoS tags used by a tagger
tail
command that prints the last lines of a file
Tailwind CSS
CSS framework
tanh, hyperbolic tangent
non-linear function used as activation function in neural networks
tar
Unix command for archiving files
target language
language into which a translation is made
Tatoeba
parallel corpus aiming to provide example sentences in multiple languages
TB, terabyte
10^12 bytes or 1,000 gigabytes
tc, traffic control
Linux program for controlling network traffic
Tcl
high-level, interpreted dynamic programming language
Tcl/Tk
GUI toolkit for Tcl
TCP, transmission control protocol
network protocol for reliable communication between computers on internet
tcpdump
CLI packet analyzer for network traffic monitoring
TDD, test-driven development
software development in which unit tests are written before the code itself
Teams, MS Teams
software for communication developed by Microsoft
tech debt, technical debt
software development metaphor for the extra work that arises when code that is easy to implement in the short run is used instead of applying the best overall solution
telephony
technology for voice communication
telnet, teletype network
network protocol for remote terminal access
templating engine
software that combines templates with a data model to produce documents
temporal decomposition
breadkign down a system or dataset into components or elements based on time; used in time series analysis
tensor
[multidimensional] array
TensorFlow
machine learning library developed by Google
TER, translation error rate
metric used in machine translation to calculate the number of edits needed to change automatically translated text to match a reference text
terminal
program that provides a text-based user interface to an operating system; not to be confused with shell
terminal (NLP)
symbol that cannot be expanded further
terminal multiplexer
software that allows multiple terminal sessions to be accessed simultaneously in a single window
terminfo
library and database of terminal capabilities that enables programs to use terminals in a device-independent manner
ternary operator
operator that takes three arguments; e.g. a ? b : c
Terraform
software for managing infrastructure as code
tessellation
the covering of a surface using one or more geometric shapes (tiles) with no overlaps and no gaps; see also tiling
test set
part of the dataset which is used only for the final evaluation of a model
test suite
collection of test cases for testing
testing
process of evaluating a software
TeX
programming language for typesetting
text classification
NLP task of assigning a document to one or more categories
text format
file format that stores data as plain text
text mining
NLP task of extracting useful information from unstructured text
TF-IDF, term frequency-inverse document frequency
statistical measure used to evaluate how important a word is to a document in a collection or corpus
Thanos
complex software for monitoring large and complex systems based on Prometheus
The Jargon File
glossary of slang terms used by programmers
Theano
machine learning library developed by University of Montreal
thesaurus
reference work that lists words grouped together according to similarity of meaning, often providing synonyms and antonyms
thread
part of a process which executes instructions
thread safety
property of a software that guarantees correct execution in a multithreaded environment
throughput
amount of work done in a given time
thunk
piece of code that does some delayed work; in React Redux context thunks are patterns of writing functions with logic inside that can interact with a Redux store’s dispatcher and other methods
ticket
see issue
Tidyverse
collection of R packages for data science
TIFF, tagged image file format
file format for storing raster graphics
tiling
see tessellation
tiling window manager
window manager which automatically arranges windows on a screen (or multiple screen) in a tiling fashion
time complexity
measure of the amount of time taken by an algorithm to run as a function of the length of the input
time series
sequence of data points indexed in time order
timestamp
sequence of characters or encoded information identifying when a certain event occurred, usually in the form of Unix time or ISO 8601
timm, torch image models
library for PyTorch models
Tkinter
GUI toolkit for Python
TLD, top-level domain
last part of a domain name; e.g. .com, .org, .net, .edu
TLDR, too long didn’t read, tl;dr
summary of a long text
TLR, technology readiness level
measure of the maturity of a technology from research to deployment
TLS, transport layer security
cryptographic protocol for secure communication
tmux
terminal multiplexer
TMX, translation memory exchange
XML-based format for exchanging translation memories
TODO, to do
when used as a comment in source code it means that something needs to be implemented
token (natural language processing)
word or a piece of a word separated by whitespace or punctuation
token (network)
unit of data that is transmitted over a network
token bucket
algorithm for controlling network traffic allowing flexible bandwidth management
tokenization
process of splitting texts into tokens
TOML, Tom’s obvious minimal language
text format for configurations
tooltip
UI component in the form of a small pop-up window that appears when a user pauses the mouse pointer over an element
top
CLI tool for monitoring system resources
top-down analysis
approach that starts with the highest level of conceptual detail and works down to the specifics
topic modeling
NLP task of discovering topics in a text corpus
Tor
network for anonymous communication developed by the US Navy
TOTP, time based one time password
method for two factor authentication using a password which expires quickly
touchpad
input device for moving a cursor on a screen by sliding a finger on a surface
TPU, tensor processing unit
special processor designed for machine learning developed by Google; see also GPU
trackball
input device for moving a cursor on a screen by rotating a ball
trackpoint
input device for moving a cursor on a screen by pressing a stick
Trados
computer-assisted translation software suite widely used in the translation industry
training
see fit
training data
see training set
training set
part of dataset used for fitting the model; doesn’t contain validation set
transaction
sequence of database operations which are executed as a single unit which can be cancelled in the case of failure
transactional data
event information such as sale of an item, issuing of an invoice, etc.
transfer learning
using a pretrained model for a task different to what it was originally trained for
transfer rate
measure of the speed of data transfer
transformer
neural network architecture based on attention mechanism
translation (geometry)
transformation that moves every point of a figure by the same distance in a given direction
translation memory
database of translations used in computer assisted translation
transpilation
process of converting source code from one programming language to another; e.g. TypeScript to JavaScript
tree (data structure)
data structure that is a collection of nodes connected by edges with uni
tree (graph theory)
graph without cycles
tree height
number of edges on the longest path between a root and a leaf
tree shaking
process of removing unused code from a bundle
tree traversal
process of visiting every node in a tree
trie
type of search tree used for locating specific keys from within a set
trigram
n-gram of size 3
Troyan horse
type of malware disguised as legitimate software used to gain access to a user’s system
true negative
data point which is negative and correctly predicted by a model as negative
true negative rage
see specificity
true positive
data point which is positive and correctly predicted by a model as positive
true positive rate
see recall
truecase
the proper/original case of text
trunk
the main branch in a source control system
trunk-based development
source control branching approach where developers work in a single branch called trunk/master/main, and do not use other long lived branches
truth table
table that shows the output of a logic gate or a boolean function for all possible combinations of inputs
truthy
expression which evaluates to true in a boolean context
tshark
network protocol analyzer part of the Wireshark suite used for CLI-based packet analysis
TSV, tab separated values
text format for storing tabular data
tty, teletypewriter
device file in Unix systems that represents a terminal
TUG, TeX Users Group
non-profit organization for people who are interested in TeX and LaTeX
TUI, text-based user interface
user interface based on text; a keyboard is used for input and a terminal for output
tuple
immutable finite sequence of items; 2-tuple is called ordered pair or couple or tuple, 3-tuple is called a triple (triplet)
Turbo Pascal
Pascal compiler and IDE for DOS and Windows
Turing machine
mathematical model of computation that defines an abstract machine which manipulates symbols on a strip of tape according to a table of rules
Turing test
test of a machine’s ability to exhibit intelligent behaviour equivalent to or indistinguishable from that of a human
Turing-complete system
system that can perform any computation
Twig
templating engine for PHP
Twilio
cloud communications platform as a service
Twitch
live video streaming platform
Twitter
social network and microblogging service
two factor authentication, 2FA
more secure authentication which adds another layer of security with requiring a second independent way of authentication (with SMS or a mobile application or email
TXT record
DNS record that contains text information
type checking
process of verifying and enforcing the constraints of type system
type coercion
converting a value from one data type to another; e.g. 4 to "4" or 4.0
type signature
description of the input and output of a function
type system
set of rules that assigns a property called type to the various constructs of a computer program such as variables, expressions, functions or modules
type-0 grammar
see recursively enumerable grammar
type-1 grammar
see context sensitive grammar
type-2 grammar
see context free grammar
type-3 grammar
see regular grammar
typeface
set of glyphs that share common design features
TypeScript, TS
programming language which is a superset of JavaScript
Ubuntu
Linux distribution
UDP, user datagram protocol
network protocol for unreliable communication between computers
UI, user interface
way for humans to interact with a computer programs; can be graphical or text-based
ultra high definition, UHD
video resolution of 3840x2160 pixels
UML, unified modeling language
modeling language for software and systems
unary operation
operation with a single operand; e.g. not
underfitting
situation when a model is too simple to capture the underlying structure of the data
undo
operation which reverts the last action
unicameral script
script that has only one case for each letter as opposed to scripts like Latin or Cyrillic which have both uppercase and lowercase forms
Unicode
standard enumerating symbols used in writing systems and assigning a unique number for each
union
set operation which creates a new set that contains all the elements that are in at least one of the original sets
uniq
Unix utility which filters adjacent duplicate lines from standard input
unit test
testing unit which tests a subroutine
universal approximation theorem
mathematical proof that shows that a neural network can slove any mathematical problem to any level of accuracy
Unix
family of operating system with multitasking and multiuser features
Unix domain socket
socket which is used for communication between processes on the same host
Unix epoch
point in time defined as 00:00:00 UTC on 1 January 1970
Unix philosophy
set of software design principles based on Unix which emphasizes modularity and reusability and simplicity
Unix time
number of seconds that have elapsed since Unix epoch
unshift
operation that adds elements to the beginning of an array in some programming languages
unsigned integer
integer that can only be positive; cf. signed integer
unstructured data
data that doesn’t have a predefined data model or is not organized in a predefined manner
unsupervised learning
machine learning technique where the model is not provided with the correct answers but only with the raw data
UPDATE
SQL command which updates rows in a table
update operator
see inplace operator
upscaling
process of increasing the resolution of an image or video often using algorithms to add detail and reduce blur
upsert
database operation that updates an existing row if a specified value already exists (in a table) and inserts a new row if the specified value doesn’t already exist; portmanteau of update and insert
upvote
vote in favor of something
URI, uniform resource identifier
string that unambiguously identifies a resource
URL, uniform resource locator
reference to a web that specifies its location on a network
urxvt
fork of rxvt supporting Unicode
usability testing
process of testing a software with real users to see how easy it is to use, related to UX
USB, universal serial bus
standard that defines the cables, connectors and communication protocols used in a bus for peripherals
Usenet
network of newsgroups
user story
description of a feature from the perspective of the user
useradd
Unix command which creates a user account
userland
part of OS which is not part of the kernel
usermod
Unix command which modifies a user account
userspace
set of locations in memory which are used by processes and kernel modules
UTF16, unicode transformation format 16
variable width character encoding standard for Unicode compatible with ASCII using 16–32 bits per character; it’s more efficient than UTF8 for Asian languages
UTF8, UTF-8, unicode transformation format 8
variable width character encoding standard for Unicode compatible with ASCII using 8–32 bits per character
UUID, universally unique identifier
128-bit number used to identify information in computer systems; it is usually displayed as a sequence of 32 hexadecimal digits separated into five groups by hyphens
UUID3
UUID generated from a namespace and a name
UUID4
UUID generated randomly
uvicorn
HTTP server for ASGI applications
uWSGI
HTTP server
UX, user experience
overall experience and satisfaction a user has when interacting with a software
V8
JavaScript engine
Vagrant
software for building and managing virtual machine environments
validation set
part of dataset for training a model which is put aside (usually 20 %) and used to measure the accuracy of the model; the rest of the dataset is called training set
variable
container that holds information which has name and a value which can be changed during execution of a program
variance
measure of how far a set of numbers is spread out or the average of the squared differences from the mean
VB.NET
programming language which is a part of .NET
VBA, Visual Basic for Applications
Visual Basic implementation used in Microsoft Office
VBR, variable bit rate
property of audio codec which allows the bitrate to vary in time; cf. CBR
VBScript
programming language
vector (data type)
homogenous sequence of values of the same data type
vector (mathematics)
object that has a magnitude and a direction; cf. tensor
vector database
database that stores vectors and supports vector operations
vector graphics
representation of images as a collection of geometric primitives; cf. raster graphics
vectorization
process of converting an algorithm from operating on a single value at a time to operating on a set of values at one time to improve performance
velocity
number of points completed per each sprint
venture capital, VC
private equity financing provided to startup companies
verilog
hardware description language
vendor lock-in
situation where a customer is dependent on a vendor for products and services and cannot move to another vendor without substantial costs
version bump
increase of a version to a higher (semver) number; a dependency version can be bumped (up) as well
version control (system)
software for managing versions of source code
vertex
point where two or more lines meet; see also node
vertical scaling
improving performance by adding more resources to a single node; e.g. more RAM or CPU
vertical, vert, vertical format
text format where every token is on a separate line and linguistic information (e.g. PoS) is on the same line separated by a tab and structure elements (e.g. sentence and documents) are encoded as simple HTML elements
VGA, video graphics array
video display standard
Vi
modal text based editor from the 70s
VirtualBox
software for creating and managing virtual machines
Viber
instant messaging and VoIP application
video conferencing
videotelephony for groups
video game
game played on a computer or a special hardware
videotelephony
telecommunication technology for the transmission of audio and video between two or more participants in different locations
vignette
more detailed description of a software; cf. README
Vim
text based editor, alternative implementation of Vi
Vim golf
competition to solve a problem using the fewest number of keystrokes in Vim
Vim script
programming language used to extend Vim
vimdiff
CLI tool for comparing files in Vim
vimrc
Vim configuration file
virtual assistant
software that can perform tasks or services for an individual based on verbal commands
virtual machine
program that emulates a computer system or operating system within another system
virtual memory
memory management technique that allows an OS to compensate for physical memory shortages by temporarily transferring data from RAM to disk
virtualenv, virtual environment, venv
tool to create isolated Python environments with their own dependencies
virtualization
method of running multiple OS on a single computer by using a hypervisor
virus
malware that replicates itself
VisiData, vd
TUI for exploring and arranging tabular data
visitor pattern
design pattern that separates an algorithm from an object structure on which it operates
Visual Basic
programming language
Visual C++
programming language from Microsoft
Visual Studio
IDE from Microsoft
Viterbi algorithm
algorithm for finding the most likely sequence of hidden states in a hidden Markov model
vlc, video lan client
media player and streaming server
VMware
company that makes virtualization software for x86 architecture
vnc, virtual network computing
remote desktop software
VoIP, voice over IP
technology that allows making voice calls over internet connection using internet protocol
volatile
keyword in some programming languages
VPN, virtual private network
network that extends a private network across a public network
VRML, Virtual Reality Modeling Language
XML based file format for representing 3D graphics
Vue.js
JavaScript web framework
W3C
consortium that develops web standards
w3m
text based web browser
WAFT, weighted alignment F-measure with thresholds
metric used in machine translation for evaluating word alignment accuracy
wake-on-lan
technology that allows turning on a computer remotely
walk
graph traversal algorithm
wallpaper
image used as a background on a computer screen
WAN, wide area network
network which covers a large geographical area
WASM, web assembly
low-level bytecode for web browsers
watch
CLI tool to execute a command periodically
waterfall development
software development methodology where each phase of the development process is completed before the next phase begins
WAV
audio file format
Wayland
communication protocol between a display server and clients; also a C library implementation of that protocol; intends to replace older X11
wc, word count
CLI tool to count lines, words and characters in a file
web application
software that runs in a web browser
web crawling
process of automatically browsing the web
web design
process of creating web pages
web driver
software component which enables browsers to communicate with web servers
web framework
framework for developing web applications
web page
document on the web
web ring
collection of websites linked together in a circular structure
web scale
term used to describe a system that is designed to handle a large amount of traffic
web scraping
technique of extracting data from web pages
web server
server which serves web content over HTTP
web service
software system designed to support interoperable machine-to-machine interaction over a network
web session
period of time during which a user interacts with a web app
web socket
protocol for full-duplex communication between a client and a server over a TCP connection
webhook
HTTP callback which is triggered by an event
Webkit
layout engine used in browsers
WEBP, web picture
image file format optimized for the web
Webpack
JavaScript module bundler
website
collection of web pages with a specific URL
weight decay
regularization technique which penalizes large weights by adding a term to the loss function
weights
values usually in the form of matrices or tensors; see also parameter
wget
command for accessing web resources
WhatsApp
instant messaging software and service
wheel (operating system)
user account with a wheel bit (additional special system privileges)
wheel (Python)
replacement for eggs
where clause
clause in a SQL which filters rows
while loop
loop which executes a block of code while a condition is true
Whisper
speech recognition open source model by OpenAI
whitespace
non-printable character; e.g. space, a tabulator, a vertical tabulator
who
command for displaying information about users
whoami
command for displaying the current user
whois
protocol for querying databases that store the registered users or assignees of an IP address or a domain name
widget
GUI component
wifi, Wi-Fi, wireless fidelity
wireless communication protocol for LAN
Wikidata
collaboratively edited knowledge base
wikification
process of adding hyperlinks to a text which disambiguates the words and phrases
Wikipedia
collaboratively edited encyclopedia
wildcard
character which can be used as a substitute for any other character or characters in a string
Winamp
media player for Windows
window manager, window system
software that manages different parts of display screens
Windows
operating system by Microsoft
Wine
compatibility layer for running Windows apps on Linux
WIP, work in progress
unfinished work, something which is a subject of change in the future
wireless
communication protocol or technology over the air; e.g. wifi, bluetooth
Wireshark
open-source packet analyzer
Wix
WYSIWYG website builder platform
WLAN, wireless LAN
wireless LAN
Word, MS Word
word processor by Microsoft
word
sequence of characters which is treated as a unit
word alignment
process in NLP used in MT for aligning words or phrases in a source language with their translations in a target language
word embedding
embedding of words
word order
rules for order of words in various languages; e.g. SVOMPT in English
word processor
software for creating and editing documents in WYSIWYG fashion
word size
number of bits that can be stored in a register
word-based MT, word-based machine translation
approach in MT where translations are made on the basis of individual words; cf. phrase-based MT
word2vec
group of models in natural language processing used to produce word embeddings involves using shallow neural networks for reconstructing linguistic contexts of words
WordNet
lexical database of English with ontology organized in a graph structure
WordPress, WP
content management system for web sites written in PHP
workflow
sequence of tasks which are executed in a specific order
WPA supplicant
software implementing WPA protocol
WPA, Wi-Fi protected access
security protocol for Wi-Fi networks
WPF, Windows presentation foundation
GUI framework for Windows
write ahead log, WAL
database logging technique where changes are written to a log before they are applied to the database
write once run anywhere
Java slogan to express its cross-platform nature
write-only code
code that is hard to read and understand;
WSDL, web services description language
XML-based language for describing web services
WSL, Windows Subsystem for Linux
compatibility layer for running Linux binaries on Windows
WSGI, web server gateway interface
calling convention for web servers to communicate (forward requests) with web applications written in Python
WWW, world wide web, web
system of interlinked hypertext documents accessible via the internet
WYSIWYG, what you see is what you get
text editor that shows the final output during editing
X (company)
see Twitter
X Window System, X
see X11
X.org foundation
non-profit organization that develops X11 and other software
X11
windowing system for bitmap displays common on Unix systems
x86
CPU architecture developed by Intel
xAI
company developing AI tools to understand the universe
XAML, extensible application markup language
XML based markup language for WPF applications
xargs
Unix command for building and executing commands from standard input
Xcode
IDE for macOS by Apple
xd, hexdump
command for dumping binary files in hexadecimal format
XDG, X Desktop Group
working group of freedesktop.org
xdotool
command line tool for automation of X11 tasks
XeTeX
TeX typesetting engine supporting Unicode and modern font format as Open Type
Xfce
lightweight desktop environment for Linux
xfwm4
window manager for Xfce
XLIFF, XML Localization Interchange File Format
XML-based format used in software localization
XML, eXchange markup language
SGML markup language
XMLHTTPRequest
JavaScript API for making HTTP requests
xmodmap
utility in X Window System for modifying keymaps and pointer button mappings used for customizing input device behaviour
XOR, exclusive or
binary logical operation that outputs true only when both inputs differ
XP, extreme programming
methodology that emphasizes close collaboration between developers and customers, continuous feedback, and practices such as test-driven development, pair programming, and continuous delivery
XPATH, XML path language
query language for XML documents
xrandr
CLI tool for managing display outputs in X Window System which enables dynamic control over screen resolution, refresh rates, and orientations
XSD
XML based language for describing the structure of XML documents
XSL
family of languages used to transform XML documents
XSLT, extensible stylesheet language transformations
XML based language for transformation of XML documents
xterm
terminal for X11
Xubuntu
Linux distribution based on Ubuntu with Xfce as the default desktop environment
xxd
program for hexadecimal dump of a file
XXX, x-rated content
content which is indecent
xz
file format and program for compression
Y’UV, YUV
color model found in the PAL analogue color TV standard
YAML, YAML Ain’t Markup Language
text format for representing structured (nested) data using indentation rather than parantheses
YAML stanza
group of lines in YAML file
Yandex
Russian technology company
YCbCr
color space used in video systems separating a video signal into luma (Y) representing brightness, and chroma (Cb and Cr) representing color
YDbDr
color space used in SECAM color TV broadcasting similar to YIQ and YUV, it separates the video signal into Y (luma) and two chrominance components (Db and Dr) for color encoding
YIQ
color space used in NTSC color TV broadcasting separating the video signal into Y (luma), I (in-phase color), and Q (quadrature color) optimizing the bandwidth efficiency of the transmission
YouTube
video sharing platform
youtube-dl, youtube downloader
software for downloading videos from YouTube
YPbPr
analog version of the YCbCr color space
Yubikey
hardware key for two-factor authentication
z index
property in CSS which sets the order of a positioned element on z axis
ZB, zettabyte
10^21 bytes or 1,000 exabytes
Zend framework
open source object-oriented web application framework implemented in PHP
zero day
type of security vulnerability of software or hardware unknown to the vendor which has zero days to fix the issue
zero shot learning
machine learning method where a model is altered to predict classes it has not seen during training
zeroth-order logic
see propositional logic
Zig
low level programming language Zigbee
wireless communication protocol used in IoT applications
zip
file format for compression
Zipf’s law
law that states that the frequency of a word is inversely proportional to its rank in the frequency table
zlib
library for compression
Zoom
proprietary software for videotelephony
zstd
lossless compression algorithm or the program implementing it
ZTE, Zhongxing Telecommunication Equipment
Chinese telecommunications company
ZX Spectrum
8-bit personal computer released in 1982

About

This glossary is WIP.

One of the driving principles of this glossary is to be able to generate Anki flashcards from it.

  1. When a term is used in a definition it must link to its own definition.
  2. Basic terms are not defined in this glossary: analysis, average, execution, finite, job, notation, principle, sequence, system, tool, … only if they have a special meaning (e.g. method).
  3. All non basic terms must be defined in this glossary using the most specific terms possible.
  4. Abbreviations should be defined together with the full term.
  5. All terms should be (proper) nouns.
  6. Multiword terms should be included only if they don’t satisfy the compositionality principle. E.g. there is no point in having term Linux kernel when it can be deduced from the two terms Linux and kernel.
  7. Avoid using hyphens in lexemes.
  8. Only the first usage of a term within a definition is hyperlinked.
  9. Proper noun lexemes should be external links.
  10. Do not use links to Wikipedia, this glossary should be self-contained.
  11. Polysemous terms should be defined separately and distinguished with a contextual term in parentheses. The contextual term should be the most general term.
  12. Avoid using cyclic definitions.
  13. Avoid using rare abbreviations in definitions.
  14. The text after semicolon in a definition is not part of the definition. It may contain additional information about the term, examples and references to synonyms or related terms.
  15. No determiners at the beginning of definitions.
  16. Definitions should not contain external links.
  17. Avoid mentioning people.
published: 2023-06-30
last modified: 2024-06-11

https://vit.baisa.cz/notes/code/vocabulary/