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
0
s and1
s - 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 -> α
, whereA
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β -> αγβ
, whereA
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
- 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
- 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
- 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
orlNames
- 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
andrunning
are forms of the same lexemerun
- 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 ofT
, then objects of typeT
may be replaced with objects of typeS
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
orA → w
whereA
andB
are nonterminals andw
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
orA → w
whereA
andB
are nonterminals andw
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
- 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
- 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
orA -> a
whereA
andB
are non-terminals anda
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
whereMAJOR
number is incremented when backward incompatible changes are made,MINOR
is incremented when new functionality is added in a backwards-compatible manner, andPATCH
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
orINSERT 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
inwww.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
- 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
- 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.
- When a term is used in a definition it must link to its own definition.
- 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).
- All non basic terms must be defined in this glossary using the most specific terms possible.
- Abbreviations should be defined together with the full term.
- All terms should be (proper) nouns.
- 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.
- Avoid using hyphens in lexemes.
- Only the first usage of a term within a definition is hyperlinked.
- Proper noun lexemes should be external links.
- Do not use links to Wikipedia, this glossary should be self-contained.
- Polysemous terms should be defined separately and distinguished with a contextual term in parentheses. The contextual term should be the most general term.
- The jumps between related terms (
see
) should be as short as possible. - Avoid using cyclic definitions.
- Avoid using rare abbreviations in definitions.
- 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. - No determiners at the beginning of definitions.
- Definitions should not contain external links.
published: 2023-06-30
last modified: 2023-12-01
https://vit.baisa.cz/notes/code/vocabulary/
last modified: 2023-12-01
https://vit.baisa.cz/notes/code/vocabulary/