Software Engineering Glossary

.
special directory in Unix-based operating systems that represents the current directory
..
special directory in Unix-based operating systems that represents the parent directory
.htaccess
configuration file for Apache
.NET
open source managed software framework developed by Microsoft based on C#
2D
space with two dimensions
3D
space with three dimensions
3D printing
additive manufacturing process of making 3D objects from a digital blueprint
7z
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
AAI
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
accessibility
property of a software that makes it usable by people with disabilities or special needs
accuracy
metric for machine learning and information retrieval
ACID
set of properties of database transactions; see atomicity, consistency, isolation, durability
ack
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
Ada
statically typed object-oriented high-level programming language developed by the US Department of Defense for embedded systems
Adam optimizer
optimizer that uses weight decay and momentum from SGD optimizer
AdamW optimizer
optimizer that uses weight decay and momentum from Adam optimizer
Adobe
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
aggregation
function which combines several items (e.g. rows) into one value; e.g. average, count, min, max, median, sum, range etc.
agile
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
Airbyte
software for connecting a source of data with a consumer of the data
Airflow
open source software developed by Apache written in Python for workflow management
AJAX, asynchronous JavaScript and XML
technique used in web development to create interactive and dynamic web applications based on JavaScript and XML
Alexa
virtual assistant developed by Amazon
Alexa
voice assistant developed by Amazon
AlexNet
convolutional network model architecture that won the ImageNet competition in 2012
ALGOL
high-level programming language developed in 1958
algorithm
finite sequence of instructions for solving a problem or doing a computation
alpha channel
layer of transparency in a bitmap image
AlphaZero
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
Amazon
company that owns AWS and Alexa and Kindle and IMDb and Twitch and Goodreads
Anaconda
distribution of the Python and R programming languages for scientific computing
anchor
HTML element in a hypertext document that links to another document or a specific part of it
Android
mobile operating system developed by Google based on Linux
Android Studio
IDE for developing Android apps developed by Google based on IntelliJ
Angular
TypeScript web framework developed by Google
AngularJS
discontinued (as of 2023) JavaScript web framework developed by Google
anonymous function
function that does not have a name
Ansible
open source CLI automation software developed by Red Hat written in Python; it can configure systems, deploy software, and orchestrate advanced workflows to support application deployment, system updates, and more using ssh execution from controlled to managed nodes
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
append
operation which adds items to the end of a list or file
Apple
technology company that specializes in consumer electronics, proprietary software, and online services; e.g. macOS, Xcode. Swift, App Store
AppleScript
scripting language developed by Apple for macOS
applet
small application
application, app
see software
AppStore
software distribution platform for iOS apps
Arch Linux
Linux distribution that follows the KISS principle
architecture (machine learning
functional form or type of a model; sometimes incorrectly used as a synonym of the model itself
archive
file containing one or more files and/or directories
Ardour
open source DAW
Arduino
microcontroller board
argmax
operation that finds the argument that gives the maximum value from a target function
argument
value passed to a function when calling it; it can be passed by value or by reference
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
array
data structure for storing a sequence of simpler (usually homogenous) data types
array programming language
programming language operating mainly on arrays; e.g. APL, J, K, NumPy
Arrow
framework for tabular in-memory analytics developed by Apache
Asana
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
ASP.NET
web framework developed by Microsoft for C# and .NET
assembler
software for converting assembly into machine code
assembly
low-level programming language that is a human-readable representation of machine code
assertion
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
Atlassian
company that develops software for software development teams
atomicity
property of a transaction that guarantees that either all or none of the operations are performed
attention
mechanism in neural networks that allows the network to focus on specific parts of the input
Attention is all you need
paper that introduced the transformer architecture
attribute
property of an object
audio embedding
embedding of an audio signal
authentication
process of verifying the identity of a user or a system
authoritative name server
server that stores the DNS records for a domain
authorization
process of verifying that a user or a system has access to a resource
autocomplete
feature that suggests possible completions for a word or phrase as the user is typing
automaton
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
axiom
a formal statement that is assumed to be true
Azure
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
Babel
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
backdoor
attack TODO
backend, be, back-end
part of a software that is not directly accessed by the user and is usually running on a server
backport
TODO
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
base64
binary-to-text encoding that represents binary data in an ASCII string format
Bash, Bourne Again Shell
shell for Linux-based operating systems developed by GNU
BASIC
programming language from 60s designed for students to learn programming
batch
random portion of training data used for forward pass (every time different/random) to save compute time; too small batches may introduce noise in loss values over time
batch normalization
technique for normalization of neural networks that normalizes the output of a layer to have 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
Bazaar
version control system developed by Canonical
Bazel
open source build system developed by Google; similar to make
Beam
framework for distributed batch and streaming data processing developed by Apache
BEAM, Bogdan Erlang Abstract Machine
virtual machine for Erlang programming language used also by Elixir
BeautifulSoup
Python library for web scraping and HTML parsing
behavioral pattern
design pattern that describes communication between objects
benchmark
running an experiment on system, component, algorithm to asses its performance, efficiency or other metric
bfloat16
float format suitable for NVIDIA cards
bias
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
BigQuery
data warehouse from Google
binary
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
Bison
parser generator from GNU
bit
smallest data representable by a computer, 0 or 1, true or false, on or off
Bitbucket
version control system developed by Atlassian
bitcoin
cryptocurrency and blockchain protocol
bitmap
data structure that represents a bit array
bitmap image
digital image represented by a bitmap
bitrate
data rate of a digital signal measured in bits per second
bitwise operation
operation that is performed on bit level
Blackberry
smartphone brand
blob, binary large object
data type that can store binary data in a database
blockchain
distributed database that is used to maintain a continuously growing list of records called blocks
blog
website that contains posts usually in reverse chronological order
blogosphere
all blogs on the internet and their interconnections
bluetooth
wireless technology for exchanging data over short distances
boilerplate
code that is repeated in many places; e.g. a menu on a website
bookmark
URL stored and easily accessible in a browser
bookmarklet
short JavaScript code executed by visiting a URL starting with javascript: which operates on the current web page and can be saved as a bookmark in browsers
boolean
data type that can have only two values: true or false
Boolean algebra
branch of mathematics that deals with boolean values and logic operations
Boolean formula
formula composed of boolean variables and logic operations
Bootstrap
CSS framework for responsive web design developed by Twitter
bot
software that performs automated tasks; short for robot
Bottle.py
Python web framework distributed in a single file
bottleneck (machine learning)
layer in a neural network that has a smaller number of parameters than the previous layer
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
branch
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
broadband
network connection with a high data transfer rate
broadcast
network communication method where a message is sent to all nodes in the network
browser
software for viewing and navigating web; usually a GUI application, sometimes TUI application for a terminal
brute force algorithm
algorithm that tries all possible solutions to a problem
BSD, Berkley Software Distribution
Unix operating system developed at the University of California, Berkley
btrfs
file system for Linux developed by Oracle
bubble sort
algorithm for sorting
buffer
data structure for storing data in a memory to be processed later
bug
error in a source code causing an error in compilation or execution
build
process of converting source code into an executable program
build automation
see build system
build system
software for automating the build process
bundle
web app distribution in a single file
bus
computer component for transferring data between components; e.g. PCI bus
bus factor
minimum number of team members needed for running a business
business intelligence, BI
software for analyzing business data
busy waiting
process of waiting for a condition to become true by repeatedly checking it; see also polling
byte
8 bits
byte pair encoding
encoding used in GPT models, shorter tokens are used for encoding longer words (tokens)
bytecode
code which is compiled for a runtime; e.g. Java and Python bytecodes
C#
object oriented programming language from Microsoft
C++, cpp
object oriented programming language
C, clang
low level programming language
cache
intermediate memory for storing data that is frequently accessed
callback
function passed as an argument to another function to be called later
camelCase
naming convention for identifiers where words are joined together without spaces and each word starts with a capital letter; e.g. getMoreData
Canonical
company behind Ubuntu
Canva
software for creating graphics
canvas
HTML element for drawing graphics
CAP theorem
theorem that states that a distributed system cannot be Consistent, Available and Partition tolerant at the same time
captcha, Completely Automated Public Turing test to tell Computers and Humans Apart
task for distinguishing humans from bots; e.g. a web page with a distorted image of text
captive portal
web page that a user is required to visit and interact with before accessing a public Wi-Fi network
car
Lisp function for returning the first element of a list
cardinality
number of elements in a set
case (flow control)
branch of code executed when a condition is met
Cassandra
distributed NoSQL database from Apache
casting
process of converting a data type to another
cat
Unix command for printing the contents of files
catastrophic cancellation
when the difference of two approximate numbers (e.g. lengths) is significantly different from the difference of the real values
categorical data
such data which can have only a discrete set of values; e.g. type of education, gender etc.; 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
cd
command for changing the current directory
CD ROM
read only CD
CD RW
rewritable CD
CD, compact disk
medium for storing data
CD, continuous delivery
automatic process of releasing software in short cycles
cdr, contents of decrement part of register
Lisp function for returning the second element of a list
ceil
mathematical function for rounding a number up
Celery
Python library for asynchronous tasks
CentOS
Linux distribution based on Red Hat Enterprise Linux
CEO, chief executive officer
executive position in a company responsible for overall management of a company
certificate
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
cgroup
Linux kernel feature for limiting and isolating resource usage of a process
chain of responsibility pattern
behavioral pattern
changelog
list of changes in a software project
char
data type for storing a single character
character
representation of a symbol; e.g. a letter, a digit, a punctuation mark etc.
chatbot
bot for chatting with humans
checkbox
GUI element for selecting one or more options
checksum
value calculated from data for detecting errors in the data when the data is transmitted or stored
chip (hardware)
integrated circuit
chipset
set of chips on a motherboard
Chomsky hierarchy
classification of formal grammars into four types: regular, context-free, context-sensitive and recursively enumerable
Chrome
web browser from Google
ChromeOS
operating system from Google based on Linux
Chromium
open source web browser from Google
CI, continuous integration
frequent merging of small changes to the main branch
cipher
encryption algorithm
CircleCI
Saas for continuous integration and continuous delivery
circular buffer
see ring buffer
class
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
ClickUp
Saas for project management
Clippy
MS Office assistant in the shape of a paperclip
Clojure
functional programming language on JVM runtime based on Lisp
closure
function that has access to variables from the scope where it was defined
cloud computing
model of computing where resources are provided as a service over a network
cluster
group of computers working together
clustering
machine learning technique for grouping data into groups
cmake
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)
code
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
codebase
collection of source code
codec
software for encoding and decoding data, usually audio or video
Colemak
keyboard layout optimized for in English
collaborative filtering
machine learning task for filtering out items that a user might like on the basis of reactions by users with similar preferences; by searching a large group of people and finding a smaller set of users with tastes similar to a particular user
collation
set of rules that determine how data is sorted and compared in a database
collectd
daemon which collects system and application performance metrics
collection (data type)
data type that holds multiple values; e.g. array, set
collection (Mongo)
group of documents similar to a table in a RDBMS
color model
model for representing colors as tuples of numbers; e.g. RGB, CMYK
combinator
higher-order function
combobox
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
commit
version control operation that saves changes to a repository
Common Lisp
Lisp dialect
CommonCrawl
web crawler making the data available for research
communicating sequential processes, CSP
concurrency model where processes communicate by sending messages; also a programming language implementing the model
compilation
process of translating source code into machine code
compiler
program that translates source code into machine code
compose key
modifier key that allows to enter special characters by pressing the compose key and then a sequence of other keys; e.g. compose + " + a = ä
compression
process of reducing the size of data
computable function
function that can be calculated by an algorithm
computer
machine that can be programmed to perform computation
computer science
scientific field studying computation, information and automation
computer security, cybersecurity
branch of computer science concerned with the protection of computer systems and networks
computer vision
subfield of computer science
concatenation
operation which joins two data structures into one; e.g. joining two strings or using cat command on two files
concurrency
property of a program which allows multiple tasks to be executed at the same time
Conda
package manager for Python
configuration management
process of managing changes to a system in a way that it maintains integrity over time
conflict
when there are two changes to the same part of a code base which can’t be resolved automatically
confusion matrix
2D matrix showing the number of correct and incorrect predictions made by a classification model
consistency
property of a database which ensures that all data is valid according to defined rules
console
TUI for interaction with the OS and programs using commands; see also terminal
const
keyword in some programming languages which declares a variable as constant
constant
variable which is not changed during execution of a program
constructor
special method of a class which is called when an instance of the class is created
container
virtualization technology for running applications in isolation
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
convolution
operation on two functions which produces a third function expressing how the shape of one is modified by the other
convolutional neural network, CNN
neural network using convolution; particularly good for computer vision tasks
cookies
small piece of data sent from a server and stored in the user’s browser used to identify the user and store user-specific data
cooperative multitasking
tasks must yield when they do not need resources
coordinate
number(s) representing a position in space
copy on write
optimization technique where a copy of an object is created only when it is modified
copyleft
the legal technique of granting certain freedoms over copies of copyrighted works with the requirement that the same rights be preserved in derivative works
copyright
legal right to control the use and distribution of a creative work
core
CPU unit that reads and executes instructions; see also multicore
coredump
file containing the memory image of a process when it crashed
coreutils
set of basic Unix CLI tools; e.g. [cat](#cat)
corollary
proposition that follows from and is often appended to one already proved
coroutine
function that can pause execution and return control to the caller
corpus lexicography
field of lexicography that studies corpora for the purpose of creating dictionaries
corpus linguistics
field of linguistics that studies language phenomena using corpora
corpus, text corpus
collection of documents in a readable format
CORS, cross origin resource sharing
mechanism that allows restricted resources on a web page to be requested from another domain
Cortex
complex system for monitoring large systems
CouchDB
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
credential
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
cron
command line utility for scheduling and running tasks for Unix-like OS
cronjob
job or task scheduled and run by cron
crontab
configuration file that specifies shell commands to run on a given schedule (on reboot, every 10 minutes, hourly etc.)
cross compilation
process of compiling code for one platform on a different platform
cross entropy
measure of the difference between two probability distributions
cross 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
cryptocurrency
digital currency that uses cryptography for security
cryptography
field of computer science concerned with encryption and decryption in order to securely transmit data
CSIRT, computer security incident response team
team that handles computer security incidents
CSS, cascading style sheets
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
curl
command line tool for transferring data over network protocols
curryfication
process of transforming a function that takes multiple arguments into a sequence of functions that take one argument each
curse of dimensionality
phenomenon in which algorithms suffer from poor performance on data with high dimensionality
cursor (database)
pointer to a row in a database table
cursor (GUI)
graphical representation of mouse position
cursor (TUI)
movable indicator in TUI showing the current position for new text
CVS, concurrent versions system
software for tracking changes in a software projects
cyclomatic complexity
the number of possible execution paths inside a given piece of code
Cygwin
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
daemon
non-interactive background process in Unix whose parent process is init process
DAG, directed acyclic graph
graph with no cycles
Dagster
data orchestration framework
Dash (library)
Python framework for building web pplications with interactive visualizations
Dasher
software for writing by eye gaze
data abstraction
TODO
data analysis
process of inspecting, cleansing, transforming and modeling data with the goal of discovering useful information from it
data augmentation
technique for increasing the amount of training data by adding slightly modified copies of already existing data
data contamination
when test examples are included in a model’s training data
data flow diagram
diagram that shows how data is processed by a system
data hazard
TODO
data lake
scalable storage repository that holds data of various types and formats in its raw form for later data analysis
data leakage
see information leakage
data 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
dataframe
data structure for storing data in a tabular format used in Pandas
dataset
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
deadlock
situation in which two or more competing actions are each waiting for the other to finish
Debian
Linux distribution
debugger
software for debugging software; e.g. GDB
debugging
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
declaration
statement that introduces a name into a program
declarative programming language
programming language that expresses the logic of a computation without describing its control flow; e.g. SQL
decoding
process of converting encoded data into its original form
decorator
function that takes another function and returns a modified function with additional functionality
decryption
process of converting encrypted data into its original form
deep learning
technique to extract and transform data by using multiple layers of neural networks
defragmentation
process of reducing fragmentation of files in a file system
Delphi
IDE for Pascal
dense matrix
matrix with many non-zero elements
dense vector
vector with many non-zero elements
dependency
software or library or framework that is required for another software, library of framework to work
dependency injection
technique for passing dependencies to a function or object from the outside
deployment
process of making a software available for use by others
depth-first search, DFS
graph algorithm that explores as far as possible along each branch before backtracking
deque
data structure that allows adding and removing elements from both ends
derivative
measure of how a function changes when its input changes
deserialization
process of converting serialized data into its original form
design by contract, DBC
software design approach that uses formal specification of software components
design for testability patterns
design pattern that deals with testing
design pattern
general, reusable solution to a commonly occurring problem in software design; e.g. MVC
desktop
computer designed for regular use at a single location
desktop 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
dictionary
data structure that maps keys to values
differentiability
property of a function that it can be approximated by a linear function
dig
Unix CLI tool for querying DNS name servers
digit
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
dimension
the minimum number of coordinates needed to specify any point within a given space
dimensionality
number of features in a dataset
directory
file system data structure which contains references to children files and directories in a tree-like structure
Discord
proprietary software for chatting and video conferencing
discretization
process of transforming continuous data into discrete data
disk, disc
storage device for computers
dispatcher
function that receives a request and sends it to the appropriate handler
display
physical or virtual screen of a computer
distributed computing
field of computer science that studies distributed systems
distributed system
system whose components are located on different computers in a network
distribution
see Linux distribution
Django
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
DocBook
markup language for technical documentation
Docker
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
Dockerfile
file that contains instructions for building a Docker image
documentation
description of the behavior of a software or API, intended for its users
Docutils
Python library for parsing reStructuredText into HTML, LaTeX, XML or plain text
Dojo
JavaScript toolkit for building web applications
DOM, document object model
cross-platform and language-independent API for representing and interacting with XML documents
domain
name that identifies one or more IP addresses with a name that is easier to remember and use in URLs
domain specific language, DSL
high level abstration programming language that uses concepts and rules from a specific domain
DoS, denial of service
cyber attack that prevents legitimate users from accessing a service by overwhelming it with requests
dot product
a scalar operation that takes two equal-length sequences of numbers and returns a single number
dotfiles
files that start with a dot (.) and contain configuration for software and operating systems
double
data type for representing floating-point numbers with double precision in C and C++
download
process of copying data from a remote server to a local computer
driver
software that controls a device
driver code
short code demonstrating or testing a specific program, function, code
DRM, digital rights management
technologies that restrict the use of digital content and devices after purchase
dropdown
UI element that allows users to select one value from a list
Drupal
content management system written in PHP
DRY, don’t repeat yourself
principle of software development that states that every piece of knowledge must have a single, unambiguous, authoritative representation within a system
durability
property that ensures database transactions are permanent
Dvorak
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
ebook
book in digital form
Eclipse
IDE for Java
Ecma international
international standards organization for information and communication systems
ECMAScript
JavaScript standard by Ecma International
ecosystem
libraries, community, online resources etc. related to a given programming language
edge
link between two nodes in a graph
edge computing
computing that takes place near the source of data
editor
software for editing files
egg
logical structure for releasing a specific version of a Python project (code, resources, metadata) which is importable and distributable
Elasticsearch
search engine based on Lucene
Electron
framework for building desktop applications with web technologies
element
component (node) of a XML document; e.g. <head>
Elixir
functional programming language running on BEAM runtime supporting extreme concurrency and fault tolerance
Emacs
text based editor with a built-in Lisp interpreter
email
electronic mail sent over a network
embedded system
computer system with a dedicated function within a larger mechanical or electrical system
embedding
mapping of a discrete feature to a vector
Ember.js
JavaScript framework for building web applications
emdash
dash that is as wide as the letter m
encapsulation
OOP principle of bundling data and methods that operate on that data
encoding
process of converting data from one form to another
encryption
process of encoding a message or information in such a way that only authorized parties can access it
endash
dash that is as wide as the letter n
endofunctor
functor mapping a category to itself
enum
data type consisting of a set of named values
environment variable
variable whose value is set outside the program
epoch
one complete pass through the training data
epub
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
Erlang
functional programming language using BEAM runtime supporting extreme concurrency and fault tolerance
ERP, enterprise resource planning
software for managing business processes
error
mistake
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
esports
competitive video game playing
estimator
model that learns from data
ETH, ether
cryptocurrency and blockchain platform
Ethereum
blockchain platform for smart contracts
ethernet
standard set of protocols for LAN, MAN and WAN networks
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
exabyte
10^18 bytes or 1,000 petabytes
Excel
spreadsheet application by Microsoft; part of Microsoft Office
exception
situation when a program cannot continue its execution due to an error or unexpected situation; the flow of execution is interrupted
executable, exe
binary file that can be run as a program
execution
process of running a program, command or script
EXIF, exchangeagle image file format
standard that specifies formats for images to store special tags (attributes) used by digital cameras
exponent
number that indicates how many times a base number is multiplied by itself
expression
combination of values, variables, operators and functions that is evaluated to a single value
Ext js
JavaScript framework for building desktop applications
ext3
file system used by Linux
ext4
journaling file system used by Linux
extension
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
Facebook
SaaS for social networking, also the name of the company that created it
factorial
unary function with the definition f(n) = n! = n * (n-1) * (n-2) * … * 2
factory
design pattern that defines an interface for creating an object but lets subclasses decide which class to instantiate
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
fast.ai
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
FAT32
32-bit version of the FAT file system
feature
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
Fedora
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
ffmpeg
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
Figma
collaborative web app for design
file
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
Firebase
app development platform by Google
Firefox
web browser by Mozilla
firewall
security system that monitors and controls incoming and outgoing network traffic
first-order logic
see predicate logic
fit
the process of updating the parameters of a model such that the predictions of the model using the training data match the target labels
fixed point (programming language)
representation of real numbers within a set range by maintaining a fixed number of digits after the decimal point; cf. floating point representation
Flash
multimedia platform by Adobe
flash memory
see flash storage
flash storage
non-volatile storage device that can be electrically erased and reprogrammed
Flask
Python web framework
flat file
file that contains records with no structured relationships
flexbox
CSS layout mode that arranges elements in a single direction
float
data type for representing floating point numbers
floating point number
binary representation of real numbers using a significand and an exponent
floor
mathematical function that rounds a real number down to the nearest integer
Flutter
UI toolkit for building mobile applications developed by Google
fold (functional programming)
see reduce
folder
see directory
font
set of glyphs used to render text
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
fork
copy of a repository in a version control system
formal grammar
set of rules for constructing valid sequences of word or tokens in a language
formal language
set of strings of symbols that may be constrained by rules
formal verification
process of proving that a program satisfies a specification
FORTH
programming language based on stack data structure
Fortran
programming language designed for scientific computing
forward pass
applying the model to the data based on the current parameter values
fragmentation
phenomenon where a file is stored in non-contiguous blocks on a disk
frame
single image in a sequence of images that make up a video
FrameNet
lexical database of English representing the meaning of words in terms of frames and semantic roles
framerate, fps, frames per second
number of frames displayed or processed per second
framework
collection of tools, components, guidelines and libraries to simplify the development of software
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
FTR
abbreviation of “for the record”
full duplex communication
communication where both parties can send and receive data simultaneously
full text search
information retrieval technique for finding documents that contain a given set of words from a query
function
subroutine that can be called from other parts of the program
functional paradigm
programming paradigm based on the concept of functions and immutability
functional programming language
programming language based on functional paradigm; e.g. Haskell, Erlang
functor
morphism function between categories
FUSE, file system in userspace
API for implementing file systems in userspace
g++
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)
TODO
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
generics
programming language feature allowing to define functions and types that can be used with different types of data
gensim
Python library for topic modeling
geolocation
the process of determining the location of a device using its IP address
geometry
branch of mathematics that studies the properties of shapes
getaddrinfo
system call that resolves a domain name to an IP address
getter (OOP)
method that returns the value of a property
gevent
coroutine-based Python library for asynchronous programming based on greenlets
gibibyte
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
git
distributed version control system
GitHub
SaaS git
GitLab
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
TODO
glyph
graphical representation of a character
Gmail
SaaS email service from Google
Gnome
desktop environment
GNU, GNU is not Unix
project to create a free operating system
GNU/Linux
Unix-like operating system based on the Linux kernel and the GNU userland; not to be confused with Linux
Go, golang
open source programming language designed to be suitable for systems programming
Google
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
goroutine
thread in Go
GOTO
statement that causes the program to jump to another part of the code; included e.g. in BASIC and C
GPS, global positioning system
satellite navigation system
GPT, generative pre-trained transformer
family of large language models from OpenAI
GPT4
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
gradient
how each element is contributing to the final value (objective function) of the model; it is the slope of the function or the partial derivation; all functions and their elements must be differentiable
gradient boosting
machine learning technique for regression and classification problems, which produces a prediction model in the form of an ensemble of weak prediction models, typically decision trees
gradient descent
method for finding local/global maxima/minima in a function
Grafana
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
graphene
Python library for GraphQL
graphics card
hardware component that generates and outputs images to a display it also allows parallel computing
GraphQL
query language for API developed by Facebook
greenlet
Python library for cooperative multitasking
grep, global regular expression print
CLI tool for searching and filtering text files
grid (CSS)
grid is a set of intersecting horizontal and vertical lines defining the columns and rows
grid search cross validation
trying all combinations; suffers from exponential growth of combinations
gRPC, google remote procedure call
implementation of RPC using protobufs sent over HTTP 2.0 protocol in full-duplex mode
GRU, gated recurrent unit
recurrent neural network that uses gates to control the flow of information
GTK, GIMP toolkit
widget toolkit for creating GUI applications
GUI, graphical user interface
user interface that allows users to interact with computer programs through graphical icons and visual indicators; a mouse is typically used to manipulate the elements of the user interface
gulp
JavaScript build system
gunicorn
HTTP server
gzip
CLI tool for compressing data
H.264
video compression standard
H.265
video compression standard
Hadoop
framework for distributed computing developed by Apache
hallucination
nonsensical output of a generative model; coined by Andrej Karpathy
hardware
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
hash
result of a hash function
hash collision, collision
the situation when two different inputs produce the same output in a hash function
hash function
function that maps data of arbitrary size to data of fixed size
hash table, hash map
data structure that maps keys to values using a hash function
Haskell
functional programming language from 1990s with a strong type system
HCI, human-computer interaction
discipline concerned with the design, evaluation and implementation of interactive computing systems for human use and with the study of major phenomena surrounding them
HDD, hard disk drive
electro-mechanical non-volatile data storage device
head (Unix command)
CLI tool for printing the first few lines of a file
head (model)
the part of a pretrained which is removed and replaced with a randomly initialized layers suitable for fine-tuning on the target dataset
headless browser
web browser without a GUI usually used for automated testing and web scraping
heap
tree based data structure that satisfies the invariant property that the parent node is greater than its children nodes (in the case of a max heap)
heap sort
algorithm for sorting using heap in O(n log n)
Helm
package manager for Kubernetes
Heroku
PaaS that enables developers to build, run, and operate applications entirely in the cloud
Heroku
platform as a service for web applications
hexadecimal number, hex
number in base 16
hibernation
power-saving state of a computer that uses the least amount of power when the memory is saved to the hard drive
hidden 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
host
computer connected to a network
hot swapping
replacing a module without stopping the whole system
hover
user interface event when the mouse is moved over an element without pressing any buttons
HP, Hewlett-Packard
software and hardware company
HPC, high-performance computing
field of computer science that deals with supercomputers and parallel computing
HTML, hypertext markup language
markup language for creating hypertext documents
HTML5
version of HTML with new elements, attributes, and behaviors e.g. <video>, <audio>, <canvas>, <svg>
htmx
JavaScript library for AJAX with HTML attributes
htop
CLI tool for monitoring system resources
HTTP DELETE
HTTP method for deleting data
HTTP GET
HTTP method for retrieving data
HTTP POST
HTTP method for creating data
HTTP server
server that serves HTTP requests
HTTP verb
GET, DELETE, PUT, POST
HTTP, hypertext transfer protocol
text based protocol for client-server communication over the Internet
HTTP/1
version of HTTP
HTTPS
secured HTTP
HuggingFace
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
hyperlink
reference to another document or part of it that a reader can follow by clicking
hyperparameter
parameter of the model; e.g. learning rate
hyperparameter tuning
process of finding optimal hyperparameters of a model
hypertext
text that contains hyperlinks
hypervisor
software that creates and runs virtual machines and manages them
hyphen
punctuation mark -
IaaS, infrastructure as a service
cloud computing service that provides virtualized computing resources over the internet
iCloud
cloud storage service by Apple
ICQ
instant messaging application; the name derives from “I seek you”
id
unique identifier, usually a number
IDE, integrated development environment
software containing tools to facilitate software development
identifier
name that identifies a variable, function, class, or other object
IDL, interface definition language
programming language for defining interfaces
iframe
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
ImageNet
image-based dataset for machine learning with 14 million images in more than 20,000 categories
IMDb
website with information about movies and TV shows
immutability
property of an object that cannot be changed
imperative programming language
programming language that uses statements to change a program’s state
implementation
realization of a specification in a programming language
implicit type conversion
type conversion that is done automatically by the compiler
IMSI, international mobile subscriber identity
key used to identify a subscriber on mobile telephony devices
indexing
process of creating an index for a database to improve the speed of data retrieval
inference (logic)
process of deriving logical conclusions from premises
inference (ML)
process of using a model to make predictions
infimum
greatest lower bound
infix
notation where the operator is placed between its operands
information hiding
TODO
information leakage
situation when a model is able to learn validation set from the training data
information retrieval
discipline of computer science
ingest
process of importing multiple data into a single data store
ingress
Kubernetes resource that manages external access to the cluster by exposing HTTP and HTTPS routes
inheritance
see class inheritance
INI
text format used for configuration
init process
process with PID 1 in Linux that starts and manages other processes
init system
system in Linux that starts and manages services
initialization (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, …)
inorder
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
INSERT
SQL statement to insert data into a table
insert
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, …
integer
basic data type to represent whole numbers
integral
mathematical object that can be interpreted as an area or a volume
integrated circuit
electronic circuit made of semiconductor material
integration test
test that checks if the components of a system work together
integration tests
tests that check if the whole system works as expected
Intel
company that designs and manufactures microprocessors
IntelliJ
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
internet
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
interpreter
software that interprets source code of a programming language and executes it
interprocess communication, IPC
mechanism that allows processes to communicate with each other
interruption
situation when a process is stopped by an interrupt request
intersection
set of elements that are common to two or more sets
invariant
property which stays the same after a set of operations is executed
IO, I/O, input/output
type of operation that reads from or writes to a storage
iOS
operating system for Apple devices
IoT, internet of things
network of devices connected to the internet
IP address
unique identifier of a device connected to the internet used in the internet protocol
IP, internet protocol
set of rules that govern how data is sent and received over a network
iPhone
smartphone developed by Apple
iptables
program for configuring firewall in Linux
IPv4
version of IP using 4 bytes for addresses
IPv6
version of IP using 6 bytes for addresses
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
J
array programming language
Java
object-oriented programming language developed by Sun Microsystems
Java Virtual Machine, JVM
virtual machine that executes Java bytecode
JavaDoc
documentation generator for Java
JavaScript
programming language used mainly for web development
Jenkins
open source automation server for continuous build and continuous deployment
Jinja
templating language for Python
join
operation that combines two or more database tables into one
Joomla
content management system
journaling file system
file system that keeps track of changes not yet commited to the file system’s main part by recording the goal of such changes
JPEG, JPG, joint photographic experts group
method of lossy compression for digital images; files with this compression usually have .jpg or .jpeg extension
jQuery
JavaScript library for DOM manipulation
jQuery UI
jQuery library for creating user interfaces
JSF, JavaServer Faces
Java framework for web development
JSON, JavaScript Object Notation
text format for representing structured data
JSONL, JSON Lines
text format where each line is a JSON object
Julia
LLVM based, dynamically typed programming language for high performance
Julia
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
K
proprietary array programming language
k8s
see Kubernetes
Kafka
framework for distributed streaming data processing developed by Apache
Kaggle
data science competition platform and online community
Kaimin normalization
torch.nn.init.kaiming_normal_()
kanban
visual system supporting decision making in project management; commonly in combination with scrum
kata
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
keepassx
password manager for Linux
Keras
open source neural network library written in Python
kernel (machine learning)
function that takes two inputs and returns a similarity score
kernel (operating system)
program at the core of an operating system controlling everything in the system; it manages processes, memory, I/O operations etc
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
keyboard
peripheral device for input of text
keynav
software for controlling the mouse cursor with the keyboard
kibibyte
2^10 bytes or 1,024 bytes
kilobyte
1,000 bytes
Kindle
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
Kotlin
programming language for Java virtual machine and Android
KPI, key performance indicator
measurable value that demonstrates how effectively a company is achieving key business objectives
Kubernetes
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
label
correct answer of the ground truth associated with the input data
lambda calculus
mathematical model of computation based on function abstraction and application using variable binding and substitution; introduced by Alonzo Church in 1930s
lambda function
anonymous function
lamma.cpp
library for running pretrained models; it has a wrapper for Python
LAN, local area network
computer network that interconnects computers within a limited area such as a school, university campus or office building
LanceDB
open source vector database for machine learning applications
laptop
portable computer
Laravel
PHP web framework
laser printer, laserjet
printer that uses a laser beam to produce an image on a drum that is rolled through a reservoir of toner and then onto a sheet of paper
late binding
technique of deferring the resolution of a symbol until runtime
LaTeX
Tex macro package for typesetting documents
lattice
partially ordered set in which every two elements have a unique supremum and a unique infimum
layer
neural network component that transforms input data into output data represented as a matrix
layout engine
software component that combines content with a presentation to generate an output that can be displayed on a screen
lazy evaluation
evaluation strategy that delays the evaluation of an expression until its value is needed
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
lean
set of practices that emphasize efficiency, minimizing waste, and delivering value to customers; originated in Toyota manufacturing
learner
combination of a model and data; used e.g. in fastai library
learning 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
lexer
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
library
collection of code (usually organized into modules) that can be used by other programs
license
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
linkrot
process by which hyperlinks on individual websites in general point to web pages, servers or other resources that have become permanently unavailable
linter
program that analyzes source code to flag programming errors, bugs, stylistic errors, and suspicious constructs
Linux
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
Lisp
functional programming language with fully parenthesized syntax from the 1950s
list
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
livelock
situation when two or more processes are in a loop waiting for each other to finish and thus none of them can finish
LL grammar, left linear grammar
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
lock
synchronization mechanism for enforcing limits on access to a resource in an environment where there are many threads of execution
log
special output of a program used for debugging and troubleshooting, monitoring and performance analysis and security and auditing
log linear time complexity
time complexity of an algorithm that is proportional to the logarithm of the input size
log loss
see cross entropy loss function
logging
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
logit
function that maps probabilities to the real numbers which are easier to work with in logistic regression
long
representation of integers in some programming languages
lookahead (parser)
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
loop
sequence of instructions that is repeated until a certain condition is reached; a part of flow control in programming languages
loss
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
lsof
command for listing open files
LSP, language server protocol
protocol for enabling IDE features for a programming language
LSTM, long short term memory
recurrent neural network model which can learn long-term dependencies
LTE, long-term evolution
standard for wireless broadband communication for mobile devices and data terminals
LTR, left to right text
text (or script) written from left to right; e.g. Latin, Cyrillic
Lua
programming language designed primarily for embedded systems and clients
LuaTeX
TeX engine that uses Lua as an embedded scripting language
Lucene
Java library for information retrieval and full-text search
LWN.net
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
MacOS
operating system for Apple computers
macro
rule or pattern that specifies how a certain input sequence should be mapped to a replacement output sequence according to a defined procedure; a part of preprocessor
mail
see email
mail list, mailing list
collection of names and addresses used by an individual or an organization to send material to multiple recipients
mail server
server that handles email
main branch, main
see master branch
main memory
see RAM
make
build automation CLI tool
Makefile
script for make
malloc
C function for allocating a block of memory on the heap
malware
malicious software
man page
documentation for a command or other software component in Unix
MAN, metropolitan area network
network that interconnects users with computer resources in a geographic area or region larger than that covered by even a large LAN but smaller than the area covered by a WAN
managed code
code that runs on a virtual machine and is managed by the runtime
mantissa
part of a floating point number which contains its significant digits
many to many, m:n
relationship between two entities where one entity can be associated with many instances of the other entity and vice versa
map
see dictionary
MapReduce
algorithm for processing and generating large data sets
MariaDB
relational database management system that is a drop-in replacement for MySQL
markdown, MD
text format for specifying basic formatting
Markov chain
stochastic model describing a sequence of possible events in which the probability of each event depends only on the state attained in the previous event
Markov property
property of a stochastic process where the conditional probability distribution of future states of the process depends only upon the present state, not on the sequence of events that preceded it
markup language
text format that uses tags to define elements within a document
masking
operation that uses a sequence of bits to select or modify a subset of bits
master branch, master
branch in a version control system which is considered to be the definitive version of the source code
material design
UI design system developed by Google
material UI
React component library implementing material design
Matlab
software for numerical computing
Matlab
programming language and GUI for numerical computing
matrix
rectangular array of numbers arranged in rows and columns; a vector of vectors
Mattermost
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
mean
quantity that has a value which is intermediate to the extreme values of a set of numbers
mebibyte
2^20 bytes or 1,024 kibibytes
median
value separating the higher half of a sorted data sample from the lower half
megabytes
10^6 bytes or 1,000 kilobytes
memory
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
Mercurial
distributed version control system
merge
action of adding code changes to an existing code base in a repository; usually integrating commits from a development branch into the main branch
merge conflict
situation when two commits cannot be merged automatically by a version control system since they modify the same part of the code
merge request
process of asking code maintainers and code reviewers to review code changes; cf. pull request
merge sort
algorithm for sorting
message broker
software that translates messages from the formal messaging protocol of the sender to the formal messaging protocol of the receiver
metadata
data about data; e.g. EXIF allows adding information about the camera, lens, location and date to an image file for a photo taken with a smartphone
method
function that is defined inside a class
metric
function that measures the quality of a model or a system; used for human consuption as opposed to loss
micro-benchmark
short snippet of code used to compare performance or other qualities/properties
microblogging
a form of blogging that allows users to write brief text updates
microprocessor
integrated circuit that contains all the functions of a CPU of a computer
Microsoft
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
Mkdocs
static site generator for documentation
MKV, Matroska video, matroska
video container file format that can hold an unlimited number of video, audio, picture, or subtitle tracks in one file
MLC, machine learning compilation
project for running models on various platforms
MLOps, machine learning operations
practice of applying DevOps to machine learning
mmap, memory map
system call that maps files or devices into memory without copying data
MMLU, massive multitask language understanding
multilingual dataset for benchmarking large language models
mobi
ebook file format for Kindle
mock
simulated object or function that mimics the behavior of a real object or function
modal
dialog that requires users to interact with it before they can return to the main application which usually overlays the main application window
model
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
module
part of a program that can be used in other programs
momentum
hyperparameter of gradient descent that determines how much the previous update influences the current update
monad
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
monoid
algebraic structure with a single associative binary operation and an identity element
monorepo
repository that contains more than one project; e.g. both backend and frontend of a web application
monospace
type face in which all characters have the same width
morpheme
smallest meaningful unit of a language
morphism
structure-preserving mapping from one mathematical structure to another
morphological analysis
process of breaking words down into morphemes or assigning parts of speech to them
morphology
branch of linguistics that studies the structure of words
motherboard
main printed circuit board in a computer that holds many of the crucial components of the system as CPU, memory, connectors for hard drives, USB ports, etc.
mouse
pointing device that detects 2D motion relative to a surface
mouseless computing
human-computer interaction technique that allows users to interact with a computer without using a mouse
multicore
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
multiplication
arithmetic operation
multiprocessing
parallel computing technique in which a program is divided into multiple processes which are executed simultaneously on different CPUs
multithreading
parallel computing technique in which a program is divided into multiple threads which are executed simultaneously on different CPUs
mutability
property of a data type that can be changed after it has been created
mutation
operation which alters the data (e.g. in a database)
mutex, mutually exclusive flag
object (lock) which prevents multiple threads from accessing the same resource at the same time
mutt
text based email client
mux, multiplexer
function or program allowing several input signals to share one device or resource; a multiple-input single-output switch
MX record
DNS record that specifies a mail server responsible for accepting email messages on behalf of a domain
MySQL
open source relational database management system
name binding
association of data (or code) with identifiers
namespace
set of unique names used to identify and refer to objects
namespace packages
way of splitting code of one Python package into separate directories or repositories
NaN, not a number
special floating-point value that represents an undefined or unrepresentable value
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
negation
logic operation that takes a boolean and returns the opposite boolean
negative caching
DNS caching of negative responses
Neo4j
graph database
neomutt
fork of mutt actively maintained (as of 2023)
Neovim
fork of Vim with better support for plugins
NetBeans
IDE for Java
network
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
newline
special character or sequence of characters that is used to represent the end of a line of text and the start of a new line
newsgroup
discussion group on the Internet
Next.js
React framework
NFS, network file system
file system over network
Nginx
HTTP server
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
Node.js
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)
Notepad
simple text editor available in Windows by default
Notepad++
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
nsstring
string class in Objective-C
NTFS, new technology file system
proprietary journaling file system developed by Microsoft
null
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
NumPy
Python library for efficient matrix operations
NVIDIA
company that designs and manufactures GPUs
OAuth, open authorisation
open standard for authentication and authorisation
object
data structure that contains data and functions to operate on that data
Objective-C
object oriented programming language developed by Apple for macOS and iOS
observability
measure of how well internal states of a system can be inferred from knowledge of its external outputs
Ocaml
functional programming language
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
onclick
HTML attribute that specifies a JavaScript function to be executed when the element is clicked
ontology
formal representation of knowledge as a set of concepts within a domain and the relationships between those concepts
OOM, out of memory
situation when a program tries to allocate more memory than is available
OOO, out of office
situation when a person is not available (e.g. on vacation)
OOP, object oriented programming
programming paradigm based on the concept of objects and their interactions
OOV, out of vocabulary
word that is not in the vocabulary used by a language model; usually replaced with <unk> or some other special token
open access
publication model that makes research outputs freely available to the public
open addressing
hash table collision resolution technique where the hash function is used to find an alternative location in the table
open source
software whose source code is available to the public under a license that specifies conditions of use and modification
Open Type, OTF
font format
OpenAI
non-profit AI research company
OpenCV, open computer vision
open source computer vision and machine learning software library
OpenOrca
huge dataset of questions and answers
OpenShift
container orchestration platform by Red Hat
operand
value on which an operator acts
operation
function that takes one or more operands and produces a result, e.g. addition, subtraction, multiplication, division
operator
symbol that represents an operation
optimizer
function that minimizes the loss function by adjusting the weights of a model
or
logil operator that returns true if either of its operands is true
Oracle
database management system and a company that develops it
Oracle Cloud
IaaS and PaaS by Oracle
orchestration
process of automating the deployment, management and scaling of containers
order of magnitude
power (factor) of 10
ORM, object relational mapper
technique for converting data between a relational database and objects in an object oriented programming language
OS X
Unix based operating system developed by Apple
OS, operating system
software that manages computer and provides common services for applications run on the computer
Outlook
email and calendar software developed by Microsoft
overfitting
when a model starts to memorize the training set instead of finding generalizable underlying patterns in the data
overflow
when a number is too large to be represented by the data type used to store it
overlay file system
file system that stores files on another file system
Overleaf
SaaS for LaTeX
package manager
program that automates the process of installing, upgrading, configuring, and removing software modules
packaging
the process of preparing software for distribution
packet
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
pagination
technique for dividing a large dataset or document into smaller parts (called pages)
pair programming
software development technique where two programmers work together on the same task usually on one computer
PAL, phase alternating line
video encoding system used in Europe
palindrome
string that reads the same backward as forward
PaLM, pathways language model
large language model from Google AI with 540 billion parameters
Pandas
Python library for data analysis
parallel computing
type of computation where many calculations are performed simultaneously
parameters
sometimes used interchangeable with weights
parent class
class that is inherited from
parser
program for parsing
parsing
procedure that analyzes the structure of a text according to the rules of a formal grammar
partition
contiguous block of sectors on a disk that is treated as a separate unit
partition table
table that stores information about the partitions on a disk
Pascal
imperative programming language designed in 1968 for teaching purposes
pass
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
password
string of characters used for authentication
password manager
software for securely storing passwords and other credentials
PATA, parallel AT attachment
bus interface for connecting mass storage devices, predecessor of SATA
pattern
see regular expression
pattern matching
technique for checking if a string matches a given pattern
PayPal
company that provides online payment services
PC, personal computer
computer for personal use
PCA, principal component analysis
technique for reducing the dimensionality of a dataset by projecting it onto a lower dimensional space
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
Perl
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
petabyte
10^15 bytes or 1,000 terabytes
PhantomJS
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
pickle
Python standard library module for serializing and deserializing objects
PID, process identifier
number used by an operating system to uniquely identify a process
pie chart
chart that shows the relative sizes of different categories in a dataset as slices of a pie
PII, personally identifiable information
information that can be used to identify a person
PIL
Python library for image processing
ping
Unix command for testing whether a host is reachable
Pinterest
social network for sharing images
pip
Python package manager
pipe
Unix inter-process communication mechanism that connects the standard output of one process to the standard input of another
pivot table
table that summarizes data from another table
pivoting
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
platform
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
plot
graph that visualizes data
plot
graph that shows the relationship between two variables
Plotly
data visualization library
plugin
software component that adds a specific feature to an existing program
PoC, proof of concept
(software) prototype that demonstrates the feasibility of a concept
pointer
variable that stores the memory address of a value
polling
technique for periodically checking for new data; e.g. a client periodically checks for new messages; see also busy waiting
polymorphism
programming language feature where a method can be used with different types
pop
operation that removes an element from a stack
POP3, Post Office Protocol version 3
protocol for retrieving email messages
popup
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
post
message sent to a forum or a wegpage on a blog
postfix
notation where the operator is written after the operands; e.g. 3 4 +
PostgreSQL, Postgres, pg
relational database system with ACID compliance
Postman
software for testing APIs
PostScript, PS
page description language from Adobe
power law
relationship between two quantities where one quantity varies as a power of another
PowerBI
business intelligence tool from Microsoft
PowerPoint
presentation program and format from Microsoft
PowerPoint
sofware for creating presentations by Microsoft
PowerShell
shell and scripting language from Microsoft
precision
the fraction of true positives see also recall
predicate
function that returns a boolean value
predicate logic
logic that uses quantified variables and quantified predicates
prediction
output or result of a model
preemptive multitasking
multitasking technique where the scheduler can interrupt a task to run another task
prefork server model
server model where there is a central master process that manages a set of worker processes
preprocessor
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
Primefaces
Java library for creating web applications
printf
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
procedure
function that does not return a value
process
program in execution which has its own memory space
processor
hardware component that executes instructions
program
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
Prolog
logic programming language from the 1970s
Prometheus
software for aggregating metrics from various services; designed to run on one server
promise
JavaScript object representing the eventual completion or failure of an asynchronous operation
prompt (browser)
JavaScript component for interacting with the user
prompt (ChatGPT)
input from the user in a chatbot conversation
property
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
protocol
set of rules for communication between two entities
protocol buffer, protobuf
binary file format developed by Google
Protractor
e2e testing framework for Angular
proxy server
server intercepting requests and forwarding them to the appropriate servers and then back to users with the goal of load balancing, security, and caching
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
Puppet
configuration management tool
Puppeteer
Node.js library for controlling headless Chrome
push (git)
operation in a git which sends changes to a remote repository
push (stack)
operation that adds an element to a stack
pushdown automata
type of finite automata with a stack that can be used to store data
PWA, progressive web app
web app that uses modern web capabilities and APIs to deliver an app-like experience
PyCharm
IDE for Python
pypy
Python implementation written in Python
pySpark
Python API for Spark
pytest
Python testing library
Python
dynamically typed programming language
PyTorch
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
Qt
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
quant
quantitative analyst
quantified self
movement of tracking personal data; e.g. health, sleep, etc.
quantifier
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.
query
request for information from a system
query language
programming language for querying data
query optimization
process of choosing the most efficient way to execute a query
queue
data structure that stores data in FIFO manner
quick sort
recursive algorithm for sorting sequential data
QWERTY
standard keyboard layout
QWERTZ
keyboard layout used in Central Europe
R, rlang
programming language for statistical computing
RabbitMQ
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
RAW
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
React
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
recall
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
recursion
technique of solving a problem by solving a smaller part of the same problem
recursively enumerable grammar
TODO
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
Redis
key-value store
redo
operation that repeats the last undo operation
Redshift
data warehouse service from AWS
reduce
higher-order function that takes a binary function, a starting value (accumulator) and a list, and applies the function to the accumulator and each element of the list
redundancy
fault tolerance technique where multiple copies of data are stored
refactoring
technique for improving the design of existing code without changing its behavior
register
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
regularization
technique for reducing overfitting; e.g. L1 and L2 regularization
release
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
ResNet32
ResNet with 32 layers
responsive web design
method of designing web apps that adapts to different screen sizes
REST API
API built on HTTP 1.1 protocol based on the principles of REST
REST, representational state transfer
software architecture for web services
RESTful API
set REST API
reStructuredText
markup language for writing technical documents
return
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
RISC-V
open source RISC instruction set
RLHF, reinforcement learning with human feedback
technique for improving on pure LLM where a human (or a better model) picks a better answer from a selection
RNN, recurrent neural network
model architecture for modeling sequential data (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
routine
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)
rsync
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
Ruby
dynamic open source programming language
ruby gem
TODO
Ruby on Rails
web framework written in Ruby
runtime
instructions executed while a program is running necessary for the proper execution of the code; e.g. garbage collector in Python
runtime code
code required to implement runtime system of a programming language
Rust
low-level programming language designed to be memory-safe
rustacean
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
Safari
web browser by Apple
Salesforce
CRM platform and company that develops it
salt
random data used as an additional input to a hash function
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
Sass
preprocessor scripting language which is transpiled into CSS
SAT, satisfiability problem
problem of determining if there exists an interpretation that satisfies a given Boolean formula
SATA, serial AT attachment
bus interface for connecting mass storage devices
sbt, Scala build tool
build tool for Scala
Scala
open source functional programming language that runs on the JVM
scanf
C function for reading formatted input
scanner
input device for digitizing documents and images
scheduler
process that decides which process to run next
scheduling
process of assigning resources to tasks
schema
database structure
Scheme
functional programming language
Scikit learn, sklearn, scikit
Python library for machine learning
Scintilla
open source code editing component
SciPy
Python library for scientific computing
scope
part of a program where a name binding is valid
Scrapy
Python library for web scraping
screen
display device for a computer
screen reader
program that reads text displayed on a screen used e.g. by visually impaired users
screencast
digital recording of computer screen
script
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.
scrum
agile project management framework focused on adaptability and iterative progress through fixed-length sprints
scrum master
person responsible for facilitating the scrum process
SCSI, small computer system interface
set of standards for physically connecting and transferring data between computers and peripheral devices
SDK, software development kit
toolikit for developing software for a specific platform
Seaborn
Python library for data visualization
search engine
software system that is designed to carry out search in a large collection of documents, e.g. web
sector
smallest unit of storage on a disk
security by obscurity, security through obscurity
security through secrecy of design or implementation; e.g. sharing a link with randomly generated URL
sed, stream editor
CLI Unix utility for text processing
seed, random seed
value for initialization of random generator function
seek
low level method for jumping to a position in a file
segmentation fault, segfault
runtime error caused by an invalid memory access
SELECT
SQL statement for querying relational database
selection sort, select sort
sorting algorithm that repeatedly finds the minimum element and puts it at the beginning
Selenium
Python library for web scraping
self
keyword in some programming languages that refers to the current object
self balancing tree
tree data structure that automatically keeps its height small to guarantee fast operations
self hosting
running a service on your own (virtual) server
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
semaphor
synchronization primitive used to control access to a shared resource in the context of concurrency
semiconductor
material with electrical conductivity between that of a conductor and an insulator
sensitivity
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
serialization
process of converting data structures or objects into a format that can be stored or transmitted
server
computer which is connected to a network and provides services to other computers
serverless
cloud computing execution model where the cloud provider dynamically manages the allocation of machine resources
servlet
TODO
set (data structure)
data structure that stores unique elements
setter (OOP)
method for setting a value of a property
setuptools
Python library for packaging
SGD, stochastic gradient descent
method for efficiently finding weights for a model
SGML, standard generalized markup language
markup language for defining document types
sharding
database partitioning technique where each partition is stored on a separate server
shared library
library that is loaded at runtime
Sharepoint
collaboration platform by Microsoft
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
Shopify
SaaS e-commerce platform
sibling
node that has the same parent
sigmoid
non-linear function with a characteristic S-shaped curve; see also logistic function
SignalR
library for ASP.NET for real-time web functionality
signed integer
integer that can be negative or positive
significance
measure of how likely it is that an effect is not due to chance
significand
see mantissa
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
Simula
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
singleton
design pattern where only one instance of a class can be created
Siri
voice assistant by Apple
Slack
commercial software for instant messaging
Smalltalk
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
snapshot
copy of a database (or a dataset at a specific point in time
Snowflake
Tor pluggable transport
SOAP, simple object access protocol
protocol for exchanging XML messages over HTTP
social network
application that allows users to connect with each other over internet, share multimedia content, etc.
socket (operating system)
file descriptor used e.f. for inter-process communication
socket.IO
JavaScript library for real-time web apps
softmax
non-linear function that exponentiates numbers and normalize them to sum into 1.0; used to make the layer output a probability distribution
software
complex program consisting of source code and data, UI and documentation
software 2.0
term coined by Andrej Karpathy to distringuish the traditional software development (manually writing a code) and the approach of machine learning—letting the computer learn on its own from training data
software design
process of defining the architecture of a software
software development
process of creating software, programming
SOLID
set of design principles used in object oriented programming; S for single responsibility principle, O for open-closed principle, L for Liskov substitution principle, I for interface segregation principle and D for dependency inversion principle.
sort, sorting
operation with data sequence which re-arranges its elements in ascending or descending order
sound card
hardware device that can play and record sound and convert between analog and digital signals
source code
see code
source control
see version control
SPA, single page application
web app that loads a single HTML page and dynamically updates the page as the user interacts with it
space
set of points
spam
unsolicited email messages
Spark
framework for distributed computing built on top of Hadoop
sparse matrix
matrix in which most of the elements are zero
sparse vector
vector in which most of the elements are zero
spawn
method of creating a new process from an existing one
specification
document that describes a system to be developed: its requirements properties, user interface, etc.
speech recognition
task of converting digial audio signal of speech into text
Sphinx
Python documentation generator built upon Jinja and Docutils
splice
method of inserting or removing elements from an array
spline
curve defined by control points in vector graphics
splint
static analysis tool for C
spreadsheet
software or a data structure for working with tabular data
Spring
Java framework
sprint
interval in agile development during which a team works on a set of tasks; usually 1–4 weeks long
spyware
malware that collects information about a user without their knowledge
SQL, structure query language
domain specific language for managing and manipulating relational databases
SQLAlchemy
Python ORM
SQLite
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
stack
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
StackOverflow
online platform for asking and answering questions about programming
stale link
hyperlink that leads to a web page that no longer exists
standard
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
statement
syntactic unit of a programming language that expresses some action to be carried out; e.g. x = 1 or INSERT INTO users VALUES (1, 'John')
static 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
statistics
branch of mathematics that deals with data analysis
stochastic system
system that has some randomness in it
streaming
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
string
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
subdomain
part of a domain; e.g. www in www.example.com
subprocess
process that is spawned by another process
subroutine
specific type of routine which help avoid code duplication; two types: function and procedure; the term emphasizes that it is a subordinated part of a program
substring
part of a string
subtree
tree that is a part of another tree
sudo, superuser do
superuser command in Unix systems that allows to run a command as another user
sum
result of adding two or more numbers
superclass
see parent class
supercomputer
computer with high level of performance
superuser
user with the highest level of privileges in Unix systems
supervised learning
machine learning task where the model is trained using labeled data
supremum
least upper bound
SVG, scalable vector graphics
XML-based file format for representing vector graphics
SVN, Subversion, svn
open source software for versioning and revisions of source code developed by Apache
Swagger
framework for documenting REST APIs
swapping
process of moving memory pages between RAM and disk
Swift
programming language developed by Apple
Swing
Java GUI toolkit
Swing
Java GUI toolkit
switch (statement)
statement that allows to select one of many code blocks to be executed
Symfony
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
syntax
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.
systemd
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
tabulator
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
tar
Unix command for archiving files
TB, terabyte
10^12 bytes or 1,000 gigabytes
Tcl
high-level, interpreted dynamic programming language
Tcl/Tk
GUI toolkit for Tcl
TCP, transmission control protocol
network protocol for reliable communication between computers on internet
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
telephony
technology for voice communication
telnet, teletype network
network protocol for remote terminal access
templating engine
software that combines templates with a data model to produce documents
temporal decomposition
breadkign down a system or dataset into components or elements based on time; used in time series analysis
tensor
[multidimensional] array
TensorFlow
machine learning library developed by Google
terminal
program that provides a text-based user interface to an operating system; not to be confused with shell
terminal (NLP)
symbol that cannot be expanded further
Terraform
software for managing infrastructure as code
tessellation
the covering of a surface using one or more geometric shapes (tiles) with no overlaps and no gaps; see also tiling
test set
part of the dataset which is used only for the final evaluation of a model
test suite
collection of test cases for testing
testing
process of evaluating a software
TeX
programming language for typesetting
text format
file format that stores data as plain text
Thanos
complex software for monitoring large and complex systems based on Prometheus
The Jargon File
glossary of slang terms used by programmers
thread
part of a process which executes instructions
thunk
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
tiling
see tessellation
tiling window manager
window manager which automatically arranges windows on a screen (or multiple screen) in a tiling fashion
time complexity
measure of the amount of time taken by an algorithm to run as a function of the length of the input
time series
sequence of data points indexed in time order
timestamp
sequence of characters or encoded information identifying when a certain event occurred, 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
tokenization
process of splitting texts into tokens
TOML, Tom’s obvious minimal language
text format for configurations
tooltip
UI component in the form of a small pop-up window that appears when a user pauses the mouse pointer over an element
Tor
network for anonymous communication developed by the US Navy
TOTP, time based one time password
method for two factor authentication using a password which expires quickly
touchpad
input device for moving a cursor on a screen by sliding a finger on a surface
TPU, tensor processing unit
special processor designed for machine learning developed by Google; see also GPU
trackball
input device for moving a cursor on a screen by rotating a ball
trackpoint
input device for moving a cursor on a screen by pressing a stick
training
see fit
training data
see training set
training set
part of dataset used for fitting the model; doesn’t contain validation set
transaction
sequence of database operations which are executed as a single unit which can be cancelled in the case of failure
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
transformer
neural network architecture based on attention mechanism
translation (geometry)
transformation that moves every point of a figure by the same distance in a given direction
transpilation
process of converting source code from one programming language to another; e.g. TypeScript to JavaScript
tree (data structure)
data structure that is a collection of nodes connected by edges with uni
tree (graph theory)
graph without cycles,
tree height
number of edges on the longest path between a root and a leaf
tree shaking
process of removing unused code from a bundle
tree traversal
process of visiting every node in a tree
true negative
case when a model correctly predicts a negative class
true positive
case when a model correctly predicts a positive class
trunk
the main branch in a source control system
trunk-based development
source control branching approach where developers work in a single branch called trunk/master/main, and do not use other long lived branches
truth table
table that shows the output of a logic gate or a boolean function for all possible combinations of inputs
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
tuple
immutable finite sequence of items; 2-tuple is called ordered pair or couple or tuple, 3-tuple is called a triple (triplet)
Turbo Pascal
TODO
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
Twig
templating engine for PHP
Twilio
cloud communications platform as a service
Twitch
live streaming platform
Twitter
social network and microblogging service
two factor authentication, 2FA
more secure authentication which adds another layer of security with requiring a second independent way of authentication (with SMS or a mobile 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
Ubuntu
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
underfitting
situation when a model is too simple to capture the underlying structure of the data
undo
operation which reverts the last action
Unicode
standard for encoding characters which provides a unique number for every character in most of the world’s languages
union
set operation which creates a new set that contains all the elements that are in at least one of the original sets
uniq
Unix utility which filters adjacent duplicate lines from standard input
unit test
testing unit which tests a subroutine
universal approximation theorem
mathematical proof that shows that a neural network can slove any mathematical problem to any level of accuracy
Unix
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
UPDATE
SQL command which updates rows in a table
upsert
database operation that updates an existing row if a specified value already exists (in a table) and inserts a new row if the specified value doesn’t already exist; portmanteau of update and insert
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
Usenet
network of newsgroups
userland
part of OS which is not part of the kernel
userspace
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
UUID3
UUID generated from a namespace and a name
UUID4
UUID generated randomly
uvicorn
HTTP server for ASGI applications
uWSGI
HTTP server
UX, user experience
overall experience and satisfaction a user has when interacting with a software
V8
JavaScript engine
validation set
part of dataset for training a model which is put aside (usually 20 %) and used to measure the accuracy of the model; the rest of the dataset is called training set
variable
container that holds information; it has a name and a value which can be changed during execution of a program
variance
measure of how far a set of numbers is spread out; the average of the squared differences from the mean
VB.NET
programming language which is a part of .NET
VBA, Visual Basic for Applications
Visual Basic implementation used in Microsoft Office
VBScript
programming language
vector
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
velocity
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
vertex
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
Vi
text based editor from the 70s
Viber
instant messaging and VoIP application
video conferencing
videotelephony for groups
video game
game played on a computer
videotelephony
telecommunication technology for the transmission of audio and video between two or more participants in different locations
Vim
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
virtualization
method of running multiple OS on a single computer by using a hypervisor
virus
malware that replicates itself
VisiData, vd
TUI for exploring and arranging tabular data
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
VMware
company that makes virtualization software for x86 architecture
VoIP, voice over IP
technology that allows making voice calls over internet connection using internet protocol
volatile
keyword in some programming languages
VPN, virtual private network
network that extends a private network across a public network
Vue.js
JavaScript web framework
W3C
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
Wayland
[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
webhook
HTTP callback which is triggered by an event
Webkit
layout engine used in browsers
Webpack
JavaScript module bundler
website
collection of web pages with a specific URL
weight decay
regularization technique which penalizes large weights by adding a term to the loss function
weights
values which form another input to a model; they are usually in the form of matrices or tensors; see also parameter
WhatsApp
instant messaging software and service
wheel (operating system)
user account with a wheel bit (additional special system privileges)
wheel (Python)
replacement for eggs
where clause
clause in a SQL which filters rows
while loop
loop which executes a block of code while a condition is true
Whisper
speech recognition open source model by OpenAI
white space
non-printable character, e.g. space, a tabulator, a vertical tabulator
widget
GUI component
wifi, Wi-Fi, wireless fidelity
wireless communication protocol for LAN
Wikidata
collaboratively edited knowledge base
Wikipedia
collaboratively edited encyclopedia
Winamp
media player for Windows
window manager, window system
software that manages different parts of display screens
Windows
operating system by Microsoft
WIP, work in progress
unfinished work, something which is a subject of change in the future
wireless
communication protocol or technology over the air; e.g. wifi, bluetooth
Wix
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
WordNet
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
X.org foundation
non-profit organization that develops X11 and other software
X11
windowing system for bitmap displays common on Unix systems
x86
CPU architecture developed by Intel
xargs
Unix command for building and executing commands from standard input
Xcode
IDE for macOS by Apple
XeTeX
TeX typesetting engine supporting Unicode and modern font format as Open Type
Xfce
lightweight desktop environment for Linux
XML, eXchange markup language
SGML markup language
XMLHTTPRequest
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
XSD
XML based language for describing the structure of XML documents
XSL
family of languages used to transform XML documents
XSLT, extensible stylesheet language transformations
XML based language for transformation of XML documents
Xubuntu
Linux distribution based on Ubuntu with Xfce as the default desktop environment
XXX, x-rated content
content which is indecent
Y’UV, YUV
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
Yandex
Russian technology company
YouTube
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
Zig
low level programming language with memory safety features
Zigbee
wireless communication protocol used in IoT applications
zip
file format for compression
zlib
library for compression
Zoom
proprietary software for videotelephony
zstd
lossless data compression algorithm or the program implementing it
ZX Spectrum
8-bit personal computer released in 1982

About

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

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