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