Topic Library

A

A Star Search
algorithms data_structures A* search is an informed shortest-path algorithm that combines path cost so far with a heuristic estimate to the goal. It evaluates nodes using f(n) = g(n) + h(n), where g is the cost so far and h is ...
Agile Methodology
software_engineering Agile methodology is a family of values, principles, and practices for delivering value incrementally under uncertainty. It emphasizes collaboration, customer feedback, adaptive planning, technical ex...
Algorithm
algorithms Algorithms are step-by-step procedures or formulas for solving problems. They are fundamental to computer science and are used to perform tasks ranging from simple calculations to complex data process...
All-Pairs Shortest Path (APSP)
data_structures algorithms All-Pairs Shortest Path (APSP) finds the minimum distance between every pair of vertices in a graph. Common solutions include Floyd-Warshall for dense graphs and negative edge support, repeated Dijkst...
Array
data_structures An array is a contiguous block of memory that stores a fixed number of elements of the same type. It supports fast random access by index and predictable memory layout, which makes it cache friendly. ...
Array Basics
Arrays are fundamental data structures that store a fixed-size sequence of elements of the same type in contiguous memory. They provide constant-time random access by index, efficient iteration, and f...
ArrayList<E>
ArrayList is a resizable, indexed sequence in Java’s Collections Framework that stores elements in a contiguous array. It provides fast random access, amortized constant-time appends, and flexible cap...
Arrays And Oop
object-oriented_programming data_structures Explores how arrays interact with object-oriented programming: how arrays are represented across languages, how to design classes that encapsulate arrays, typing and polymorphism issues (like variance...
Arrays And Strings
Arrays and strings are fundamental data structures in programming used to store collections of elements and sequences of characters, respectively.
Artificial Intelligence (AI)
Artificial Intelligence (AI) refers to the simulation of human intelligence in machines that are programmed to think and learn. It encompasses a wide range of subfields, including machine learning, na...
Ascii
ASCII (American Standard Code for Information Interchange) is a 7-bit character encoding standard that maps 128 numeric codes to common characters used in English-language text, including letters, dig...
Assembly Language
Assembly language is a type of low-level programming language that correlates closely with the architecture of a computer's central processing unit (CPU). It is often used for direct hardware manipula...
AVL Tree
AVL trees are self-balancing binary search trees that keep node heights tightly constrained to guarantee O(log n) time for search, insertion, and deletion. They maintain a balance factor of −1, 0, or ...

B

Backtracking
Backtracking is a general algorithmic technique for exploring a search space by building solutions incrementally and abandoning partial candidates as soon as they violate constraints. It is often impl...
Bellman-Ford Algorithm
algorithms data_structures Bellman-Ford finds single-source shortest paths in weighted directed graphs, including those with negative edge weights. It reliably detects reachable negative cycles, which makes it more general than...
Best Coding Practices
Best coding practices refer to the established techniques and methodologies used to write clean, maintainable, and efficient code. These practices aim to enhance code readability, reduce errors, and f...
Big O Notation
data_structures algorithms Big O notation describes how the running time or space usage of an algorithm grows with input size. It focuses on dominant terms and ignores constant factors, providing a language to compare and reaso...
Binary
basics_of_computer_science Binary is the base-2 number system that uses only 0 and 1. Computers store and process data as bits, which combine into bytes and larger units. Understanding binary explains how numbers, text, images,...
Binary Search Tree (BST)
data_structures A binary search tree (BST) is a node-based data structure that stores keys in an ordered way to support efficient search, insertion, deletion, and traversal. Each node has up to two children, and the ...
Binary Tree
data_structures A binary tree is a hierarchical data structure where each node has at most two children, commonly referred to as the left and right child. Binary trees underpin many algorithms and specialized structu...
Binary Tree Array Representation
data_structures memory Binary trees can be stored in a flat array by mapping node positions to indices. With 0-based indexing, the left child of i is 2i + 1, the right child is 2i + 2, and the parent is floor((i - 1) / 2). ...
Blockchain
Blockchain is a decentralized digital ledger that records transactions across multiple computers in a way that ensures the security and integrity of the data. It is the underlying technology behind cr...
Boolean
Boolean values are the simplest data type in programming, representing true or false conditions. They are fundamental in controlling the flow of logic in programs, such as through conditional statemen...
Boolean Algebra
Boolean Algebra, named after George Boole, is a form of mathematical logic that deals with binary variables and logical operations. Its operations are analogous to the operations of a switch. It is us...
Boruvka Algorithm
algorithms data_structures Boruvka's algorithm builds a minimum spanning tree by repeatedly connecting each component to its cheapest outgoing edge. It starts with every vertex as its own component and merges components in roun...
Breadth-First Search (BFS)
data_structures algorithms Breadth-first search (BFS) is a method of exploring a graph outward layer-by-layer from a starting point. Its core purpose is to measure distance in terms of edge-steps, making it ideal for finding th...
Bubble Sort
Bubble Sort is a simple comparison-based sorting algorithm that repeatedly steps through a list, compares adjacent elements, and swaps them if they are in the wrong order. This process is repeated unt...
Bytecode
java Bytecode is a form of intermediate code that is typically executed by a virtual machine rather than directly by the underlying hardware. It serves as a bridge between high-level programming languages ...

C

C
C is a general-purpose programming language that has influenced many modern languages. Known for its efficiency and control over system resources, C is widely used in system programming, embedded syst...
C++
C++ is a high-performance programming language known for its capabilities in system programming, real-time applications, and game development. It combines object-oriented, procedural, and generic prog...
Circular Linked List
Circular linked lists are linked list variants in which the last node points back to the first node, forming a closed loop. They enable efficient cycle-based traversals and operations like round-robin...
Classes And Objects
object-oriented_programming Classes and objects are fundamental concepts in object-oriented programming, allowing developers to create modular, reusable, and organized code by encapsulating data and behavior into class structure...
Collision Resolution
data_structures algorithms Collision resolution refers to techniques for handling cases where two or more keys map to the same bucket or index in a hash table. Common strategies include separate chaining and open addressing (e....
Compilation
Compilation is a crucial phase in any programming process that involves translating source code written in a programming language into a lower-level code that a machine can understand and execute. The...
Compiled Languages
Compiled languages are programming languages whose source code is translated by a compiler into machine code (or an intermediate form) before execution. This ahead-of-time translation enables fast sta...
Complete Binary Tree
A complete binary tree is a binary tree in which every level is fully filled except possibly the last, and all nodes in the last level are as far left as possible. This structure guarantees a height o...
Constructors With Java
object-oriented_programming java Constructors in Java are special methods that initialize new objects. They run when you create an instance with new, have the same name as the class, and have no return type. Constructors can be overl...
Control Flow
Flow of control describes the order in which a program's statements, instructions, or function calls are executed. It encompasses sequential execution, decision-making (selection), looping (iteration)...
Control Flow Statements
Control flow statements are essential programming constructs that allow developers to dictate the sequence in which instructions are executed within a program. These statements enable conditional exec...
Cryptographic Hash Function
A cryptographic hash function is a mathematical algorithm that transforms data into a fixed-size hash value, ensuring data integrity and security.
Cuckoo Hashing
data_structures algorithms Cuckoo hashing is a collision-resolution strategy for hash tables that uses two (or more) hash functions. Each key has multiple possible locations; if an insertion finds a spot occupied, it "kicks out...

D

Data Encoding
Data Encoding refers to the process of converting one form of data into another to facilitate storage or communication. This transformation ensures compatibility and efficient processing with differen...
Data Science
Data Science is a multidisciplinary field that uses scientific methods, processes, algorithms, and systems to extract knowledge and insights from structured and unstructured data.
Data Serialization
Data serialization is the process of converting structured data into a format that can be easily stored and transmitted, and then reconverted back into its original structure. It is essential for data...
Data Structure
data_structures A data structure is a specialized way of organizing, storing, and accessing data so that operations like insertion, deletion, search, and traversal can be performed efficiently. Understanding data str...
Database
Databases are organized collections of data that allow for efficient storage, retrieval, and management of information. They are essential for various applications across industries, enabling reliable...
Database Indexing
Database indexing is a technique used by databases to speed up data retrieval. Indexes are auxiliary data structures (like B-trees or hash tables) that let the database find rows without scanning enti...
Debugging Techniques
Debugging techniques are strategies and methods used to identify, analyze, and resolve bugs or defects in software code. These techniques help ensure that applications function as intended by locating...
Deleting A Node No Children
Deleting a node with no children (a leaf) is the simplest deletion case in tree data structures. It involves locating the node, confirming it has no children, severing the link from its parent, and ha...
Deleting A Node One Child
Deleting a node with exactly one child is a common case in tree data structures (especially binary search trees). The operation removes the node and directly connects its parent to the node’s only chi...
Devops
DevOps is a set of practices that combines software development (Dev) and IT operations (Ops) aiming to shorten the systems development life cycle and provide continuous delivery with high software qu...
Dijkstra Algorithm
algorithms Dijkstra's algorithm finds the shortest paths from a single source to all other nodes in a weighted graph with non-negative edge weights. It uses a greedy strategy with a priority queue to always expa...
Directed Acyclic Graph (DAG)
algorithms apis_&_frameworks A directed acyclic graph (DAG) is a directed graph with no cycles, which makes it perfect for modeling dependencies that must flow forward. DAGs guarantee at least one topological ordering of nodes th...
Directed Graph
data_structures algorithms A directed graph (digraph) is a set of nodes connected by edges that have direction. It models one-way relationships like links from page A to page B or task A must happen before task B. Direction cha...
Disjoint Set Union / Union Find
data_structures algorithms Disjoint Set Union (DSU), also called Union-Find, maintains a partition of elements into disjoint sets while supporting fast queries to check if two elements share a set and to merge sets. It uses a p...
Double Ended List
A double-ended list is a linear data structure that supports efficient insertions and deletions at both the front and the back. It is commonly implemented with head and tail references and often uses ...
Doubly Linked List
A doubly linked list is a linear data structure where each node holds a value and two references: one to the next node and one to the previous node. This bidirectional linking enables efficient insert...

E

Edmonds-Chu-Liu Algorithm
data_structures algorithms Edmonds-Chu-Liu finds a minimum-cost arborescence: a directed, rooted spanning tree that minimizes total edge weight. It works by selecting one minimum incoming edge per node, contracting any cycles, ...
Encapsulation
object-oriented_programming java Encapsulation is a fundamental concept in object-oriented programming that involves bundling data and methods that operate on that data within a single unit or class, and restricting access to some of...
Encapsulation In Java
object-oriented_programming java
Endianness
Endianness describes the byte order used to represent multi-byte data (like 16-, 32-, or 64-bit integers) in memory or when transmitted over a byte stream. The two dominant conventions are big-endian ...
Exception Handling
software_engineering python Exception handling is a structured way to detect and respond to abnormal conditions during execution - whether they stem from internal program logic (like invalid operations or runtime computation err...

F

Floyd-Warshall Algorithm
data_structures Floyd-Warshall computes shortest path distances between every pair of vertices in a weighted graph, even with negative edges. It uses dynamic programming over a distance matrix and iteratively improve...
Functional Programming
functional_programming Functional programming is a declarative programming paradigm where computation is modeled as the evaluation of functions without mutable state or side effects. It emphasizes pure functions, immutabili...
Functions And Scope
Functions are fundamental building blocks in programming that allow for code reuse, modularity, and abstraction. Scope defines the visibility and lifetime of variables and parameters in a program, det...
Fundamentals Of Computing
memory basics_of_computer_science Computing turns information into action using layers of abstraction, from bits and logic up to software and networks. You write source code that becomes instructions a CPU can execute, using memory an...

G

Graph
data_structures Graphs model relationships between things using vertices (nodes) and edges (links). They can be directed or undirected, weighted or unweighted, and may contain cycles. In code, graphs are typically st...
Graph Adjacency List
data_structures algorithms An adjacency list represents a graph by storing, for each vertex, a list of its neighboring vertices. It is the go-to structure for sparse graphs because it uses space proportional to V + E. Edge inse...
Graph Adjacency Matrix
data_structures algorithms An adjacency matrix is a square n×n matrix that represents a graph with n vertices. Entry A[i][j] indicates whether an edge exists from i to j, or stores the edge weight in weighted graphs. It offers ...
Graph Cost
algorithms data_structures basics_of_computer_science Graph cost captures how we measure and optimize over weighted graphs, usually by minimizing or maximizing sums of edge weights. Core problems include building minimum spanning trees, finding shortest ...
Graph Depth-First Search
data_structures algorithms Depth-first search (DFS) is a fundamental graph traversal that explores as far as possible along each branch before backtracking. It can be implemented with recursion or an explicit stack, and it work...
Graph Theory
data_structures Graph theory studies networks of nodes and connections, called vertices and edges. It gives us language and tools to model roads, social links, dependencies, and more. You learn how to represent graph...
Graph Traversal
data_structures Graph traversal is the process of visiting vertices and edges of a graph in a systematic order. The two core strategies are breadth-first search and depth-first search, each uncovering structure in di...
Greedy Algorithm
algorithms data_structures basics_of_computer_science python A greedy algorithm builds a solution step by step by always taking the locally best option available. It is fast and simple, often relying on sorting or priority queues to repeatedly pick the next bes...

H

Hash
A hash is a function that converts an input (or 'message') into a fixed-length string of bytes. The output is typically a 'digest' that is unique to each unique input.
Hash Functions
data_structures algorithms Hash functions map data of arbitrary size to fixed-size values (hashes) quickly and deterministically. Good hashes distribute inputs uniformly, minimize collisions, and are efficient. They underpin da...
Hash Table
data_structures Hash tables (also called hash maps or dictionaries) are data structures that store key–value pairs and provide average-case constant-time insertion, lookup, and deletion. They use a hash function to m...
Hash Table Double Hashing
Double hashing is an open addressing collision-resolution technique for hash tables. It uses two hash functions: the first chooses an initial bucket, and the second computes a step size to probe alter...
Hash Table Linear Probing
data_structures Linear probing is a collision-resolution strategy for open-addressed hash tables. When a collision occurs, the algorithm linearly scans subsequent slots in the table (wrapping around) until it finds a...
Hash Table Open Addressing
data_structures algorithms Open addressing is a collision resolution strategy for hash tables that stores all entries inside the table array. When a collision happens, the algorithm probes alternative indices until it finds an ...
Hash Table Quadratic Probing
data_structures Quadratic probing is a collision-resolution strategy for open-addressed hash tables. When a collision occurs, it probes alternative slots using a quadratic function of the probe number to reduce clust...
Hash Table Separate Chaining
data_structures Separate chaining is a collision-resolution technique for hash tables where each table slot (bucket) stores a collection of key–value pairs that hash to the same index, typically using linked lists or...
Hashmap
data_structures A hashmap is a fast key–value data structure that uses a hash function to map keys to positions (buckets) in an array. It provides average-case constant-time insert, lookup, and delete operations by d...
Heap
data_structures Heaps are tree-based data structures that efficiently maintain a partial ordering, enabling fast access to the minimum or maximum element. Most commonly implemented as array-backed binary heaps, they ...
Heap Index Math
data_structures Heap index math is the arithmetic that maps between tree relationships and array positions in array-backed heaps. It provides constant-time formulas to find a node’s parent, children, siblings, and le...
Heapify
data_structures Heapify is the process of rearranging an array or tree so it satisfies the heap property: in a max-heap every parent is ≥ its children; in a min-heap every parent is ≤ its children. It is typically im...
Heaps And Priority Queues
Heaps are specialized tree-based data structures that satisfy the heap property, allowing for efficient priority queue implementations. Priority queues enable elements to be processed based on priorit...
Heapsort
Heapsort is a comparison-based sorting algorithm that uses a binary heap to produce a sorted array in-place. It runs in O(n log n) time in the worst, average, and best cases, uses O(1) extra space, an...
Hexadecimal
basics_of_computer_science Hexadecimal is a base-16 numeral system that uses digits 0–9 and letters A–F to represent values compactly. It maps cleanly to binary because one hex digit equals four bits, making it ideal for readin...
Hidden Markov Model (HMM)
algorithms A Hidden Markov Model (HMM) is a probabilistic model for sequences where the underlying states are hidden but generate observable outputs. It assumes a first order Markov process over hidden states an...

I

If Elseif Else
If–elseif–else is a fundamental control-flow construct that chooses between alternative code paths based on Boolean conditions. It evaluates conditions in order, executes the first matching branch, an...
Immutable Data
functional_programming Immutable data refers to values or structures that cannot be changed after they are created. Instead of modifying data in place, new versions are produced for any update. This model improves predictab...
In-Memory Databases
In-memory databases store data directly in the main memory (RAM) rather than on disk drives, allowing for faster data retrieval and processing speeds. They are utilized in applications requiring rapid...
In-Memory Databases
In-memory databases store data in a computer's main memory (RAM) rather than on traditional disk storage, offering rapid data access and high performance, especially useful for applications requiring ...
In-Order Traversal
In-order traversal is a depth-first algorithm for visiting all nodes of a binary tree in a specific order: left subtree, current node, then right subtree. It is especially useful for binary search tre...
Inheritance
object-oriented_programming java Inheritance is an object-oriented programming mechanism that lets a new class (subclass) reuse and extend the behavior and data of an existing class (superclass). It enables code reuse, establishes na...
Insertion Sort
Insertion sort is a simple, comparison-based sorting algorithm that builds a sorted portion of the list one element at a time by inserting each new element into its correct position. It is in-place, s...
Integer
Integers are a fundamental data type in programming, representing whole numbers without fractional components. They are used extensively for counting, indexing, and other operations that require whole...
Introduction To Algorithms
algorithms data_structures Algorithms are step-by-step methods for solving problems efficiently and correctly. This overview covers what algorithms are, how to reason about correctness, and how to measure time and space with Bi...
Introduction to Data Structures
data_structures algorithms basics_of_computer_science memory software_engineering Data structures are ways to organize data so operations like access, insert, delete, and search are efficient. The right structure can turn a slow program into a fast one by shaping how data is stored...
Introduction To Graphs
data_structures Graphs model relationships between things using nodes and edges. They can be directed or undirected, weighted or unweighted, dense or sparse. You will use them to traverse connections, find paths, sch...
Introduction To Hash Tables
data_structures Hash tables are a fundamental data structure that map keys to values using a hash function, enabling fast average-case insert, lookup, and delete operations. They organize data into buckets indexed by...
Introduction To Heaps
data_structures Heaps are tree-based data structures that maintain a partial order, enabling efficient retrieval of the minimum or maximum element. Typically implemented as arrays representing complete binary trees, ...
Introduction To Linked Lists
Linked lists are fundamental linear data structures made of nodes, where each node stores data and a reference (pointer) to the next node. Unlike arrays, they do not require contiguous memory and allo...
Introduction To Programming
Programming is the process of creating a set of instructions that tell a computer how to perform a task. It involves writing code in a programming language to solve problems or automate tasks.
Introduction to Sorting
Sorting is the process of arranging items in a collection according to a defined order, typically ascending or descending based on a key. It underpins faster searching, efficient data processing, clea...
Introduction To Weighted Graphs
data_structures algorithms A weighted graph is a graph where each edge carries a numeric value called a weight, often representing cost, distance, time, or capacity. Weights change how you evaluate paths and structures, directl...
Iterator
Iterators provide a uniform way to traverse elements of a collection or data source one at a time without exposing its underlying representation. They enable lazy, memory-efficient processing and form...

J

Java
java Java is a high-level, class-based, object-oriented programming language that is designed to have as few implementation dependencies as possible. It is a widely-used programming language for developing...
Java Basics
object-oriented_programming java
Java Virtual Machine (JVM)
java The Java Virtual Machine (JVM) is a crucial component of the Java Runtime Environment (JRE) that enables Java applications to run on any device or operating system without modification. It is responsi...
Java.Util
java.util is a core Java SE package that provides foundational utilities: the Collections Framework (lists, sets, maps, queues), algorithms and utilities (Collections, Arrays, Objects), iteration (Ite...
Java.Util.Scanner
java.util.Scanner is a Java utility class for tokenizing and parsing text input from sources like standard input, strings, files, and streams. It splits input into tokens based on a delimiter (whitesp...

K

Kruskal Algorithm
data_structures algorithms Kruskal is a greedy algorithm for building a minimum spanning tree of a weighted, undirected graph. It sorts edges by weight and adds the next lightest edge that does not form a cycle, using a union-f...

L

Large Language Models (LLM)
Large Language Models (LLMs) are a class of artificial intelligence models designed to understand, generate, and manipulate human language. They are built on neural network architectures and are train...
Linked List
A linked list is a linear data structure composed of nodes, where each node stores data and a reference (link) to the next node. Unlike arrays, linked lists do not require contiguous memory and suppor...
Linked List
A linked list is a linear data structure composed of nodes, where each node holds data and references (pointers) to other nodes. Unlike arrays, linked lists do not store elements contiguously in memor...
Logical Operator
Logical operators combine or invert boolean values to build complex conditions in programs. Core operators include AND, OR, and NOT, with variants like XOR and their short-circuiting behavior. Underst...
Loops And Iteration
Loops and iteration are fundamental programming constructs that repeat a block of code until a condition changes. They enable tasks like processing collections, performing repeated computations, and a...

M

Machine Code
Machine Code is the lowest level of software code that can be directly executed by the machine's CPU. Often represented in binary or hexadecimal format, machine code includes instructions that dictate...
Markov Chain
data_structures algorithms A Markov chain tracks how likely a system is to move from one state to another. The transition data can be stored either as an adjacency list (per-state neighbors and weights) or as an adjacency/trans...
Maximum Spanning Tree
algorithms data_structures A maximum spanning tree (Max-ST) connects all vertices of a weighted, undirected graph with the highest possible total edge weight while avoiding cycles. It is the mirror concept of the minimum spanni...
Merge Sort
algorithms Merge sort is a classic divide-and-conquer sorting algorithm that splits a list into halves, recursively sorts each half, and then merges the sorted halves into a fully ordered list. It runs in O(n lo...
Method
Methods are named blocks of code associated with a type or object that perform actions, compute results, or coordinate behavior. They encapsulate logic behind a stable interface, accept parameters, ma...
Minimum Spanning Tree (MST)
data_structures algorithms A minimum spanning tree (MST) connects all vertices in a weighted, undirected, connected graph with the minimum total edge weight and no cycles. It is a foundational concept for network design, cluste...

N

Natural Language Processing
Natural Language Processing (NLP) is a field of artificial intelligence that focuses on the interaction between computers and humans through natural language. It involves the development of algorithms...
Nonce
A nonce is a unique or random value used in cryptography and computer security to ensure the uniqueness of a transaction or interaction to prevent various types of attacks.
None
None (also called null, nil, or undefined in various languages) represents the absence of a value. It is a fundamental programming concept used to indicate "no data," "not applicable," or "not yet ass...
Null
Null represents the absence of a value or a non-existent reference in programming and databases. It is often used to indicate that a variable, object, or field has been deliberately set to have no val...
Numpy
python NumPy is the fundamental package for numerical computing in Python. It provides the n-dimensional array (ndarray), efficient vectorized operations, broadcasting, a suite of mathematical routines (incl...

O

O(N^2) Quadratic Time
O(N^2) quadratic time complexity represents an algorithm whose performance is directly proportional to the square of the size of the input data set. This kind of complexity is often seen in algorithms...
Object Oriented Programming
Object-Oriented Programming (OOP) is a programming paradigm that uses 'objects' to design software. It allows for structuring programs so that properties and behaviors are bundled into individual obje...
Ordered Array
An ordered array is a contiguous collection of elements maintained in sorted order according to a comparison rule. This structure enables efficient searching (typically O(log n) with binary search) an...

P

Pagerank
algorithms basics_of_computer_science PageRank is a link analysis algorithm that assigns importance scores to nodes in a directed graph using the random surfer model. It models a Markov chain where a surfer follows links with probability ...
Pair Programming
software_engineering testing version_control Pair programming is a collaborative software development technique where two people work together at one workstation (physically or remotely) to design, code, and test a solution. One person acts as t...
Perfect Hashing
algorithms Perfect hashing is a technique for constructing a hash function that maps a fixed, known set of keys to distinct table indices with zero collisions. It provides worst-case O(1) lookup and is especiall...
Pointer
Pointers are variables that store memory addresses instead of direct values. They enable programs to reference, share, and manipulate data in memory, making features like dynamic memory allocation, ef...
Pointer Chasing
Pointer chasing is the process of following chains of memory references (pointers) where each load reveals the address of the next load. It occurs in pointer-rich data structures like linked lists, tr...
Polymorphism
object-oriented_programming java Polymorphism is a core programming concept where values of different types can be treated through a uniform interface. It enables code reuse, extensibility, and decoupling by allowing one operation or...
Post-Order Traversal
Post-order traversal is a depth-first tree traversal strategy that visits all children of a node before the node itself. In binary trees, the order is left subtree, right subtree, then root (LRN). It ...
Pre-Order Traversal
Pre order traversal is a depth-first tree traversal strategy that visits each node before its subtrees. In binary trees, the canonical order is: visit the root, traverse the left subtree, then travers...
Prim's Algorithm
data_structures algorithms Prim's algorithm is a greedy method to build a minimum spanning tree of a connected, weighted, undirected graph. It starts from any vertex and repeatedly adds the smallest edge that connects the growi...
Priority Queue
data_structures A priority queue is an abstract data type that stores items each with an associated priority, always allowing quick access to the highest- or lowest-priority item. It underpins many algorithms and sys...
Programming Languages
Programming languages are formal languages comprising a set of instructions that produce various kinds of output. They are used in computer programming to implement algorithms and create software appl...
Pseudocode
algorithms basics_of_computer_science Pseudocode is a language-agnostic way to describe algorithms and program logic using plain, structured steps. It removes syntax details so you can focus on thinking clearly about the procedure. Teams ...
Python
python Python is a high-level, interpreted, general-purpose programming language known for its readability, simplicity, and extensive standard library. It supports multiple paradigms—procedural, object-orien...
Python Fundamentals
scripting_languages python Python fundamentals cover the core concepts needed to read, write, and reason about Python code. This includes Python’s syntax and indentation, variables and basic data types, control flow (conditiona...

Q

Queue
A queue is a linear data structure and abstract data type that stores elements in the order they are added and retrieves them in first-in, first-out (FIFO) order. Queues support operations like enqueu...
Quick Sort
Quick Sort is a divide-and-conquer comparison sorting algorithm that partitions a list around a pivot element, then recursively sorts the sublists on either side of the pivot. It runs in average O(n l...

R

Rainbow Table
Rainbow tables are precomputed data structures used to reverse cryptographic hashes of unsalted passwords by trading storage space for faster lookups. They build chains of alternating hash and reducti...
Recursion
Recursion is a problem-solving and programming technique where a function calls itself to solve smaller instances of the same problem. It relies on clearly defined base cases to stop and recursive cas...
Red-Black Tree
A red-black tree is a self-balancing binary search tree that guarantees O(log n) time for search, insert, and delete operations. It maintains balance using node colors (red or black) and a set of inva...
Redis
Redis is an open-source, in-memory data structure store that is used as a database, cache, and message broker. Known for its speed and flexibility, Redis supports various data structures like strings,...
Robotics
Robotics is the interdisciplinary field that integrates computer science and engineering to design, construct, operate, and use robots. It involves the creation of systems that can perform tasks auton...
Rust
Rust is a systems programming language that emphasizes speed, memory safety, and parallelism. It is designed to enable developers to create reliable and efficient software with a strong focus on preve...

S

Salt
In cybersecurity and cryptography, a salt is random data added to a password or secret before hashing to make each hash unique. Salts prevent attackers from using precomputed tables (rainbow tables), ...
Scripting Language
scripting_languages A scripting language is a high-level programming language designed to automate tasks, integrate ("glue") software components, and enable rapid development. Scripts are typically executed by an interpr...
Search Algorithm
Search algorithms are methods for locating a target item within a collection or navigating structures like arrays, trees, and graphs. They range from simple scans to sophisticated, heuristic-driven st...
Selection Sort
Selection sort is a simple comparison-based sorting algorithm that repeatedly selects the smallest remaining element and moves it to its correct position. It runs in quadratic time, uses constant extr...
Serialization
Serialization is the process of converting in-memory data structures or objects into a format that can be stored or transmitted and later reconstructed (deserialized). It underpins data persistence, i...
Sha-256
SHA-256 is a cryptographic hash function that produces a 256-bit hash value, often represented as a 64-digit hexadecimal number. It is widely used in security applications and protocols, including TLS...
Shortest Path Problem (SSP)
data_structures algorithms basics_of_computer_science Shortest path problems ask for the minimum-cost route between nodes in a graph. Cost can mean hops, time, distance, or any additive weight on edges. Different constraints call for different algorithms...
Simple Linked List
A simple (singly) linked list is a linear data structure where each element (node) stores a value and a reference to the next node. It enables efficient insertions and deletions at known positions (es...
Single-Pair Shortest Path (SPSP)
data_structures algorithms Single-pair shortest path finds the minimum-cost route between one source node and one target node in a graph. It differs from single-source and all-pairs problems by optimizing effort for just one pa...
Single-Source Shortest Path (SSSP)
data_structures algorithms Single-source shortest path (SSSP) finds the minimum-cost path from one start node to every other node in a weighted graph. The right algorithm depends on edge weights and graph structure: BFS for unw...
Software Engineering
testing software_engineering Software engineering is the systematic application of engineering approaches to the development of software. It involves the principles of software design, development, testing, and maintenance to ens...
Splay Tree
Splay trees are self-adjusting binary search trees that move recently accessed elements to the root via rotations, a process called splaying. They guarantee efficient performance over sequences of ope...
Stable Sorting
Stable sorting preserves the relative order of elements that compare equal under the chosen key or comparator. This property is essential when data has multiple attributes or when you perform multiple...
Stable Sorting
Stable sorting refers to sorting algorithms or implementations that preserve the relative order of records with equal keys. Stability is crucial when performing multi-key sorts, when original order co...
Stack
A stack is a fundamental linear data structure that follows the Last-In, First-Out (LIFO) principle. Items are added and removed only from the top, supporting fast push, pop, and peek operations. Stac...
Stack Implemented By Linked List
A stack is a Last-In, First-Out (LIFO) data structure. Implementing a stack with a linked list uses the list’s head as the stack top, enabling O(1) push and pop without resizing. This approach offers ...
Stacks And Queues
Stacks and queues are fundamental data structures used to store and manage data in a specific order. A stack follows the Last In, First Out (LIFO) principle, whereas a queue follows the First In, Firs...
String
Strings are a fundamental data type used in programming to represent text. They are sequences of characters and are employed in almost every aspect of software development, from handling user input to...
Switch Case
Switch/case is a control-flow construct that selects one of many branches based on the value of an expression. It provides a clearer, often more efficient alternative to long chains of if/else-if stat...

T

Thread Safety
Thread safety is a concept in software development that ensures that shared data structures or resources are accessed correctly when multiple threads are involved, preventing data corruption or unexpe...
Token
basics_of_computer_science apis_&_frameworks A token is a small, meaningful unit used to represent information in computing. In code, lexers convert raw text into tokens that parsers can understand. In security and APIs, tokens carry identity an...
Tokenization
Tokenization is the process of breaking down text into smaller units called tokens, which could be words, phrases, or symbols. It is a fundamental step in natural language processing (NLP) and text an...
Tree
data_structures algorithms A tree is a hierarchical data structure where nodes are connected by edges with exactly one path from the root to any node. It models parent-child relationships and is a special case of a graph that i...
Tree Terminology
An overview of the standard terminology used to describe tree data structures, including nodes, edges, hierarchy relationships (parent, child, ancestor), structural measures (height, depth, degree), c...
Trees And Binary Search Trees
Trees and binary search trees are fundamental data structures used in computer science for organizing and managing data efficiently. Trees provide a hierarchical structure, while binary search trees a...
Trie
data_structures algorithms A trie is a prefix tree for strings that stores characters along paths, sharing common prefixes across keys. It offers O(L) insert, search, and prefix queries where L is the key length, largely indepe...

U

Uml Class Diagram
A UML Class Diagram is a static structural diagram that models the classes, interfaces, attributes, operations, and relationships within a system. It helps visualize the domain and software design, cl...
Undirected Graph
data_structures algorithms An undirected graph models relationships where connections have no direction, like mutual friendships or two-way roads. It consists of vertices (nodes) and edges that connect pairs of vertices. Key id...

V

Variables And Data Types
Variables and data types are foundational concepts in programming, allowing developers to store and manipulate data within a program. Variables act as containers for data, while data types define the ...
Version Control
Version control is a system that records changes to a file or set of files over time so that you can recall specific versions later. It is an essential tool in software development, allowing multiple ...

W

Web Assembly
compiled_languages c c++ rust WebAssembly (Wasm) is a compact, low-level bytecode format designed to run high-performance code safely and portably across platforms, especially in web browsers and lightweight runtimes. Developers t...
Weighted Graph
data_structures A weighted graph is a graph where each edge has a numeric weight that represents cost, distance, capacity, or any measurable value. It can be directed or undirected, and weights may be positive, zero,...

X

XML
XML, or eXtensible Markup Language, is a flexible text format used for structuring, storing, and transporting data. It provides a set of rules for encoding documents in a format that is both human-rea...

Y

Yaml
YAML (YAML Ain't Markup Language) is a human-readable data serialization format that is often used for configuration files and data exchange between languages with different data structures. It is des...