A quick and practical guide to fragmentation and reassembly of IP packets.
Also find me here:
Baeldung Author
baeldung
This is the standard author on the site. Most articles are published by individual authors, with their own profiles, but when multiple people have a strong contribution, we publish collectively here.
Here's what I've written (so far):
Baeldung on Computer Science
- All
- Networking (54)
- Machine Learning (48)
- Algorithms (48)
- Programming (40)
- OS (30)
- Artificial Intelligence (27)
- Math and Logic (25)
- Computer Vision (21)
- Data Structures (20)
- Software Architecture (18)
- Security (18)
- Trees (17)
- Deep Learning (16)
- Core Concepts (16)
- Latex (15)
- Sorting (12)
- Graphs (10)
- Concurrency (9)
- Searching (6)
- Graph Traversal (6)
- Data Science (5)
- Web (4)
- Graph Theory (4)
- Path Finding (3)
Deterministic vs. Stochastic Policies in Reinforcement Learning
Filed under Deep Learning
Explore a deterministic policy that maps each state to a single action and a stochastic policy that maps each state to a probability distribution over actions.
Projection in Computer Graphics
Filed under Core Concepts
Learn how projection works in computer graphics.
Risk Management
Filed under Security
Learn more about risk management.
Channelization Protocols Explained
Filed under Networking
Learn how channelization protocols play a critical role in optimizing the utilization of communication channels in various systems.
Cross-Site Scripting (XSS) Explained
Learn about cross-site scripting (XSS) attacks and how to prevent them.
Optical Flow: Lucas-Kanade Method
Filed under Computer Vision
Explore the Lucas-Kanade method, a fundamental technique in computer vision.
IPv6: Stateful Vs. Stateless
Filed under Networking
Explore the differences between the stateful and stateless addressing modes in IPv6.
Security: What Does It Mean to “Burn a Zero-Day”?
Filed under Security
Explore the term “burn a zero-day” and its implications in the realm of cybersecurity.
Serialization vs. Marshaling
Filed under Programming
Learn how serialization and marshaling work and see their most common use cases.
What is Gradient Orientation and Gradient Magnitude?
Filed under Computer Vision
Explore gradient orientation and magnitude and their applications.
Introduction to Macros in Latex
Filed under Latex
Learn how to work with macros in LaTeX.
Figuring out Subnet ID and Host ID from an IP Address
Filed under Networking
A quick and practical guide to extracting subnet ID and host ID from an IP address.
Oligomorphic vs. Polymorphic vs. Metamorphic Viruses
Filed under Security
Explore various types of viruses in detail, learn about their differences, and investigate how to detect and prevent them.
The Concepts of Dense and Sparse in the Context of Neural Networks
Filed under Machine Learning
Explore the concepts of dense and sparse layers in neural networks, their differences, and their applications
Virtual Memory: Second Chance Replacement
Filed under OS
Explore a second chance replacement as an efficient and versatile page replacement algorithm that effectively manages memory resources in various scenarios.
Microservices vs. Monolithic Architectures
Filed under Software Architecture
Explore microservices and monolithic software architecture.
What Are Contours in Computer Vision?
Filed under Computer Vision
Learn how to find the contour of an object in an image.
The Ostrich Algorithm
Filed under Concurrency, OS
Explore the Ostrich algorithm, how it works, and its advantages and disadvantages for deadlock prevention.
Difference Between MTU and MSS
Filed under Networking
Explore difference between MTU and MSS in the TCP/IP protocol stack.
What Is the Purpose of a Feature Map in a Convolutional Neural Network
Filed under Computer Vision
Learn more about feature maps in a convolutional neural network.
What Is Demand Paging?
Filed under OS
Explore a memory management technique: demand paging.
The Basics of Internet Control Message Protocol
Filed under Networking
Learn about ICMP.
UML State Diagrams Explained
Filed under Core Concepts
Learn about the components and syntax of a UML state diagram.
Domains of Protection in OS
Filed under Security
Explore three crucial protection domains in operating systems: memory protection, process isolation, and privilege levels.
What Are Content Management Systems?
Filed under Web
Learn more about Content Management Systems (CMS).
2D Convolution as a Matrix-Matrix Multiplication
Filed under Computer Vision, Machine Learning
Learn how to do convolution with matrices.
How Do Artificial Immune Systems Work?
Filed under Artificial Intelligence
Learn about Artificial Immune Systems.
RSTP and STP Protocols
Filed under Networking
Explore the key differences between RSTP and STP, including their operation, features, and benefits.
The Spiral Model: An Overview
Filed under Programming, Software Architecture
Explore the spiral model which is a widely used and effective process model for managing software development.
The Bresemhan’s Line Algorithm
Filed under Algorithms
Learn about Bresemhan’s simple and efficient line algorithm for drawing lines on an image.
Wi-Fi 6 Explained
Filed under Networking
Explore the new features of Wi-Fi 6.
DBSCAN Clustering: How Does It Work?
Filed under Machine Learning
Learn more about DBSCAN Clustering.
Key Differences Between NetFlow and sFlow
Filed under Networking
Explore NetFlow and sFlow, popular protocols for monitoring network traffic.
Epoch or Episode: Understanding Terms in Deep Reinforcement Learning
Filed under Deep Learning
Learn the difference between episodes and epochs.
An Introduction to VRRP and HSRP Protocols
Filed under Networking
Explore Virtual Router Redundancy Protocol (VRRP) and Hot Standby Router Protocol (HSRP).
Publisher-Subscriber Model
Filed under Software Architecture
Explore the publisher-subscriber model, how it works, and some common use cases for this architectural pattern.
An Introduction to Peer-to-Peer Network Model
Filed under Networking
Learn about the P2P model, its features, pros, cons, and diverse applications.
What Are Downstream Tasks?
Filed under Machine Learning
Learn about downstream tasks in machine learning.
Image Recognition: One-Shot Learning
Filed under Computer Vision
Explore one-shot learning in image-recognition problems.
JPEG Compression Explained
Filed under Algorithms
Learn how JPEG compression works.
An Introduction to Management Information System (MIS)
Filed under Software Architecture
Explore Management Information Systems as a crucial component of modern business operations.
Differences Between Control, Data, and Management Planes
Filed under Networking
Explore the control, data, and management planes in networking.
Finding a Matrix Determinant
Filed under Math and Logic
Study how to find a matrix determinant.
File Access: Sequential vs. Direct vs. Indexed
Filed under OS
Study sequential, direct, and indexed file access.
Address Binding in Operating Systems
Filed under OS
Learn about address binding in operating systems.
Image Processing: Graph-based Segmentation
Filed under Computer Vision, Graphs
Explore graph-based segmentation.
The Difference Between Connection-Oriented and Connectionless Protocols
Filed under Networking
Learn about the differences between connection-oriented and connectionless protocols, their characteristics, and their use cases.
Simulated Annealing Explained
Filed under Algorithms
Learn about the Simulated Annealing algorithm.
What Is Federated Learning?
Filed under Machine Learning
Explore federated learning.
Understanding Otsu’s Method for Image Segmentation
Filed under Computer Vision
Explore Otsu’s method for image segmentation.
What Does Learning Rate Warm-up Mean?
Filed under Machine Learning
Learn about learning rate warm-up in machine learning.
What Are Videos Technically?
Filed under Core Concepts
Study technical concepts about videos.
What Is Blob Storage?
Filed under Software Architecture, Web
Explore blobs and Blob Storage.
Finding Top 10 Search Terms
Filed under Algorithms, Searching
When trying to find the top search terms, we need to consider whether the data set can fit into memory or whether we need to stream it. We look at a few algorithms for identifying the top k terms with both approaches.
What Is Ethernet?
Filed under Networking
Learn more about Ethernet.
What Is VoIP?
Filed under Networking
Learn about Voice over Internet Protocol.
What Is Pair Programming?
Filed under Programming
Explore pair programming.
Natural Language Processing: Bleu Score
Filed under Artificial Intelligence
Learn about the BLEU score in NLP.
The Bat Algorithm
Filed under Algorithms
Learn about a meta-heuristic algorithm called the Bat algorithm.
Mobile Networking: 1G vs. 2G vs. 3G vs. 4G vs. 5G
Filed under Networking
Explore the mobile networking generations.
Infix, Prefix, and Postfix Expressions
Filed under Math and Logic
Explore infix, prefix, and postfix expressions.
How to Use Packages in LaTeX?
Filed under Latex
Learn how to use packages in LaTeX.
What Is Reverse Engineering in Computer Science?
Filed under Programming
Learn about reverse engineering in the computer science field.
Point-to-Point Protocol (PPP)
Filed under Networking
Explore the Point-to-Point Protocol (PPP).
Slime Mould Algorithm
Filed under Algorithms
Explore Slime Mould Algorithm.
Dimensionality of Word Embeddings
Filed under Machine Learning
Learn about word embedding and its dimensionality.
What Is Cloud Security?
Filed under Security
Learn more about cloud security.
Capability Maturity Model
Filed under Programming
Explore the capability maturity model and its levels.
Image Processing: Sampling and Quantization
Filed under Computer Vision
Learn about image processing as well as sampling and quantization concepts.
Computer Vision: Determining the Distance From an Object in a Video
Filed under Computer Vision
Lear how to calculate the distance from an object in a video.
What Is Dynamic DNS?
Filed under Networking
Learn about DDNS and how it’s different from a standard DNS server.
What Are Serialization and Deserialization in Programming?
Filed under Programming
A quick and practical introduction to serialization/deserialization.
Citation Styles in LaTeX
Filed under Latex
Explore different citation styles available in LaTeX.
Random Access Protocols: Pure ALOHA
Filed under Networking
Explore the Pure ALOHA protocol
Cuckoo Search Algorithm
Filed under Algorithms
Learn more about the Cuckoo Search Algorithm.
How Fonts Work in LaTeX?
Filed under Latex
Learn how to change the font of a LaTeX document to meet your needs.
What Is an API Endpoint?
Filed under Programming, Software Architecture
Learn about endpoints and their role in API design and development.
How Does AO* Algorithm Work?
Filed under Graph Traversal, Path Finding
Learn about AO* as an example of best-first search algorithms.
The Sub-Layers of the Data Link Layer
Filed under Networking
Explore the sub-layers of the data link layer.
The Difference Between Exploit and Payload
Filed under Security
Learn the difference between an exploit and a payload.
What Are Planar Graphs?
Filed under Graphs
Explore plane and planar graphs.
Black Widow Optimization Algorithm (BWO)
Filed under Algorithms
Learn about Black Widow Optimization, a metaheuristic algorithm inspired by black widow spiders.
Interfaces vs. Base Classes: the Similarities and Differences
Filed under Programming, Software Architecture
Learn how an interface compares to a base class.
Difference Between Fundamental Matrix and Essential Matrix
Filed under Artificial Intelligence, Math and Logic
Explore the fundamental matrix and the essential matrix.
Single Shot Detectors (SSDs)
Filed under Computer Vision, Deep Learning
Learn more about Single Shot Detectors.
What Is Referential Transparency?
Filed under Programming
Explore referential transparency in programming.
Is 0.0.0.0 a Valid IP Address?
Filed under Networking
Learn what is the IP address 0.0.0.0 and how to use it.
What Is Agile Programming?
Filed under Programming
Learn about the Agile approach, its values and principles, and the differences between Agile and waterfall models.
The Ramsey Theory
Filed under Graph Theory
A quick and practical guide to the Ramsey Theory.
Maximum Likelihood Estimation
Filed under Machine Learning
Learn about maximum likelihood estimation.
What Are Perfect Graphs?
Filed under Graph Theory
Learn about perfect graphs.
Firefly Algorithm
Filed under Algorithms
A quick and practical guide to Firefly algorithm.
Different Types of System Calls
Filed under OS
Learn about system calls and their types.
Sparse Coding Neural Networks
Filed under Machine Learning
Study sparse coding neural networks.
Front-End vs. Back-End Development
Filed under Programming
Learn about front-end and back-end development and their differences.
What Are HTTP Flood Attacks?
Filed under Networking, Security
Explore HTTP flood attacks and prevention strategies.
Circuit Switching vs. Packet Switching
Filed under Networking
Explore the differences between circuit and packet switching techniques.
What Is the Difference Between GET and POST Methods?
Filed under Networking
Learn the differences between the GET and POST methods.
Merge Sort: Top-Down vs. Bottom-up
Filed under Sorting
Take a closer look at the divide and conquer-based efficient sorting algorithm known as Merge sort.
Cryptography: Known-Plaintext Attack vs. Chosen-Plaintext Attack
Filed under Security
Explore the differences between known-plaintext and chosen-plaintext cryptographic attacks.
Artificial Bee Colony
Filed under Algorithms, Artificial Intelligence
Learn about the artificial bee colony metaheuristic.
KISS Software Design Principle
Filed under Programming
Learn about the KISS software principle, why we should use it, and how to apply it to our programs.
Web Crawling vs. Web Scraping
Filed under Web
Explore web crawling and web scraping, two concepts of data mining used to understand website data and collect website data.
Differences Between Homography and Affine Transformation
Filed under Math and Logic
Explore affine transformation and homography, two essential techniques used to align and correct geometric distortion in images.
DRY Software Design Principle
Filed under Programming
Learn about the DRY software principle and its advantages.
Remote Code Execution (RCE) and How to Prevent It?
Filed under Networking
Learn about the remote code execution vulnerability.
Smart Contracts – Blockchain
Filed under Software Architecture
Learn about smart contracts.
What Is Space Carving?
Filed under Computer Vision
Explore the main principles and applications of Space Carving.
How Does a Load Balancer Work?
Filed under Networking, Software Architecture
Dive deep into the architecture of load balancers.
Differences Between AR, VR, MR, and XR
Filed under Artificial Intelligence
Learn about the virtuality continuum and the differences between AR, VR, and MR.
Error Handling
Filed under Programming
Explore exceptions and how to handle them.
2-Way and K-Way Merging
Filed under Sorting
Explore the K-Way Merge and Two Way Merge algorithms.
What Is a Data Lake?
Filed under Data Science, Machine Learning
Learn about data lakes which harnesses the strength of big data technology and combined with the nimbleness of self-service.
What Is Multi-Task Learning?
Filed under Artificial Intelligence
Explore the concept of multi-task learning.
What Is Adware?
Filed under Security
Learn about adware.
Continuous Integration vs. Continuous Deployment vs. Continuous Delivery
Filed under Software Architecture
Explore main processes that together constitute the software production pipeline and their differences.
What Are the Differences Between Static and Dynamic Routing?
Filed under Networking
Learn more about the difference between static and dynamic routing.
One-Hot Encoding Explained
Filed under Machine Learning
Introduction to one-hot encoding.
Feature Selection in Machine Learning
Filed under Machine Learning
Introduction to feature selection methods in machine learning.
Probability: Joint vs. Marginal vs. Conditional
Filed under Math and Logic
Explore concepts of marginal, joint, and conditional probabilities.
Translation Invariance and Equivariance in Computer Vision
Filed under Computer Vision
Explore the concepts of translation invariance and translation equivariance.
Why Use a Surrogate Loss
Filed under Deep Learning, Machine Learning, Math and Logic
Learn why we need surrogate loss functions as well as see examples of their effectiveness.
Calculating the Odds of a Team Winning a Sports Match Given Full History
Filed under Math and Logic
A quick and practical guide to calculating the odds of a team winning a sports match.
What Is Swarm Intelligence?
Filed under Artificial Intelligence
Learn about Swarm Intelligence!
What Are Virtual Private Networks?
Filed under Networking
Learn about Virtual Private Networks.
Pigeonhole Sort Explained
Filed under Sorting
Learn how the pigeonhole sorting algorithm works and when it’s appropriate to use it.
The Viola-Jones Algorithm
Filed under Computer Vision
Explore the Viola-Jones algorithm.
Dividing Table Cells in LaTeX
Filed under Latex
Learn how to split table cells horizontally, vertically, and diagonally in LaTeX.
How to Describe Network Performance?
Filed under Networking
Explore several terminologies that are used to describe network performance.
How to Include PDF Files in LaTeX Documents
Filed under Latex
Learn how to insert pages from an existing PDF file into your LaTeX document.
Webhooks Explained
Filed under Networking, Software Architecture
Learn about different methods of sending information about real-time events between applications.
Wrapping Text in LaTeX Tables
Filed under Latex
Learn how to wrap text in a LaTeX table.
Difference Between API and SDK
Filed under Programming
Explore the difference between an API and an SDK.
Word-Count in LaTeX Documents
Filed under Latex
Learn how to count words in a LaTeX document.
Stateful vs. Stateless in Programming
Filed under Programming
Learn about stateful and stateless programming.
Language Processors Explained
Filed under Programming
Learn about programming language processors and their differences.
Understanding Activation Functions
Filed under Artificial Intelligence
Learn why activation functions are an essential part of neural network architectures.
How to Write URLs in LaTeX
Filed under Latex
Learn how to show URLs in LaTeX.
What Is Content-Based Image Retrieval?
Filed under Machine Learning
Learn about Content-Based Image Retrieval and its differences from Text-Based Image Retrieval.
How Does AI Play Chess?
Filed under Artificial Intelligence
Lear how AI plays chess.
What Are Channels in Convolutional Networks?
Filed under Deep Learning
Learn about the channels of a Convolutional Neural Network (CNN) and how to modify input images.
Best Data Structure for Dictionaries
Filed under Data Structures
Learn how to implement a dictionary of a natural language.
Defining Loops in a LaTeX Document
Filed under Latex
Learn how to define loops in LaTeX.
Port Scanning Explained
Filed under Networking, Security
Learn about port scanning types and methods.
How to Use SVG Images in LaTeX
Filed under Latex
Learn how to insert SVG images into LaTeX documents.
How to Include Images in LaTeX Documents
Filed under Latex
Learn how to insert images into LaTeX documents.
Adding Hyperlinks in LaTeX
Filed under Latex
Learn how to add hyperlinks to LaTeX documents.
Caching and CDNs: What Is the Difference?
Filed under Networking, Software Architecture
Learn about web caching, CDNs and their advantages.
Object Recognition Tasks and Their Differences
Filed under Computer Vision
Learn about the main tasks of object recognition.
Positioning Figures in LaTeX
Filed under Latex
Learn several techniques for positioning figures in a LaTeX document.
What Is One Class SVM and How Does It Work?
Filed under Machine Learning
Explore how they differ from basic SVMs.
What Is the Difference Between Signed and Unsigned Variables?
Filed under Programming
Understand how numbers are represented in binary and learn the differences between signed and unsigned variables.
What Is a Content Delivery Network (CDN)?
Filed under Networking
Learn how CDNs work, their advantages, and the types of content they can serve.
Harris Corner Detection Explained
Filed under Algorithms
A quick and practical guide to Harris corner detection.
Why Isn’t Heapsort Stable?
Filed under Sorting
Learn why the heapsort algorithm is not stable.
Hash vs. Message Authentication Code
Filed under Security
Learn the differences between Hashing and Message Authentication Codes (MACs), and how they can be used together.
Counting Sort vs. Bucket Sort vs. Radix Sort
Filed under Sorting
Explore three interesting sort algorithms that don’t use comparisons.
How to Use Gabor Filters to Generate Features for Machine Learning
Filed under Computer Vision, Machine Learning
Learn about the Gabor convolution filters, commonly used in image processing.
Fibonacci Search
Filed under Searching
Learn how Fibonacci search works.
Computer Boot Process Explained
Filed under OS
Explore every step of the booting process.
Correcting Fisheye Images
Filed under Math and Logic
Explore different methods for programmatically correcting fisheye images.
Message Brokers vs. Enterprise Service Buses
Filed under Software Architecture
Explore the differences between a message broker and an enterprise service bus.
Differences Between NTFS, FAT32 and exFAT
Filed under OS
Explore three major file systems that are widely used nowadays.
Win Gomoku with Threat Space Search
Filed under Machine Learning
Learn how to win a Gomuku game with AI strategy.
Type Safety in Programming Languages
Filed under Programming
Explore in detail the type safety issues in computer programming.
Understanding Heapsort
Filed under Sorting
Explore the Heapsort algorithm.
Neural Networks: Binary vs. Discrete vs. Continuous Inputs
Filed under Machine Learning
Learn about the difference between binary, discrete and continuous input data.
Differences Between Gradient, Stochastic and Mini Batch Gradient Descent
Filed under Machine Learning
Learn about different types of gradient descent optimization methods.
Why Is Using Global Variables Considered a Bad Practice?
Filed under Programming
Learn about global variables.
The Curse of Dimensionality
Filed under Computer Vision
Explore the problems related to the Curse of Dimensionality.
Fuzzy Search Algorithm for Approximate String Matching
Filed under Searching
Learn how to use the Fuzzy algorithm to search in texts.
Multi-Layer Perceptron vs. Deep Neural Network
Filed under Deep Learning, Machine Learning
Learn about the difference between Multi-layer Perceptron and Deep Neural Network
Fast Fourier Transform (FFT)
Filed under Math and Logic
Learn how Fast Fourier Transform works.
Silhouette Plots
Filed under Data Science, Machine Learning
Explore the silhouette values for clustering.
Node Impurity in Decision Trees
Filed under Machine Learning
Explore node impurity in Decision Trees.
Model-free vs. Model-based Reinforcement Learning
Filed under Deep Learning
Learn about the difference between the Model-free vs. Model-based Reinforcement Learning
Differences Between Missing Data and Sparse Data
Filed under Data Science, Machine Learning
Learn the differences between sparse and missing data.
Disparity Map in Stereo Vision
Filed under Computer Vision, Core Concepts
Explore the concept of disparity, and learn about its importance in stereo vision.
Interpolation and Regression: Similarities and Differences
Filed under Math and Logic
Learn about the concepts of interpolation and regression
MapReduce Algorithm
Filed under Algorithms
Learn about MapReduce, a widely used algorithm due to its capability of handling big data effectively and achieving high levels of parallelism in cluster environments.
Comparing TLS and DTLS
Filed under Networking
Learn about the difference between TLS and DTLS.
Introduction to Resource Description Framework (RDF)
Filed under Programming
Learn about Resource Description Framework (RDF).
What Are Callback Functions?
Filed under Programming
Explore the callback functions.
32-Bit vs. 64-Bit Operating Systems
Filed under OS
Explore differences between 32-bit and 64-bit operating systems.
Sort References by Order of Appearance with LaTeX/BibTeX
Filed under Latex
Learn how to sort a bibliography by order of appearance in a LaTeX document
Comparing Naïve Bayes and SVM for Text Classification
Filed under Machine Learning
In this tutorial, we analyze the advantages and disadvantages of Naïve Bayes (NB) and Support Vector Machine (SVM) classifiers applied to text classification.
Difference Between Self-Signed CA and Self-Signed Certificate
Filed under Security
Learn about the difference between self-signed CA and a self-signed certificate
Intersection Over Union for Object Detection
Filed under Computer Vision, Math and Logic
Learn about Intersection over Union.
What Is a URI?
Filed under Networking
Learn about Unified Resource Identifiers.
Efficiently Sorting Linked Lists
Filed under Sorting
Explore the most efficient ways to sort linked lists.
Ant Lion Optimization
Filed under Algorithms
Learn about the Ant Lion Optimizer which gives us a meta-heuristic algorithm for optimization problems
Differences Between Cloud Computing and Distributed Computing
Filed under Software Architecture
Learn about the differences between cloud computing and distributed computing.
Dragonfly Algorithm
Filed under Algorithms, Security
Learn about the Dragonfly Algorithm by describing its different steps and the mathematical model
Lambda Functions
Filed under Programming
Learn about lambda functions and their use in programming.
Robust Estimators in Robust Statistics
Filed under Math and Logic
Learn the main concepts of Robust Statistics and the most common estimators of the central tendency and the statistical dispersion
Real-World Uses for Genetic Algorithms
Filed under Deep Learning, Machine Learning
Learn where Genetic Algorithms are used.
What Is the Difference Between Markov Chains and Hidden Markov Models?
Filed under Artificial Intelligence
A quick and practical comparison of Markov Chains and Hidden Markov Models
The Reparameterization Trick in Variational Autoencoders
Filed under Computer Vision, Deep Learning
Learn about the reparameterization trick in variational autoencoders
Autoencoders Explained
Filed under Deep Learning, Machine Learning
Learn about common autoencoder types.
Training and Validation Loss in Deep Learning
Filed under Artificial Intelligence
Learn about training and validation loss ad how to interpret them in Deep Learning
Virtual Memory Address
Filed under OS
Learn about Virtual Memory Address concept.
ML: Train, Validate, and Test
Filed under Machine Learning
Learn about the training, validation, and testing aspects of neural networks
Q-Learning vs. SARSA
Filed under Machine Learning
An overview of the Q-learning and SARSA algorithms.
Differences Between SGD and Backpropagation
Filed under Machine Learning
Learn about the differences between Backpropagation (BP) and Stochastic Gradient Descent (SGD).
Master Theorem for Asymptotic Analysis
Filed under Math and Logic
Explore the Master Theorem to compute the runtime of the algorithm.
Looking for a CS Technical Editor for Baeldung (not open)
Filed under Core Concepts
Join the Baeldung editorial team.
N-Tier Architecture
Filed under Software Architecture
Learn why n-tier architects are essential in software design
The Importance of Central Limit Theorem
Filed under Math and Logic
Learn about Central Limit Theorem and why it’s useful.
Moth Flame Optimization
Filed under Algorithms
Explore the Moth Flame Optimization algorithm.
Why Are Floating Point Numbers Inaccurate?
Filed under Math and Logic
Learn how floating-point numbers are represented in a computer and what limitations they have.
Fundamentals of Sandboxing
Filed under Core Concepts, OS
Explore the different concepts and architectures used to sandbox applications.
Guide to the “Cpu-Bound” and “I/O Bound” Terms
Filed under OS
Learn about the CPU-bound and I/O bound operations.
Ensemble Learning
Filed under Machine Learning
Learn about the ensemble learning method in machine learning.
The Difference Between 127.0.0.1 and Localhost
Filed under Networking
Learn the difference between 127.0.0.1 and localhost
Prim’s Algorithm
Filed under Graph Traversal, Trees
Explore Prim’s algorithm for finding the Minimum Spanning Tree in graphs.
Stratified Sampling in Machine Learning
Filed under Machine Learning
A quick and practical guide to Stratified Sampling in Machine Learning.
The Difference Between a Heuristic and an Algorithm
Filed under Algorithms
Learn the difference between a heuristic and an algorithm.
Minimax Algorithm
Filed under Graph Traversal
Explore the Minimax algorithm’s functionality and the domains where it’s usually applied.
Calculating Total Transmission Time of a Packet
Filed under Searching
Learn about packet transmission time and how we can approximately calculate it
Languages for Data Structures
Filed under Programming
Learn how programming languages use different data structures.
Layered Architecture
Filed under Software Architecture
Learn about layered architecture design.
How Many Principal Components to Take in PCA?
Filed under Artificial Intelligence, Math and Logic
Explore the Principal Component Analysis.
Statically Typed vs Dynamically Typed Languages
Filed under Programming
Learn the difference between statically and dynamically typed languages.
Real World Examples of Tree Structures
Filed under Data Structures, Trees
Have a look at real-world examples of tree structures, in the areas of game development, databases, and machine learning.
Segment Tree and Its Applications
Filed under Data Structures, Trees
Learn how to create a segment tree.
Understanding Routing Table Entry
Filed under Networking, Security
Learn what routing tables are and how they are used.
Clean Code – Formatting
Filed under Programming
Learn about good practice for code formatting.
Pattern Recognition in Time Series
Filed under Machine Learning
A quick and practical guide to detecting patterns in time series.
Distributed System vs. Distributed Computing?
Filed under Software Architecture
Learn the difference between distributed systems and distributed computation.
Find the Majority Element of an Array
Filed under Searching
Learn how to find the majority value of an array.
Request Timed Out vs. Destination Host Unreachable
Filed under Networking
Learn about “Request Timed Out” and “Destination Host Unreachable” error messages and how to diagnose them.
The Difference Between an Argument and a Parameter
Filed under Programming
Learn the difference between arguments and parameters.
Edge Relaxation in Dijkstra’s Algorithm
Filed under Graph Traversal, Path Finding
Explore the concept of relaxing edges and its importance in various shortest path algorithms.
Binary Trees vs. Linked Lists vs. Hash Tables
Filed under Data Structures, Math and Logic
Learn the difference between binary trees, linked lists and hash tables.
Open-Source AI Engines
Filed under Artificial Intelligence, Machine Learning
Learn about available free AI engines and how they work.
Hash Table vs. Balanced Binary Tree
Filed under Data Structures
Explore hash tables and self-balancing binary search trees.
What Is a Loop Invariant?
Filed under Programming
Learn about the loop invariant property and why it is important for proving algorithms.
LL vs. LR Parsing
Filed under Core Concepts
Explore the differences between LL and LR parsers.
Introduction to ASCII Code
Filed under Core Concepts
An overview of ASCII code
External Sorting vs Internal Sorting
Filed under Sorting
A comparison of external and internal sorting algorithms
Stack Data Structure
Filed under Data Structures
Learn the basic features and common operations of a stack
How to Find an Area of Overlapping Rectangles
Filed under Algorithms, Math and Logic
Learn how to find rectangles’ overlapping area fast.
Compiled vs. Interpreted Programming Languages
Filed under Programming
Explore the differences between compiled and interpreted programming languages.
What Does “Busy Waiting” Mean in Operating Systems?
Filed under Concurrency, OS
Learn about busy waiting and what it is used for.
Introduction to Assembly Language
Filed under Core Concepts, Programming
Read a brief overview of Assembly language.
Binary Search Tree with Strings
Filed under Algorithms, Trees
Explore the basic operations of a BST that contains strings as keys.
How to Calculate Receptive Field Size in CNN
Filed under Deep Learning, Machine Learning
Learn what the Calculate Receptive Field is and how to calculate it.
What Is Thrashing?
Filed under OS
Understand the concept of thrashing in Operating Systems.
When Will the Worst Case of Merge Sort Occur?
Filed under Sorting
Learn about the time complexity of Merge Sort.
Sockets: Close vs. Shutdown
Filed under Networking
Explore the main concepts of sockets and their operational behavior.
Dijkstra vs Floyd-Warshall Algorithms
Filed under Algorithms, Math and Logic
Learn the key differences between Dijkstra and Floyd-Warshall algorithms.
Merging Two Binary Search Trees
Filed under Algorithms, Trees
Learn about algorithms that can be used to merge two binary search trees.
Job vs. Task vs. Process
Filed under OS
Learn about the difference between Job, Task, and Process
Understanding Time Complexity Calculation for Dijkstra Algorithm
Filed under Path Finding
Understand Dijkstra’s algorithm and its time complexity.
Expression vs. Statement
Filed under Programming
Learn some basic similarities and differences between statements and expressions
Difference Between Access Point, Station, Bridge, and Router
Filed under Networking, Security
Compare bridge, station, router, and access points.
Compile Time vs. Load Time vs. Execution Time
Filed under OS
A quick explanation of compile/load/execution time terms.
Propagation Delay vs Transmission Delay
Filed under Networking
Learn about the difference between Propagation Delay and Transmission Delay and how to calculate them.
Priority Queue
Filed under Data Structures
Explore the data structure called a priority queue.
Physical vs. Virtual Memory
Filed under OS
Learn about physical and virtual memory and why we need these two separate entities
Quicksort vs. Heapsort
Filed under Sorting
Learn about the difference between Quicksort and Heapsort
Process vs. Thread
Filed under Concurrency, OS
A quick and practical comparison of threads and processes.
Which Sorting Algorithm to Use?
Filed under Sorting
Learn about sorting algorithms and when to apply them.
Open Source Neural Network Libraries
Filed under Deep Learning, Machine Learning
Explore some commonly used open-source libraries for neural networks.
What’s the Difference Between User and Kernel Modes?
Filed under OS
A quick and practical comparison between user and kernel modes.
Applications of Binary Trees
Filed under Algorithms, Trees
Learn where the binary trees are used
What Is an OS Kernel?
Filed under OS
Explore the definition of the kernel in OS.
Deadlock, Livelock and Starvation
Filed under Concurrency, OS
Learn about basic concurrency problems.
Client vs. Server Terminology
Filed under Networking
Learn about Client and Server network modeling.
Saga Pattern in Microservices
Filed under Software Architecture
Learn about the Saga architecture pattern to implement distributed transactions in a microservice-based application.
Semantic Similarity of Two Phrases
Filed under Artificial Intelligence
Learn about the definition and types of text similarity.
Semaphore vs. Mutex
Filed under Concurrency, OS
Learn about the differences between mutexes and semaphores.
Brewer’s CAP Theorem
Filed under Networking
In this tutorial, we’ll introduce and explain the CAP theorem.
Topic Modeling with Word2Vec
Filed under Algorithms, Machine Learning
Learn about the definitions and techniques of topic models, word embeddings, and WordVec.
Networking: IPv4 vs. IPv6 Addresses
Filed under Networking
Compare two different IP address types – IPv4 and IPv6.
Finding the Lowest Common Ancestor in a Directed Acyclic Graph
Filed under Algorithms, Graphs
In this tutorial, we’ll introduce one of the algorithms of finding the lowest common ancestor in a directed acyclic graph. Also, we’ll talk about its time complexity.
Inter-Process Communication
Filed under OS
Explore computer system processes and various mechanisms of communications between them.
Dynamic Linking vs. Dynamic Loading
Filed under OS
Explore various aspects of linking and loading in a computer application.
Weakly Supervised Learning
Filed under Algorithms, Artificial Intelligence, Machine Learning
Learn about strong and weak supervision learning.
How to Determine if a List of Polygon Points Are in Clockwise Order
Filed under Algorithms, Math and Logic
In this tutorial, we’ll create a simple algorithm to determine the polygon points’ orientation. Furthermore, we’ll revise and use some formulas for the area computation.
Epoch in Neural Networks
Filed under Artificial Intelligence, Deep Learning, Machine Learning
Learn about the epoch concept in neural networks.
Epsilon-Greedy Q-learning
Filed under Machine Learning
Learn about q-learning, a reinforcement learning technique.
Advanced Data Structures
Filed under Data Structures
Explore several advanced data structures.
Find Cycle Start Node in a Singly Linked List
Filed under Algorithms, Data Structures
In this tutorial, we’ll learn how to find a cycle starting node in a linked list.
How to Calculate the Number of Different Binary and Binary Search Trees
Filed under Algorithms, Searching
Learn about computing the number of different Binary and Binary Search Trees.
The Pigeonhole Principle
Filed under Math and Logic
Learn about the mathematical idea behind the Pigeonhole Principle
Calculating the Range of IP Addresses from Subnet Mask
Filed under Networking
Learn how to find the range of IP addresses given a subnet mask.
CRC Vs Checksum
Filed under Core Concepts
Understand the different between CRC and Checksums
Fundamental Difference Between Hashing and Encryption Algorithms
Filed under Algorithms, Core Concepts
Learn about hashing and encryption algorithms.
Heap vs Binary Search Tree
Filed under Algorithms, Data Structures, Trees
Have a look at the similarities and differences between the Heap and Binary Search Tree (BST) data structures.
Multiclass Classification Using Support Vector Machines
Filed under Artificial Intelligence, Machine Learning
Learn how SVM is applied for the multiclass classification problem
What Is a Semaphore?
Filed under Concurrency
Learn about possible process synchronization problems to better understand how to use semaphores effectively
What Is an Augmenting Path?
Filed under Graph Theory, Graphs
Learn what augmenting paths are in the context of maximum matchings and maximum flows
Using Leaf Count to Find Total Number of Nodes in a Full K-Ary Tree
Filed under Algorithms, Trees
Learn how to find the total number of nodes in a K-Ary Tree using the number of leaves.
Height of a Balanced Tree
Filed under Trees
Have a look at how to determine the height of a balanced Binary Search Tree.
Algorithms for Determining Text Sentiment
Filed under Artificial Intelligence
A quick and practical introduction to sentiment analysis.
Time and Space Complexity of Adjacency Matrix and List
Filed under Graphs
Learn one of the main aspects of Graph Theory — graph representation.
Sort Points in Clockwise Order
Filed under Sorting
Learn how to sort an array of points in clockwise order.
Introduction to Firewalls
Filed under Networking, Security
Learn the basics of firewalls, and explore how they’re used in network security.
How to Calculate the Area of a 2D Polygon?
Filed under Algorithms, Math and Logic
Learn how to measure the area of general 2D polygons
Reconstructing a Tree From Its Depth-First Traversals
Filed under Algorithms, Data Structures, Trees
Learn how to reconstruct a tree from its depth-first traversals.
How to Validate a Binary Search Tree?
Filed under Data Structures, Trees
A quick and practical overview of Binary Search Tree validation.
Introduction to SSH
Filed under Networking, Security
Get familiar with the concept of a Secure Shell.
F-1 Score for Multi-Class Classification
Filed under Deep Learning, Machine Learning
A quick and practical overview of F-1 Score for Multi-Class Classification.
The Difference Between Epoch and Iteration in Neural Networks
Filed under Artificial Intelligence
A quick and practical comparison of epoch and iteration in neural networks.
How to Prove That a Problem Is NP-Complete?
Filed under Algorithms, Math and Logic
Learn how to prove the NP-Completeness of the problem.
Introduction to the Domain Name System (DNS)
Filed under Networking
Take a deep dive into the Domain Name System.
Introduction to VLAN
Filed under Networking
Learn the concept of Virtual Area Local Networks.
Normalizing Inputs for an Artificial Neural Network
Filed under Deep Learning, Machine Learning
Learn how inputs normalization helps model training of neural networks
What Is a Learning Curve in Machine Learning?
Filed under Machine Learning
Find out what learning curves are and how to use them to evaluating your Machine Learning models.
Introduction to the Classification Model Evaluation
Filed under Machine Learning
A quick and practical introduction to the Classification Model evaluation.
Introduction to DHCP
Filed under Networking
Learn about Dynamic Host Configuration Protocol (DHCP)
Introduction to RAID
Filed under OS
Learn about Redundant Array of Independent Disks (RAID) to achieve high performance and better reliability in a computer system.
Sorting the Elements in a Binary Tree
Filed under Algorithms, Trees
Learn how to sort elements in binary trees and their complexity.
The Complexity of Towers of Hanoi
Filed under Algorithms
See how to solve the game Towers of Hanoi programmatically and what complexity it requires.
What Is a Race Condition?
Filed under Concurrency
A quick and practical introduction to data races.
Detecting Cycles in a Directed Graph
Filed under Algorithms, Graphs
A quick and practical introduction to detecting cycles in a directed graph.
Virtualization vs Containerization
Filed under Networking, OS
Learn the difference between virtualization and containerization.
The Difference Between Asynchronous and Multi-Threading
Filed under Concurrency
Explore the definitions of asynchronous programming and multithreaded programming
Difference Between a Feature and a Label
Filed under Machine Learning
Explore two important conceptual definitions for supervised learning – features and labels in a dataset.
Function Parameters: Call by Reference vs Call by Value
Filed under Programming
Explore the concepts of pass by value and pass by reference.
Computing the Diameter of a Network
Filed under Algorithms, Networking
Explore the problem of finding the diameter of a graph.
Big Data vs Data Mining
Filed under Data Science
Explore the main conceptual and technical differences between Big Data and Data Mining.
Cache Write Policy
Filed under OS
Explore various write policies used in caches.
Data Normalization Before or After Splitting a Data Set?
Filed under Machine Learning
A quick and practical guide on when to apply data normalization.
What Is the Difference Between Labeled and Unlabeled Data?
Filed under Computer Vision
Explore the information-theoretic explanation of the difference between labeled and unlabeled data.
Introduction to Emotion Detection in Written Text
Filed under Artificial Intelligence
Study the theoretical foundations of the problem of emotion detection in texts.
A Simple Explanation of Naive Bayes Classification
Filed under Machine Learning, Math and Logic
A comprehensive overview of Naive Bayes Classification.
Computer Science Definition of Entropy
Filed under Core Concepts
A comprehensive introduction to Entropy.
Maximum Value of an Integer: Java vs C vs Python
Filed under Programming
Explore the differences between these three top languages in relation to the maximum possible integer value.
What Are the Prerequisites for Studying Machine Learning?
Filed under Artificial Intelligence
Explore common prerequisites to the study of machine learning.
Go-Back-N Protocol
Filed under Networking
Learn how the Go-Back-N protocol works for both the sender and the receiver side to ensure reliable data transfer.
What Is the Difference Between a Directed and an Undirected Graph
Filed under Data Structures, Graphs
Explore the differences between directed and undirected graphs.
Advantages and Disadvantages of Neural Networks
Filed under Artificial Intelligence
Learn when it’s advisable to use neural networks and when we should avoid using neural networks and favor other techniques instead
Introduction to Virtualization
Filed under Networking, OS
Learn how virtualization is used to divide computer resources.
Process Control Block
Filed under OS
Learn about process control blocks that allow computer systems to execute multiple programs simultaneously.
Euclidean Distance vs Cosine Similarity
Filed under Math and Logic
Study two important measures of distance between points in vector spaces: the Euclidean distance and the cosine similarity.
Divide and Conquer Algorithms
Filed under Algorithms
Explore the strategy of divide and conquer, with the use of recursion.
Publicly Available Spam Filter Training Sets
Filed under Artificial Intelligence
Learn about different types of approaches to spam detection.
Fibonacci: Top-Down vs Bottom-Up Dynamic Programming
Filed under Algorithms, Programming
Learn how to compute numbers in the Fibonacci Series with a recursive approach and with two dynamic programming approaches.
Feature Scaling
Filed under Machine Learning
Learn how to apply feature scaling during the data transformation phase to improve Machine Learning results.
A Quick Guide to Binary Search Trees
Filed under Data Structures, Trees
A quick and practical guide to binary search trees.
Functional Programming
Filed under Programming
Learn the core concepts of the functional programming paradigm and how it compares to OOP.
Understanding Dimensions in CNNs
Filed under Deep Learning
Learn how different dimensions are used in convolutional neural networks.
Finding the Lowest Common Ancestor of Two Nodes in a Binary Tree
Filed under Algorithms, Trees
Learn how to solve the Lowest Common Ancestor problem of two nodes in a binary tree.
How ReLU and Dropout Layers Work in CNNs
Filed under Artificial Intelligence
Study two fundamental components of Convolutional Neural Networks – the Rectified Linear Unit and the Dropout Layer.
Nonlinear Activation Functions in a Backpropagation Neural Network
Filed under Artificial Intelligence
Study the nonlinear activation functions most commonly used in backpropagation algorithms and other learning procedures.
Implement Stack Using Two Queues
Filed under Data Structures, Programming
Learn how to implement a Stack data structure using two Queues.
The ABA Problem in Concurrency
Filed under Concurrency
Learn about the ABA problem; how it happens, what problems it can cause, and how to fix it.
Inadequacy of Linear Models: the Road to Nonlinear Functions
Filed under Artificial Intelligence
Explore the differences between linear and nonlinear problems, and how the former are inadequate in dealing with complex nonlinear problems.
Tries (Prefix Trees)
Filed under Data Structures, Trees
Learn how to implement a prefix tree data structure.
What Is a Monitor in Computer Science?
Filed under OS
Explore the concept of a monitor and then learn about its implementation in Java.
Connected Components in a Graph
Filed under Graphs
Explore a simple definition of connected component followed by a couple of simple and easy to understand examples
The Difference Between B-trees and B+trees
Filed under Data Structures, Trees
Explore the concept of B-trees and B+trees/
Difference Between Tree Depth and Height
Filed under Data Structures, Trees
A quick and practical explanation of differences between tree depth and height.
Understanding Space Complexity
Filed under Core Concepts
Learn how to analyze an algorithms space complexity
Cycles in an Undirected Graph
Filed under Algorithms, Graphs
Learn how to detect cycles in an undirected graph using Depth-First Search (DFS).
Greedy Approach vs Dynamic Programming
Filed under Algorithms, Programming
Learn the key differences between Greedy Approach and Dynamic Programming.
Genetic Algorithms vs Neural Networks
Filed under Algorithms, Artificial Intelligence
Learn about the differences between genetic algorithms and neural networks.
Graph Data Structures
Filed under Data Structures, Graphs
Learn how to store a graph in memory.
Solving Binary Gap Using Recursion
Filed under Algorithms
A quick and practical example of solving Binary Gap using recursion.
Longest Increasing Subsequence Using Dynamic Programming
Filed under Algorithms, Programming
Learn the dynamic programming approach for the longest increasing subsequence programming problem.
Clustering Into an Unknown Number of Clusters
Filed under Algorithms, Data Science
Understand clustering algorithms that may apply when we don’t know how many clusters there will be
Methods of Depth First Traversal and Their Applications
Filed under Graph Traversal
Explore depth-first traversal methods and learn about their applications in the real world.
Logarithmic Time Complexity
Filed under Algorithms, Core Concepts
Explore the use of logarithmic time complexity in computer science.
P, NP, NP-Complete and NP-Hard Problems in Computer Science
Filed under Algorithms, Core Concepts
Explore the famous problem in computer science.
Common and Useful Data Structures
Filed under Data Structures, Graph Theory
Explore common data structures that are useful in programming.
What Is a Closure – Different Types of Scopes
Filed under Programming
Learn about closures, one of the most important topics when preparing for an interview.
Code Coverage
Filed under Programming
Learn what code coverage term means and analyze various ways to measure it.
Two’s Complement
Filed under Core Concepts
Explore the concept of two’s complement that allows computers to have one set of circuits – adders – that do two jobs: Addition and subtraction.
Difference Between Prim’s and Dijkstra’s Algorithms
Filed under Graph Traversal
Learn when you’d use Prim’s or Dijkstra’s algorithms