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
configuration file for Apache
open source managed software framework developed by Microsoft based on C#
space with two dimensions
space with three dimensions
3D printing
additive manufacturing process of making 3D objects from a digital blueprint
file format for compression, also a program implementing it and command for it
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
abbreviation for authentication, authorization and identity
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
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
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
property of a software that makes it usable by people with disabilities or special needs
metric for machine learning and information retrieval
set of properties of database transactions; see atomicity, consistency, isolation, durability
command for searching in text files with regular expressions
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
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
company that develops software for creative professionals
Advent of Code, AOC, AoC
yearly programming challenge
affine function
composition of a linear function followed by a translation
function which combines several items (e.g. rows) into one value; e.g. average, count, min, max, median, sum, range etc.
flexible and iterative approach to project management from 90s that prioritizes adaptability
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, artificial intelligence
field of computer science that studies how to make computers do things that people are (or have been) better at
software for connecting a source of data with a consumer of the data
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
virtual assistant developed by Amazon
voice assistant developed by Amazon
convolutional network model architecture that won the ImageNet competition in 2012
high-level programming language developed in 1958
finite sequence of instructions for solving a problem or doing a computation
alpha channel
layer of transparency in a bitmap image
AI algorithm that learned to play chess, shogi and go by playing against itself
ALSA, advanced Linux sound architecture
software framework and part of the Linux kernel for providing an API for sound card device drivers
Alt key
modifier key on a keyboard that modifies the function of other keys
company that owns AWS and Alexa and Kindle and IMDb and Twitch and Goodreads
distribution of the Python and R programming languages for scientific computing
HTML element in a hypertext document that links to another document or a specific part of it
mobile operating system developed by Google based on Linux
Android Studio
IDE for developing Android apps developed by Google based on IntelliJ
TypeScript web framework developed by Google
discontinued (as of 2023) JavaScript web framework developed by Google
anonymous function
function that does not have a name
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
Apache software foundation, ASF
software foundation that develops open source software
Apache (HTTP server)
HTTP server developed by Red Hat
API, application programming interface
set of functions and procedures that allow the creation of applications which access the features or data of an operating system, application, or other service
APK, Android application package
file format for Android apps
APL, a programming language
programming language developed in the 60s for mathematical notation
operation which adds items to the end of a list or file
technology company that specializes in consumer electronics, proprietary software, and online services; e.g. macOS, Xcode. Swift, App Store
scripting language developed by Apple for macOS
small application
application, app
see software
software distribution platform for iOS apps
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
file containing one or more files and/or directories
open source DAW
microcontroller board
operation that finds the argument that gives the maximum value from a target function
value passed to a function when calling it; it can be passed by value or by reference
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
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
framework for tabular in-memory analytics developed by Apache
software for project management
ASCII, American Standard Code for Information Interchange
encoding standard for plain text
ASGI, asynchronous server gateway interface
protocol for web servers written in Python
web framework developed by Microsoft for C# and .NET
software for converting assembly into machine code
low-level programming language that is a human-readable representation of machine code
statement in a programming language that is assumed to be true used for debugging
asymmetric cryptography
cryptography system that uses different keys for encryption and decryption
asynchronous programming
programming paradigm that allows the program to concurrently execute multiple tasks without waiting for the completion of the previous task
company that develops software for software development teams
property of a transaction that guarantees that either all or none of the operations are performed
mechanism in neural networks that allows the network to focus on specific parts of the input
Attention is all you need
paper that introduced the transformer architecture
property of an object
audio embedding
embedding of an audio signal
process of verifying the identity of a user or a system
authoritative name server
server that stores the DNS records for a domain
process of verifying that a user or a system has access to a resource
feature that suggests possible completions for a word or phrase as the user is typing
mathematical model of a machine that can perform computations
autoregressive model
model which uses past predictions for predicting the value
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
a formal statement that is assumed to be true
IaaS from Microsoft
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
transpilation library for JavaScript
back button
GUI button in a web browser that allows the user to go back to the previously visited page
back propagation
updating gradients for all elements of the functions of the model
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
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
bar chart
chart that uses bars to show the frequency of categorical data
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
programming language from 60s designed for students to learn programming
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 a mean of 0 and a standard deviation of 1
batch size
hyperparameter of neural networks that determines the number of examples in a batch
version control system developed by Canonical
open source build system developed by Google; similar to make
framework for distributed batch and streaming data processing developed by Apache
BEAM, Bogdan Erlang Abstract Machine
virtual machine for Erlang programming language used also by Elixir
Python library for web scraping and HTML parsing
behavioral pattern
design pattern that describes communication between objects
running an experiment on system, component, algorithm to asses its performance, efficiency or other metric
float format suitable for NVIDIA cards
hyperparameter of neural networks that determines the value added to the dot product of weights and inputs before passing it to activation function
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
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
data warehouse from Google
compiled executable file
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
parser generator from GNU
smallest data representable by a computer, 0 or 1, true or false, on or off
version control system developed by Atlassian
cryptocurrency and blockchain protocol
data structure that represents a bit array
bitmap image
digital image represented by a bitmap
data rate of a digital signal measured in bits per second
bitwise operation
operation that is performed on bit level
smartphone brand
blob, binary large object
data type that can store binary data in a database
distributed database that is used to maintain a continuously growing list of records called blocks
website that contains posts usually in reverse chronological order
all blogs on the internet and their interconnections
wireless technology for exchanging data over short distances
code that is repeated in many places; e.g. a menu on a website
URL stored and easily accessible in a browser
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
data type that can have only two values: true or false
Boolean algebra
branch of mathematics that deals with boolean values and logic operations
Boolean formula
formula composed of boolean variables and logic operations
CSS framework for responsive web design developed by Twitter
software that performs automated tasks; short for robot
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
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
version control system term for a development copy of a repository that can be merged back to the original repository
breadth-first search, BFS
graph algorithm that starts at the root node and explores all the neighboring nodes before moving to the next level; as opposed to DFS
network connection with a high data transfer rate
network communication method where a message is sent to all nodes in the network
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
file system for Linux developed by Oracle
bubble sort
algorithm for sorting
data structure for storing data in a memory to be processed later
error in a source code causing an error in compilation or execution
process of converting source code into an executable program
build automation
see build system
build system
software for automating the build process
web app distribution in a single file
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
8 bits
byte pair encoding
encoding used in GPT models, shorter tokens are used for encoding longer words (tokens)
code which is compiled for a runtime; e.g. Java and Python bytecodes
object oriented programming language from Microsoft
C++, cpp
object oriented programming language
C, clang
low level programming language
intermediate memory for storing data that is frequently accessed
function passed as an argument to another function to be called later
naming convention for identifiers where words are joined together without spaces and each word starts with a capital letter; e.g. getMoreData
company behind Ubuntu
software for creating graphics
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
Lisp function for returning the first element of a list
number of elements in a set
case (flow control)
branch of code executed when a condition is met
distributed NoSQL database from Apache
process of converting a data type to another
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.; as opposed to continuous data
category (mathematics)
collection of objects and morphisms between them
CB, continuous build
process of building software after every change to the code base
command for changing the current directory
read only CD
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
mathematical function for rounding a number up
Python library for asynchronous tasks
Linux distribution based on Red Hat Enterprise Linux
CEO, chief executive officer
executive position in a company responsible for overall management of a company
digital document that certifies the identity of a person or an organization
CESNET, Czech Education and Scientific NETwork
NREN for the Czech Republic
CGI, common gateway interface
standard for running programs on a web server
Linux kernel feature for limiting and isolating resource usage of a process
chain of responsibility pattern
behavioral pattern
list of changes in a software project
data type for storing a single character
representation of a symbol; e.g. a letter, a digit, a punctuation mark etc.
bot for chatting with humans
GUI element for selecting one or more options
value calculated from data for detecting errors in the data when the data is transmitted or stored
chip (hardware)
integrated circuit
set of chips on a motherboard
Chomsky hierarchy
classification of formal grammars into four types: regular, context-free, context-sensitive and recursively enumerable
web browser from Google
operating system from Google based on Linux
open source web browser from Google
CI, continuous integration
frequent merging of small changes to the main branch
encryption algorithm
Saas for continuous integration and continuous delivery
circular buffer
see ring buffer
blueprint for creating objects with properties (or attributes) and methods (functions)
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
Saas for project management
MS Office assistant in the shape of a paperclip
functional programming language on JVM runtime based on Lisp
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
group of computers working together
machine learning technique for grouping data into groups
build system for C++
Cmd key, command key
modifier key on a keyboard on Apple computers
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)
text representation of a software
code completion
IDE feature for completing code based on the context
code control
process of controlling changes to a codebase
code review
process of reviewing 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
collection of source code
software for encoding and decoding data, usually audio or video
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
set of rules that determine how data is sorted and compared in a database
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
color model
model for representing colors as tuples of numbers; e.g. RGB, CMYK
higher-order function
GUI element that combines a textbox with a dropdown
command, cmd
written instruction causing a computer to do something; consists of a program name, arguments
version control operation that saves changes to a repository
Common Lisp
Lisp dialect
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
process of translating source code into machine code
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 = ä
process of reducing the size of data
computable function
function that can be calculated by an algorithm
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
operation which joins two data structures into one; e.g. joining two strings or using cat command on two files
property of a program which allows multiple tasks to be executed at the same time
package manager for Python
configuration management
process of managing changes to a system in a way that it maintains integrity over time
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
property of a database which ensures that all data is valid according to defined rules
TUI for interaction with the OS and programs using commands; see also terminal
keyword in some programming languages which declares a variable as constant
variable which is not changed during execution of a program
special method of a class which is called when an instance of the class is created
virtualization technology for running applications in isolation
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; as opposed to categorical data
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 using convolution; particularly good for computer vision tasks
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
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
the legal technique of granting certain freedoms over copies of copyrighted works with the requirement that the same rights be preserved in derivative works
legal right to control the use and distribution of a creative work
CPU unit that reads and executes instructions; see also multicore
file containing the memory image of a process when it crashed
set of basic Unix CLI tools; e.g. [cat](#cat)
proposition that follows from and is often appended to one already proved
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
CORS, cross origin resource sharing
mechanism that allows restricted resources on a web page to be requested from another domain
complex system for monitoring large systems
NoSQL database from Apache
CPU, central processing unit
the most important processor in a computer; its “control center”
creational patterns
design pattern that deals with object creation mechanisms
Creative Commons
non-profit organization that provides licenses for creative works
piece of document (or information) of an individual issued by a third party
CRM, customer relationship management
business strategy for managing a company’s interactions with customers and also software that provides tools for this
command line utility for scheduling and running tasks for Unix-like OS
job or task scheduled and run by cron
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 validation
technique for assessing how the results of a statistical analysis will generalize to an independent data set
CRUD, create, read, update, delete
set of basic operations for databases
digital currency that uses cryptography for security
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
language for styling HTML documents
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
command line tool for transferring data over network protocols
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
cyclomatic complexity
the number of possible execution paths inside a given piece of code
collection of GNU software that allows running Unix software on Windows
Cygwin (library)
dynamic library that provides POSIX compatibility layer for Windows
D3.js, D3
JavaScript library for producing dynamic, interactive data visualizations
non-interactive background process in Unix whose parent process is init process
DAG, directed acyclic graph
graph with no cycles
data orchestration framework
Dash (library)
Python framework for building web pplications with interactive visualizations
software for writing by eye gaze
data abstraction
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
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 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
train, development, 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
database session
period of time during which a database connection is open
database, database system
collection of data organized in a way that allows access, management and updates
data structure for storing data in a tabular format used in Pandas
collection of data used for machine learning or data science
DAW, digital audio workstation
software for recording, editing and producing music in the form of audio files
dbt, data build tool
open source CLI tool
situation in which two or more competing actions are each waiting for the other to finish
Linux distribution
software for debugging software; e.g. GDB
process of finding and fixing bugs in 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
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
process of converting encoded data into its original form
function that takes another function and returns a modified function with additional functionality
process of converting encrypted data into its original form
deep learning
technique to extract and transform data by using multiple layers of neural networks
process of reducing fragmentation of files in a file system
IDE for Pascal
dense matrix
matrix with many non-zero elements
dense vector
vector with many non-zero elements
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
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
data structure that allows adding and removing elements from both ends
measure of how a function changes when its input changes
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 patterns
design pattern that deals with testing
design pattern
general, reusable solution to a commonly occurring problem in software design; e.g. MVC
computer designed for regular use at a single location
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
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
dialog (UX)
UI element that allows users to interact with a computer
data structure that maps keys to values
property of a function that it can be approximated by a linear function
Unix CLI tool for querying DNS name servers
symbol used to represent numbers; e.g. 2
digital data
discrete representation of data
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
the minimum number of coordinates needed to specify any point within a given space
number of features in a dataset
file system data structure which contains references to children files and directories in a tree-like structure
proprietary software for chatting and video conferencing
process of transforming continuous data into discrete data
disk, disc
storage device for computers
function that receives a request and sends it to the appropriate handler
physical or virtual screen of a computer
distributed computing
field of computer science that studies distributed systems
distributed system
system whose components are located on different computers in a network
see Linux distribution
Python web framework
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
markup language for technical documentation
containerization platform and software for building, running and shipping containers
docker compose
Docker CLI tool for defining and running multi-container Docker applications
Docker image
file that contains a container and all its dependencies
file that contains instructions for building a Docker image
description of the behavior of a software or API, intended for its users
Python library for parsing reStructuredText into HTML, LaTeX, XML or plain text
JavaScript toolkit for building web applications
DOM, document object model
cross-platform and language-independent API for representing and interacting with XML documents
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
a scalar operation that takes two equal-length sequences of numbers and returns a single number
files that start with a dot (.) and contain configuration for software and operating systems
data type for representing floating-point numbers with double precision in C and C++
process of copying data from a remote server to a local computer
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
UI element that allows users to select one value from a list
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
property that ensures database transactions are permanent
keyboard layout designed for typing speed and comfort
dynamic library, dll
library that is loaded at run time
dynamically typed language
programming language that does not require variable types to be defined explicitly
e-ink, eink
display technology that mimics the appearance of ink on paper
E2E test, end to end test
test that tests a complete software system from beginning to end
early binding
process of linking a function call to its definition at compile time
book in digital form
IDE for Java
Ecma international
international standards organization for information and communication systems
JavaScript standard by Ecma International
libraries, community, online resources etc. related to a given programming language
link between two nodes in a graph
edge computing
computing that takes place near the source of data
software for editing files
logical structure for releasing a specific version of a Python project (code, resources, metadata) which is importable and distributable
search engine based on Lucene
framework for building desktop applications with web technologies
component (node) of a XML document; e.g. <head>
functional programming language running on BEAM runtime supporting extreme concurrency and fault tolerance
text based editor with a built-in Lisp interpreter
electronic mail sent over a network
embedded system
computer system with a dedicated function within a larger mechanical or electrical system
mapping of a discrete feature to a vector
JavaScript framework for building web applications
dash that is as wide as the letter m
OOP principle of bundling data and methods that operate on that data
process of converting data from one form to another
process of encoding a message or information in such a way that only authorized parties can access it
dash that is as wide as the letter n
functor mapping a category to itself
data type consisting of a set of named values
environment variable
variable whose value is set outside the program
one complete pass through the training data
ebook format based on XML
ER diagram, entity relationship diagram
diagram that shows the relationships between entities in a database
ereader, e-reader
device for reading ebooks in digital format
functional programming language using BEAM runtime supporting extreme concurrency and fault tolerance
ERP, enterprise resource planning
software for managing business processes
error handling
process of responding to error conditions
error output, stderr
output stream for error messages in Unix
error rate
the proportion of validation set which was incorrectly predicted or labelled or classified by a model
Esc, escape
key on a keyboard used to generate the escape character (used to exit a mode)
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 computer programming language design
competitive video game playing
model that learns from data
ETH, ether
cryptocurrency and blockchain platform
blockchain platform for smart contracts
standard set of protocols for LAN, MAN and WAN networks
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
10^18 bytes or 1,000 petabytes
spreadsheet application by Microsoft; part of Microsoft Office
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
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
number that indicates how many times a base number is multiplied by itself
combination of values, variables, operators and functions that is evaluated to a single value
Ext js
JavaScript framework for building desktop applications
file system used by Linux
journaling file system used by Linux
the suffix of filename indicating its file format
F score, F1 score, F measure
harmonic mean of precision and recall
F#, F sharp
functional programming language running on .NET runtime
SaaS for social networking, also the name of the company that created it
unary function with the definition f(n) = n! = n * (n-1) * (n-2) * … * 2
design pattern that defines an interface for creating an object but lets subclasses decide which class to instantiate
FAISS, Facebook AI Similarity Search
library for efficient similarity search and clustering of dense vectors
false negative
item which was incorrectly classified as negative (not belonging to a class)
fan in
number of inputs to a component
fan out
number of outputs from a component
library which simplifies building and training models built upon Pytorch
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
32-bit version of the FAT file system
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 creep
situation when a software product has more features than originally planned
Linux distribution sponsored by Red Hat
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
command line tool for manipulating video and audio
FIFO, first in first out
data structure where the first element added is the first element removed
collaborative web app for design
representation of data stored on a disk; not necessarily contiguous
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
fine tuning
transfer learning technique where the parameters of a pretrained model are updated by training for additional epochs; many-shot learning
finite automata
automata with a finite number of states used to model computation and regular expressions
app development platform by Google
web browser by Mozilla
security system that monitors and controls incoming and outgoing network traffic
first-order logic
see predicate logic
the process of updating the parameters of a model such that the predictions of the model using the training data match the target labels
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
multimedia platform by Adobe
flash memory
see flash storage
flash storage
non-volatile storage device that can be electrically erased and reprogrammed
Python web framework
flat file
file that contains records with no structured relationships
CSS layout mode that arranges elements in a single direction
data type for representing floating point numbers
floating point number
binary representation of real numbers using a significand and an exponent
mathematical function that rounds a real number down to the nearest integer
UI toolkit for building mobile applications developed by Google
fold (functional programming)
see reduce
see directory
set of glyphs used to render text
foo bar baz
placeholder names used in programming
for loop
loop that repeats a block of code for a specified number of times
foreign key
key that references a primary key in another table
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
programming language based on stack data structure
programming language designed for scientific computing
forward pass
applying the model to the data based on the current parameter values
phenomenon where a file is stored in non-contiguous blocks on a disk
single image in a sequence of images that make up a video
lexical database of English representing the meaning of words in terms of frames and semantic roles
framerate, fps, frames per second
number of frames displayed or processed per second
collection of tools, components, guidelines and libraries to simplify the development of software
frontend, FE, front-end
software component that interacts directly with the user
FTP, file transfer protocol
protocol for transferring files between computers on a network
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
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
morphism function between categories
FUSE, file system in userspace
API for implementing file systems in userspace
C++ compiler based on GCC
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; fruit flies like a banana
gate (machine learning)
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
programming language feature allowing to define functions and types that can be used with different types of data
Python library for topic modeling
the process of determining the location of a device using its IP address
branch of mathematics that studies the properties of shapes
system call that resolves a domain name to an IP address
getter (OOP)
method that returns the value of a property
coroutine-based Python library for asynchronous programming based on greenlets
2^30 bytes or 1,024 mebibytes
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
distributed version control system
SaaS git
open source SaaS git with self-hosting option
global scope
scope that is visible in the whole program
global variable
variable with a global scope
glue tag
graphical representation of a character
SaaS email service from Google
desktop environment
GNU, GNU is not Unix
project to create a free operating system
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
company that provides SaaS services and open source software
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
thread in Go
statement that causes the program to jump to another part of the code; included e.g. in BASIC and C
GPS, global positioning system
satellite navigation system
GPT, generative pre-trained transformer
family of large language models from OpenAI
large language model from OpenAI based on GPT
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
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
method for finding local/global maxima/minima in a function
dashboard for time series data
graph (discrete mathematics)
set of vertices and edges connecting them
graph (mathematical analysis)
visual representation of a function
graph database
NoSQL database for storing and easy querying graph data
graph theory
branch of mathematics studying graphs
Python library for GraphQL
graphics card
hardware component that generates and outputs images to a display it also allows parallel computing
query language for API developed by Facebook
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
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
JavaScript build system
HTTP server
CLI tool for compressing data
video compression standard
video compression standard
framework for distributed computing developed by Apache
nonsensical output of a generative model; coined by Andrej Karpathy
physical part of a computer
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
harmonic mean
reciprocal of the arithmetic mean of the reciprocals of the values
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
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
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
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)
package manager for Kubernetes
PaaS that enables developers to build, run, and operate applications entirely in the cloud
platform as a service for web applications
hexadecimal number, hex
number in base 16
power-saving state of a computer that uses the least amount of power when the memory is saved to the hard drive
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
computer connected to a network
hot swapping
replacing a module without stopping the whole system
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
HTML, hypertext markup language
markup language for creating hypertext documents
version of HTML with new elements, attributes, and behaviors e.g. <video>, <audio>, <canvas>, <svg>
JavaScript library for AJAX with HTML attributes
CLI tool for monitoring system resources
HTTP method for deleting data
HTTP method for retrieving data
HTTP method for creating data
HTTP server
server that serves HTTP requests
HTTP verb
HTTP, hypertext transfer protocol
text based protocol for client-server communication over the Internet
version of HTTP
secured HTTP
company that develops NLP models and framework of the same name
Hungarian notation
naming convention for variables where the name of the variable indicates its type; e.g. strName or lNames
reference to another document or part of it that a reader can follow by clicking
parameter of the model; e.g. learning rate
hyperparameter tuning
process of finding optimal hyperparameters of a model
text that contains hyperlinks
software that creates and runs virtual machines and manages them
punctuation mark -
IaaS, infrastructure as a service
cloud computing service that provides virtualized computing resources over the internet
cloud storage service by Apple
instant messaging application; the name derives from “I seek you”
unique identifier, usually a number
IDE, integrated development environment
software containing tools to facilitate software development
name that identifies a variable, function, class, or other object
IDL, interface definition language
programming language for defining interfaces
HTML element that allows to embed another HTML document inside the current one
IM, instant messaging
form of communication that offers real-time text transmission over the Internet
image classification
task in machine learning
image-based dataset for machine learning with 14 million images in more than 20,000 categories
website with information about movies and TV shows
property of an object that cannot be changed
imperative programming language
programming language that uses statements to change a program’s state
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
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
greatest lower bound
notation where the operator is placed between its operands
information hiding
information leakage
situation when a model is able to learn validation set from the training data
information retrieval
discipline of computer science
process of importing multiple data into a single data store
Kubernetes resource that manages external access to the cluster by exposing HTTP and HTTPS routes
see class inheritance
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 (of weights)
it’s advisable not to initialize weights to zero even though the initial loss is close to optimal in this case but biases can be zero; some neurons might be initialized to dead neurons unable of learning (tanh in flat regions, ReLU in the negative numbers, …)
tree traversal where the root is visited between the left and right subtrees
input device
hardware that sends data to a computer; e.g. keyboard, mouse
SQL statement to insert data into a table
operation in database systems to add one item into a table or collection
insert sort, insertion sort
algorithm for sorting
instruction set
set of instructions that a processor can execute; e.g. x86, ARM, MIPS, RISC-V, …
basic data type to represent whole numbers
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
integration tests
tests that check if the whole system works as expected
company that designs and manufactures microprocessors
IDE for Java and other languages
intercom, intercommunication system
communication system within a building
interface (OOP)
contract that specifies what a class can do without specifying how it does it
global network of computers; connected via internet protocol
interpreted language
programming language which doesn’t need to be compiled into machine code and is interpreted by an interpreter; e.g. Python
software that interprets source code of a programming language and executes it
interprocess communication, IPC
mechanism that allows processes to communicate with each other
situation when a process is stopped by an interrupt request
set of elements that are common to two or more sets
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
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
smartphone developed by Apple
program for configuring firewall in Linux
version of IP using 4 bytes for addresses
version of IP using 6 bytes for addresses
IRC, internet relay chat
text based instant messaging system
IRQ, interrupt request
signal sent to CPU that temporarily stops a running process
ISP, internet service provider
company that provides access to the internet
array programming language
object-oriented programming language developed by Sun Microsystems
Java Virtual Machine, JVM
virtual machine that executes Java bytecode
documentation generator for Java
programming language used mainly for web development
open source automation server for continuous build and continuous deployment
templating language for Python
operation that combines two or more database tables into one
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
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
text format where each line is a JSON object
LLVM based, dynamically typed programming language for high performance
LLVM based, dynamically typed programming language for high performance
Jupyter notebook
web application for creating and sharing computational documents
Jupyter notebook
web application for creating and sharing computational documents
JWT, JSON web token
standard for creating access tokens that assert some number of claims
proprietary array programming language
see Kubernetes
framework for distributed streaming data processing developed by Apache
data science competition platform and online community
Kaimin normalization
visual system supporting decision making in project management; commonly in combination with scrum
short practise, e.g. implementing a known algorithm
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
password manager for Linux
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
kernel based virtual machine
open source virtualization module in the Linux kernel; developed by Red Hat
key (cryptography)
piece of information that controls the operation of a cipher
key value store
database that stores data as a collection of key-value pairs
peripheral device for input of text
software for controlling the mouse cursor with the keyboard
2^10 bytes or 1,024 bytes
1,000 bytes
e-reader developed by Amazon
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
knowledge base
collection of knowledge in digital form
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
open source system for automating deployment, scaling and managing containerized apps
KVM, kernel-based virtual machine
virtualization technology built into Linux kernel since version 2.6.20 (2006)
KYC, Know Your Customer
process for identifying and verifying the client’s identity to protect financial institutions against fraud, corruption, money laundering etc.
L1 regularization
regularization technique that adds a penalty equal to the sum of the absolute value of the coefficients
L2 regularization
regularization technique that adds a penalty equal to the sum of the squared value of the coefficients
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
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
open source vector database for machine learning applications
portable computer
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
Tex macro package for typesetting documents
partially ordered set in which every two elements have a unique supremum and a unique infimum
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
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
leaf node
node that has no children
set of practices that emphasize efficiency, minimizing waste, and delivering value to customers; originated in Toyota manufacturing
combination of a model and data; used e.g. in fastai library
learning rate
how much to change the weights each pass; too large: the learning is unstable; too small: the learning takes ages
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 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
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
lexeme (linguisitics)
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
program that performs lexical analysis
lexical analysis
process of converting a string into a sequence of lexemes
LGTM, looks good to me
commonly used in code review as an approval formula
collection of code (usually organized into modules) that can be used by other programs
legal document that grants permission to use a software under certain conditions
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
not to be confused with regression
linked list
data structure for storing a sequence of items
process by which hyperlinks on individual websites in general point to web pages, servers or other resources that have become permanently unavailable
program that analyzes source code to flag programming errors, bugs, stylistic errors, and suspicious constructs
Unix-like operating system assembled under the model of free and open-source software development and distribution
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
functional programming language with fully parenthesized syntax from the 1950s
see array
list comprehension
syntax for creating a list based on existing lists; e.g. [x**2 for x in range(10)]
literate programming
programming paradigm introduced by Donald Knuth that combines documentation and source code into a single source file
little endian
byte order of a binary number in which the least significant byte is stored first
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
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](#programming language) written in C++
LM, language model
complicated function with many parameters which is very flexible
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
synchronization mechanism for enforcing limits on access to a resource in an environment where there are many threads of execution
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
process of recording events, actions or messages that occur during a program execution and which produces logs
logic gate
electronic circuit that implements a logic operation
logic operation
function that takes one or more boolean values and produces a boolean value
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
function that maps probabilities to the real numbers which are easier to work with in logistic regression
representation of integers in some programming languages
lookahead (parser)
a number of tokens that are read ahead to decide which production to use in parsing
lookahead (regular expression)
a number of characters that are read ahead in a string to decide whether a pattern matches
sequence of instructions that is repeated until a certain condition is reached; a part of flow control in programming languages
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
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
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
programming language designed primarily for embedded systems and clients
TeX engine that uses Lua as an embedded scripting language
Java library for information retrieval and full-text search
Linux news website and webzine
machine code
set of instructions executed directly by a computer’s CPU
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
operating system for Apple computers
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
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 branch, main
see master branch
main memory
see RAM
build automation CLI tool
script for make
C function for allocating a block of memory on the heap
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
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
see dictionary
algorithm for processing and generating large data sets
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
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
software for numerical computing
programming language and GUI for numerical computing
rectangular array of numbers arranged in rows and columns; a vector of vectors
open source, self-hosted Slack alternative
McCabe complexity
see cyclomatic complexity
MDA, model driven architecture
software development methodology that focuses on modeling and model transformation
quantity that has a value which is intermediate to the extreme values of a set of numbers
2^20 bytes or 1,024 kibibytes
value separating the higher half of a sorted data sample from the lower half
10^6 bytes or 1,000 kilobytes
a part of computer that is used to store information for immediate use; see also RAM
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
distributed version control system
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
message broker
software that translates messages from the formal messaging protocol of the sender to the formal messaging protocol of the receiver
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
function that is defined inside a class
function that measures the quality of a model or a system; used for human consuption as opposed to loss
short snippet of code used to compare performance or other qualities/properties
a form of blogging that allows users to write brief text updates
integrated circuit that contains all the functions of a CPU of a computer
company that develops and sells computer software and consumer electronics
Microsoft Office
suite of office software developed by Microsoft
mid-squared method
pseudorandom number generator
MIPS architecture
reduced instruction set computer architecture
MIPS, million instructions per second
measure of a computer’s performance
mixed type
data type that can contain values of different types
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
ebook file format for Kindle
simulated object or function that mimics the behavior of a real object or function
dialog that requires users to interact with it before they can return to the main application which usually overlays the main application window
special kind of a general program which can do many things based on weights and its architecture
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
part of a program that can be used in other programs
hyperparameter of gradient descent that determines how much the previous update influences the current update
design pattern in which pipeline implementation are abstracted by wrapping a value in a type; also a monoid in the category of endofunctors
Mongo, MongoDB
NoSQL database system
algebraic structure with a single associative binary operation and an identity element
repository that contains more than one project; e.g. both backend and frontend of a web application
type face in which all characters have the same width
smallest meaningful unit of a language
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
branch of linguistics that studies the structure of words
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.
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
CPU that contains more than one core
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
arithmetic operation
parallel computing technique in which a program is divided into multiple processes which are executed simultaneously on different CPUs
parallel computing technique in which a program is divided into multiple threads which are executed simultaneously on different CPUs
property of a data type that can be changed after it has been created
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
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
MX record
DNS record that specifies a mail server responsible for accepting email messages on behalf of a domain
open source relational database management system
name binding
association of data (or code) with identifiers
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
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
NEF, Nikon Electronic Format
image file format used by Nikon cameras
logic operation that takes a boolean and returns the opposite boolean
negative caching
DNS caching of negative responses
graph database
fork of mutt actively maintained (as of 2023)
fork of Vim with better support for plugins
IDE for Java
group of computers connected together
neural network
machine learning model inspired by the neuron model
neuron model
mathematical model of a biological neuron with inputs, weights, bias, activation function and outputs
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
discussion group on the Internet
React framework
NFS, network file system
file system over network
HTTP server
NLTK, natural language toolkit
Python library for natural language processing
node (graph theory)
vertex in a graph
node (parallel computing)
computer in a cluster that is dedicated to performing computation
JavaScript runtime built on Chrome’s V8 JavaScript engine
nondeterministic finite automata
type of finite automata where each state can have multiple transitions for the same input
nonterminal, non-terminal
symbol that can be replaced by a sequence of other symbols
NoSQL, not only SQL
database system to store non-tabular data: key-value, documents, graph (nodes and vertices)
simple text editor available in Windows by default
open source text editor for Windows based on Scintilla
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
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
string class in Objective-C
NTFS, new technology file system
proprietary journaling file system developed by Microsoft
value that represents no value or a value that is not defined
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, ??
logical 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
Python library for efficient matrix operations
company that designs and manufactures GPUs
OAuth, open authorisation
open standard for authentication and authorisation
data structure that contains data and functions to operate on that data
object oriented programming language developed by Apple for macOS and iOS
measure of how well internal states of a system can be inferred from knowledge of its external outputs
functional programming language
ODBC, open database connectivity
standard for database access
Office 365
cloud service by Microsoft that provides access to office software
Office, MS Office
suite of office software developed by Microsoft
HTML attribute that specifies a JavaScript function to be executed when the element is clicked
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
non-profit AI research company
OpenCV, open computer vision
open source computer vision and machine learning software library
huge dataset of questions and answers
container orchestration platform by Red Hat
value on which an operator acts
function that takes one or more operands and produces a result, e.g. addition, subtraction, multiplication, division
symbol that represents an operation
function that minimizes the loss function by adjusting the weights of a model
logil operator that returns true if either of its operands is true
database management system and a company that develops it
Oracle Cloud
IaaS and PaaS by Oracle
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
Unix based operating system developed by Apple
OS, operating system
software that manages computer and provides common services for applications run on the computer
email and calendar software developed by Microsoft
when a model starts to memorize the training set instead of finding generalizable underlying patterns in the data
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
SaaS for LaTeX
package manager
program that automates the process of installing, upgrading, configuring, and removing software modules
the process of preparing software for distribution
unit of data that is routed between an origin and a destination on a network
page fault
when a program tries to access a page that is not in the main memory
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
string that reads the same backward as forward
PaLM, pathways language model
large language model from Google AI with 540 billion parameters
Python library for data analysis
parallel computing
type of computation where many calculations are performed simultaneously
sometimes used interchangeable with weights
parent class
class that is inherited from
program for parsing
procedure that analyzes the structure of a text according to the rules of a formal grammar
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
imperative programming language designed in 1968 for teaching purposes
the standard Unix password manager
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
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
see regular expression
pattern matching
technique for checking if a string matches a given pattern
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
PDF, portable document format
file format for storing documents in a device independent manner suitable for printing
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
scripting language
permalink, permanent link
URL that points to a specific web page and does not change over time
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
10^15 bytes or 1,000 terabytes
headless browser
PHP, PHP hypertext preprocessor, personal home page
programming language for creating dynamic web pages
pi, Ludolph’s number
constant–the ratio of a circle’s circumference to its diameter, approximately 3.14159
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
Python library for image processing
Unix command for testing whether a host is reachable
social network for sharing images
Python package manager
Unix inter-process communication mechanism that connects the standard output of one process to the standard input of another
pivot table
table that summarizes data from another table
technique for rotating a table by turning the columns into rows
pixel perfect
type of design that is implemented with pixel level accuracy
pixel, px
single point in a raster image or the smallest addressable element in a display device
plain text
file format for storing text in some encoding
software or hardward 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
graph that visualizes data
graph that shows the relationship between two variables
data visualization library
software component that adds a specific feature to an existing program
PoC, proof of concept
(software) prototype that demonstrates the feasibility of a concept
variable that stores the memory address of a value
technique for periodically checking for new data; e.g. a client periodically checks for new messages; see also busy waiting
programming language feature where a method can be used with different types
operation that removes an element from a stack
POP3, Post Office Protocol version 3
protocol for retrieving email messages
graphical user interface element that appears on top of the current window
PoS, part of speech
category of words in a natural language that have similar grammatical properties; e.g. noun, verb, adjective, adverb
message sent to a forum or a wegpage on a blog
notation where the operator is written after the operands; e.g. 3 4 +
PostgreSQL, Postgres, pg
relational database system with ACID compliance
software for testing APIs
PostScript, PS
page description language from Adobe
power law
relationship between two quantities where one quantity varies as a power of another
business intelligence tool from Microsoft
presentation program and format from Microsoft
sofware for creating presentations by Microsoft
shell and scripting language from Microsoft
the fraction of true positives see also recall
function that returns a boolean value
predicate logic
logic that uses quantified variables and quantified predicates
output or result of a model
preemptive multitasking
multitasking technique where the scheduler can interrupt a task to run another task
prefork server model
server model where there is a central master process that manages a set of worker processes
program that processes a text file before it is compiled
pretrained model
model that has weights already trained on some other (usually larger) dataset and to be fine-tuned
Java library for creating web applications
C function for printing formatted text
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
probability distribution
function that describes the probability of a random variable taking certain values
function that does not return a value
program in execution which has its own memory space
hardware component that executes instructions
set of instructions for a computer to execute
programming language
artificial language for writing programs
programming paradigm
style of programming
progres bar
graphical user interface component for showing the progress of a task
Project Gutenberg
digital library of public domain books
Project Gutenberg
digital library of public domain books
project management
discipline of planning, organizing, and managing resources (time, money, people) to achieve specific goals
logic programming language from the 1970s
software for aggregating metrics from various services; designed to run on one server
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
variable that is accessed like an attribute but is actually a method
propositional calculus
branch of logic that deals with propositions and their relationships
proprietary software
software that is not open source
set of rules for communication between two entities
protocol buffer, protobuf
binary file format developed by Google
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
pseudorandom number generator
algorithm that generates a sequence of numbers that appear random, but are actually deterministic
public domain
intellectual property that is not protected by copyright
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; see also 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
configuration management tool
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
IDE for Python
Python implementation written in Python
Python API for Spark
Python testing library
dynamically typed programming language
machine learning framework for Python
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
cross-platform framework and toolkit for developing GUI applications
quadratic time
time complexity of an algorithm that is proportional to the square of the size of the input
quantitative analyst
quantified self
movement of tracking personal data; e.g. health, sleep, etc.
logic operator that binds a variable in a logical formula; e.g. and
quantitative analysis
analysis of numerical data; e.g. stock prices, sales, etc.
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
data structure that stores data in FIFO manner
quick sort
recursive algorithm for sorting sequential data
standard keyboard layout
keyboard layout used in Central Europe
R, rlang
programming language for statistical computing
message broker
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
RAM, random access memory
memory that can be accessed randomly
random forest
machine learning architecture that uses an ensemble of decision trees
random search
random combination of hyperparameters are used to find the best solution
Raspberry Pi
small computer used in IoT
raster graphics
representation of graphical components as a collection of pixels
raster image
see bitmap image
image file format storing unprocessed data from a digital camera
RDBMS, relational database management system
database and related utilities for storing and retriewing (querying) tabular data
JavaScript web framework developed by Facebook
React component
UI component in React
React hook
React API for managing state
React Redux
method to share global state in React web app
README (file)
file that contains information about a software; usually part of its repository
real time
system that responds to events immediately
the ratio of retrieved relevant items and all relevant items; also the ratio of true positive and true positive and false negatives
recaptcha, reCAPTCHA
CAPTCHA service by Google
recommendation engine
see recommendation system
recommendation system
system that recommends items to users based on their preferences; see also collaborative filtering
technique of solving a problem by solving a smaller part of the same problem
recursively enumerable grammar
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
key-value store
operation that repeats the last undo operation
data warehouse service from AWS
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
fault tolerance technique where multiple copies of data are stored
technique for improving the design of existing code without changing its behavior
small amount of memory in a CPU
regression model
model which predicts one or more numeric quantities e.g. a temperature or a location; see also classification
regression testing
process of testing a software after a change to ensure that the change did not break the software; it may compare the output of the software to the previous output
regular expression, regex, regexp
pattern for matching strings
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
technique for reducing overfitting; e.g. L1 and L2 regularization
version of a software that is ready for production
remote repository
repository that is stored on a remote server
repository, repo
decentralized storage location for version control system
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
ResNet with 32 layers
responsive web design
method of designing web apps that adapts to different screen sizes
API built on HTTP 1.1 protocol based on the principles of REST
REST, representational state transfer
software architecture for web services
markup language for writing technical documents
keyword that returns a value from a function
RFC, request for comments
document proposing a standard
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
ring buffer
data structure that is a queue with a fixed size that overwrites the oldest element when full
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
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 (e.g. language data)
roll back
undo a transaction or a deployment
root node
node with no parent
router (network)
device that forwards packets between networks
router (web app)
mechanism for mapping URLs to views
set of instructions that performs a specific task in a program; generic term for function, method, procedure
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
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)
command and TUI program for copying files
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
dynamic open source programming language
ruby gem
Ruby on Rails
web framework written in Ruby
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
low-level programming language designed to be memory-safe
mascot of Rust
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
web browser by Apple
CRM platform and company that develops it
random data used as an additional input to a hash function
sanity check
quick test to confirm that a system is working properly or that data is reasonable
SAP, systems, applications and products
software company developing ERP systems
SAS, statistical analysis system
software suite for advanced analytics
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
open source functional programming language that runs on the JVM
C function for reading formatted input
input device for digitizing documents and images
process that decides which process to run next
process of assigning resources to tasks
database structure
functional programming language
Scikit learn, sklearn, scikit
Python library for machine learning
open source code editing component
Python library for scientific computing
part of a program where a name binding is valid
Python library for web scraping
display device for a computer
screen reader
program that reads text displayed on a screen used e.g. by visually impaired users
digital recording of computer screen
program written in a scripting language
scripting language
programming language used to manipulate, customize and automate existing systems; usually interpreted; e.g. AWK, Bash, Lua, etc.
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
SDK, software development kit
toolikit for developing software for a specific platform
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
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
sed, stream editor
CLI Unix utility for text processing
seed, random seed
value for initialization of random generator function
low level method for jumping to a position in a file
segmentation fault, segfault
runtime error caused by an invalid memory access
SQL statement for querying relational database
selection sort, select sort
sorting algorithm that repeatedly finds the minimum element and puts it at the beginning
Python library for web scraping
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
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
synchronization primitive used to control access to a shared resource in the context of concurrency
material with electrical conductivity between that of a conductor and an insulator
see recall
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](#software development)
sequential search
technique for finding an element in a list by checking each element in order
serial port
hardware interface for serial communication
process of converting data structures or objects into a format that can be stored or transmitted
computer which is connected to a network and provides services to other computers
cloud computing execution model where the cloud provider dynamically manages the allocation of machine resources
set (data structure)
data structure that stores unique elements
setter (OOP)
method for setting a value of a property
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
database partitioning technique where each partition is stored on a separate server
shared library
library that is loaded at runtime
collaboration platform by Microsoft
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 a command line interface (or terminal)
Shift key
modifier key that is usually used to uppercase letters
SaaS e-commerce platform
node that has the same parent
non-linear function with a characteristic S-shaped curve; see also logistic function
library for ASP.NET for real-time web functionality
signed integer
integer that can be negative or positive
measure of how likely it is that an effect is not due to chance
see mantissa
SIM card, subscriber identity module card
a 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
the first object-oriented programming language which introduced objects, classes, inheritance, coroutines and garbage collection
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
design pattern where only one instance of a class can be created
voice assistant by Apple
commercial software for instant messaging
early object-oriented programming language
smart contract
program that runs on a blockchain and can be used to automatically enforce an agreement
SMS, short message service
protocol for sending text messages over mobile networks
SMTP, simple mail transfer protocol
protocol for sending emails
snake case
naming convention for identifiers where words are separated by underscores; e.g. num_of_students
snap (Linux)
package format for Linux
copy of a database (or a dataset at a specific point in time
Tor pluggable transport
SOAP, simple object access protocol
protocol for exchanging XML messages over HTTP
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
JavaScript library for real-time web apps
non-linear function that exponentiates numbers and normalize them to sum into 1.0; used to make the layer output a probability distribution
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 design
process of defining the architecture of a software
software development
process of creating software, programming
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
SPA, single page application
web app that loads a single HTML page and dynamically updates the page as the user interacts with it
set of points
unsolicited email messages
framework for distributed computing built on top of Hadoop
sparse matrix
matrix in which most of the elements are zero
sparse vector
vector in which most of the elements are zero
method of creating a new process from an existing one
document that describes a system to be developed: its requirements properties, user interface, etc.
speech recognition
task of converting digial audio signal of speech into text
Python documentation generator built upon Jinja and Docutils
method of inserting or removing elements from an array
curve defined by control points in vector graphics
static analysis tool for C
software or a data structure for working with tabular data
Java framework
interval in agile development during which a team works on a set of tasks; usually 1–4 weeks long
malware that collects information about a user without their knowledge
SQL, structure query language
domain specific language for managing and manipulating relational databases
Python ORM
single file database system
SSD, solid state disk
storage device based on flash memory
SSH, secure shell
protocol 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
data structure that operates in LIFO manner
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
online platform for asking and answering questions about programming
stale link
hyperlink that leads to a web page that no longer exists
specification that describes how a system should behave or be structured
standard input, stdin
input stream for reading data in Unix systems
standard output, stdout
output stream for writing data in Unix systems
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 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
a type checking that is performed at compile time
statically typed programming language
programming language that requires type annotations of variables
statistical model
model that describes a system using statistical methods
branch of mathematics that deals with data analysis
stochastic system
system that has some randomness in it
method of data processing where data is processed as it arrives and not as a whole
stress testing
type of testing that checks the system under heavy load
data structure for representing text
strong type system
type system that does not allow implicit type conversions
structural patterns
a 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
part of a domain; e.g. www in
process that is spawned by another process
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
part of a string
tree that is a part of another tree
sudo, superuser do
superuser command in Unix systems that allows to run a command as another user
result of adding two or more numbers
see parent class
computer with high level of performance
user with the highest level of privileges in Unix systems
supervised learning
machine learning task where the model is trained using labeled data
least upper bound
SVG, scalable vector graphics
XML-based file format for representing vector graphics
SVN, Subversion, svn
open source software for versioning and revisions of source code developed by Apache
framework for documenting REST APIs
process of moving memory pages between RAM and disk
programming language developed by Apple
Java GUI toolkit
Java GUI toolkit
switch (statement)
statement that allows to select one of many code blocks to be executed
PHP framework
synchronization (multiprocessing)
process of coordinating the execution of multiple threads or processes
syntactic analysis
see parsing
syntactic sugar
a 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
set of rules that defines the combinations of symbols that are considered to be correctly structured programs in a given programming language
SysML, systems modeling language
UML for systems engineering
system call
request to an operating system to perform a low-level operation; e.g. opening a file, reading a file, etc.
Linux init system
systemd timers
systemd unit for scheduling tasks
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
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
whitespace character that advances the cursor to the next position usually located at every 4th or 8th column
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
Tailwind CSS
CSS framework
tanh, hyperbolic tangent
non-linear function used as activation function in neural networks
Unix command for archiving files
TB, terabyte
10^12 bytes or 1,000 gigabytes
high-level, interpreted dynamic programming language
GUI toolkit for Tcl
TCP, transmission control protocol
network protocol for reliable communication between computers on internet
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
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
[multidimensional] array
machine learning library developed by Google
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
software for managing infrastructure as code
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
process of evaluating a software
programming language for typesetting
text format
file format that stores data as plain text
complex software for monitoring large and complex systems based on Prometheus
The Jargon File
glossary of slang terms used by programmers
part of a process which executes instructions
piece of code that does some delayed work; in React Redux context thunks are a pattern of writing functions with logic inside that can interact with a Redux store’s dispatcher and other methods
TIFF, tagged image file format
file format for storing raster graphics
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
sequence of characters or encoded information identifying when a certain event occurred, e.g. 2023-01-01 00:00:00
TODO, to do
when used as a comment in source code it means that something needs to be implemented
token (natural language processing)
in the context of LLM tokens are words or subwords
token (network)
unit of data that is transmitted over a network
process of splitting texts into tokens
TOML, Tom’s obvious minimal language
text format for configurations
UI component in the form of a small pop-up window that appears when a user pauses the mouse pointer over an element
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
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
input device for moving a cursor on a screen by rotating a ball
input device for moving a cursor on a screen by pressing a stick
see fit
training data
see training set
training set
part of dataset used for fitting the model; doesn’t contain validation set
sequence of database operations which are executed as a single unit which can be cancelled in the case of failure
transfer learning
using a pretrained model for a task different to what it was originally trained for
transfer rate
a measure of the speed of data transfer
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
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
true negative
case when a model correctly predicts a negative class
true positive
case when a model correctly predicts a positive class
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
TSV, tab separated values
text format for storing tabular data
TUG, TeX Users Group
a 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
immutable finite sequence of items; 2-tuple is called ordered pair or couple or tuple, 3-tuple is called a triple (triplet)
Turbo Pascal
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
templating engine for PHP
cloud communications platform as a service
live streaming platform
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 app or email
TXT record
DNS record that contains text information
type checking
process of verifying and enforcing the constraints of type system
type face
set of glyphs that share common design features
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
TypeScript, TS
programming language which is a superset of JavaScript
Linux distribution developed by Canonical
UDP, user datagram protocol
network protocol for unreliable communication between computers on internet
UI, user interface
way for humans to interact with a computer programs; can be graphical or text-based
UML, unified modeling language
modeling language for software and systems
situation when a model is too simple to capture the underlying structure of the data
operation which reverts the last action
standard for encoding characters which provides a unique number for every character in most of the world’s languages
set operation which creates a new set that contains all the elements that are in at least one of the original sets
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
operating system developed in 1969
Unix domain socket
socket which is used for communication between processes on the same host
Unix philosophy
set of software design principles based on Unix which emphasizes modularity and reusability and simplicity
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
SQL command which updates rows in a table
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
URI, uniform resource identifier
string of characters that unambiguously identifies a particular resource
URL, uniform resource locator
reference to a web that specifies its location on a network and a mechanism for retrieving it
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 computer peripherals
network of newsgroups
part of OS which is not part of the kernel
a 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; it uses 16–32 bits per character; it’s more efficient than UTF8 for Asian languages
UTF8, unicode transformation format 8
variable width character encoding standard for UNICODE compatible with ASCII; it uses 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
UUID generated from a namespace and a name
UUID generated randomly
HTTP server for ASGI applications
HTTP server
UX, user experience
overall experience and satisfaction a user has when interacting with a software
JavaScript engine
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
container that holds information; it has a name and a value which can be changed during execution of a program
measure of how far a set of numbers is spread out; the average of the squared differences from the mean
programming language which is a part of .NET
VBA, Visual Basic for Applications
Visual Basic implementation used in Microsoft Office
programming language
mathematical object that has a magnitude and a direction; a tensor of rank 1
vector database
database that stores vectors and supports vector operations
vector graphics
representation of images as a collection of geometric primitives; as opposed to raster graphics
number of points completed per each sprint
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
point where two or more lines meet; see also node
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
text based editor from the 70s
instant messaging and VoIP application
video conferencing
videotelephony for groups
video game
game played on a computer
telecommunication technology for the transmission of audio and video between two or more participants in different locations
text based editor from the 90s, an 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
virtual assistant
software that can perform tasks or services for an individual based on verbal commands
virtual machine
program that emulates a computer 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
method of running multiple OS on a single computer by using a hypervisor
malware that replicates itself
VisiData, vd
TUI for exploring and arranging tabular data
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
company that makes virtualization software for x86 architecture
VoIP, voice over IP
technology that allows making voice calls over internet connection using internet protocol
keyword in some programming languages
VPN, virtual private network
network that extends a private network across a public network
JavaScript web framework
consortium that develops web standards
WAN, wide area network
network which covers a large geographical area
WASM, web assembly
low-level bytecode for web browsers
waterfall development
software development methodology where each phase of the development process is completed before the next phase begins
[communication protocol](#communication protocol) between a display server and clients; also a C library implementation of that protocol; intends to replace older X11
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
HTTP callback which is triggered by an event
layout engine used in browsers
JavaScript module bundler
collection of web pages with a specific URL
weight decay
regularization technique which penalizes large weights by adding a term to the loss function
values which form another input to a model; they are usually in the form of matrices or tensors; see also parameter
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
speech recognition open source model by OpenAI
white space
non-printable character, e.g. space, a tabulator, a vertical tabulator
GUI component
wifi, Wi-Fi, wireless fidelity
wireless communication protocol for LAN
collaboratively edited knowledge base
collaboratively edited encyclopedia
media player for Windows
window manager, window system
software that manages different parts of display screens
operating system by Microsoft
WIP, work in progress
unfinished work, something which is a subject of change in the future
communication protocol or technology over the air; e.g. wifi, bluetooth
WYSIWYG website builder platform
WLAN, wireless LAN
wireless LAN
Word, MS Word
word processor by Microsoft
word embedding
embedding of words
word processor
software for creating and editing documents in WYSIWYG fashion
word size
number of bits that can be stored in a register
lexical database of English with ontology organized in a graph structure
WordPress, WP
content management system for web sites written in PHP
WPF, Windows presentation foundation
GUI framework for Windows
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
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 foundation
non-profit organization that develops X11 and other software
windowing system for bitmap displays common on Unix systems
CPU architecture developed by Intel
Unix command for building and executing commands from standard input
IDE for macOS by Apple
TeX typesetting engine supporting Unicode and modern font format as Open Type
lightweight desktop environment for Linux
XML, eXchange markup language
SGML markup language
JavaScript API for making HTTP requests
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
XML based language for describing the structure of XML documents
family of languages used to transform XML documents
XSLT, extensible stylesheet language transformations
XML based language for transformation of XML documents
Linux distribution based on Ubuntu with Xfce as the default desktop environment
XXX, x-rated content
content which is indecent
color model found in the PAL analogue color TV standard
YAML, YAML Ain’t Markup Language
text format for representing structured data
YAML stanza
group of lines in YAML file
Russian technology company
video sharing platform
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
zero day
type of 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
low level programming language with memory safety features
wireless communication protocol used in IoT applications
file format for compression
library for compression
proprietary software for videotelephony
lossless data compression algorithm or the program implementing it
ZX Spectrum
8-bit personal computer released in 1982


This glossary is WIP.

  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, function, job, notation, operation, 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. The jumps between related terms (see) should be as short as possible.
  13. Avoid using cyclic definitions.
  14. Avoid using rare abbreviations in definitions.
  15. The text after ; 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.
  16. No determiners at the beginning of definitions.
  17. Definitions should not contain external links.
published: 2023-06-30
last modified: 2023-12-01