The Baeldung logo
  • The Baeldung LogoCS Sublogo
  • Start Here
  • Write for Baeldung
  • About ▼▲
    • Full Archive

      The high level overview of all the articles on the site.

    • About Baeldung

      About Baeldung.

Core Concepts

Learn about the most fundamental concepts, such as data structures, math, logic, and programming paradigms.

  • Optimization (8)
  • Recursion (4)
  • Linked List (4)
  • Array (3)
  • project (2)
  • buffer (2)
  • Entropy (2)
  • Binary Tree (2)
  • NP-Complete (2)

>> Maximum Likelihood Estimation

>> How to Check if a Line Segment Intersects a Rectangle?

>> Recursion: Direct vs Indirect

>> Software Engineering: SCRUM Vs. XP

>> Different Types of System Calls

>> Circular Buffer

>> Enumerators Vs. Constants

>> What is the Difference Between Keyword and Reserved Word?

>> Conditionals

>> What is Cosine Similarity?

>> Front-End vs. Back-End Development

>> What’s the P99 Latency?

>> Software Engineering: The Waterfall Model

>> Optimization: Gradient-Based Algorithms

>> Bugs and Debugging in Programming

>> How Many Bytes Does One Unicode Character Take?

>> CPU Scheduling: Arrival, Burst, Completion, Turnaround, Waiting, and Response Time

>> KISS Software Design Principle

>> Private vs. Protected Access Modifiers

>> Off-by-One Error

>> Web Crawling Vs. Web Scraping

>> Differences Between Homography and Affine Transformation

>> What Are Low-Code and No-Code Development?

>> Unit Vs. Integration Testing

>> How Do Filesystems Handle Concurrent Read/Write?

>> DRY Software Design Principle

>> Builder Pattern vs. Factory Pattern

>> State Pattern vs. Strategy Pattern

>> Class vs. Object in OOP

>> Granularity: Coarse-grained Vs. Fine-grained

>> What Are Handlers in Programming?

>> What are Coroutines?

>> Compiler, Linker, Assembler, and Loader

>> Information Theory

>> Error Handling

>> Explanation of BASE Terminology

>> Memory Management: Inverted Paging

>> Preemptive and Non-Preemptive Scheduling

>> The 3Sum Problem

>> Introduction to Gibbs Sampling

>> Software Engineering: White-Box Vs. Black-Box Testing

>> Statistical Independence

>> How Do Threads Share Resources?

>> Bayes’ Theorem

>> System Call Vs. System Interrupt

>> The XP’s Commandments of Simple Code

>> How Do DMA Controllers Work?

>> Differences Between a Data Type and a Data Structure

>> Probability: Joint Vs. Marginal Vs. Conditional

>> Headless Software

>> Lookup Table in Databases

>> Combinatorial Optimization

>> Finding the Digital Root

>> Why Use a Surrogate Loss

>> Calculating the Average of a Set of Circular Data

>> How to Calculate the Angle from Rotation Matrix

>> Optimization: Local vs. Global Optima

>> Zombie Processes in Operating Systems

>> DLL Hell Problem

>> Random Variables

>> Calculating The Odds of a Team Winning a Sports Match Given Full History

>> Differences Between Simulation and Emulation

>> Consensus Algorithms in Distributed Systems

>> Differences Between CPU and GPU

>> Optimization: Objective Functions, Decision Variables and Constraints

>> Finding Neighbors of a Matrix Cell

>> Differences Between Sequential and Random Writes of Memory

>> Static vs. Dynamic Linking

>> Differences Between Firmware and Operating System

>> Vanilla Software and Programming

>> Ad-hoc Programming

>> Programming Languages: Lexicon Vs. Syntax Vs. Semantics

>> What’s a Buffer?

>> Differences Between Directories and Folders

>> Difference Between API and SDK

>> Differences Between Definition, Declaration, and Initialization

>> The Direct Linear Transform

>> Stateful vs. Stateless in Programming

>> Language Processors Explained

>> Cache-Friendly Code

>> The XOR Operation

>> What Is Constrained Optimization?

>> How to Project a 3D Point onto a 2D Plane?

>> Orthogonality in Computer Programming

>> If-Else And Switch

>> What is the Difference Between User Variables and System Variables?

>> How Many Threads Is Too Many?

>> What is “Energy” in Image Processing?

>> Deep Dive Into Optimization

>> Caching: Cold Cache Vs. Warm Cache

>> What Is the Difference Between Signed and Unsigned Variables?

>> Remote Procedure Calls vs. Local Procedure Calls

>> Deterministic and Stochastic Optimization Methods

>> I/O Management

>> Recursion and Looping

>> Computer Boot Process Explained

>> Correcting Fisheye Images

>> Differences Between NTFS, FAT32 and exFAT

>> Type Safety in Programming Languages

>> Why Is Using Global Variables Considered a Bad Practice?

>> The Mahalanobis Distance

>> Private Bytes, Virtual Bytes, and Working Set

>> Fast Fourier Transform (FFT)

>> Sampling From the Exponential Distribution

>> Fuzzy Logic Explained

>> What’s a Hypothesis Space?

>> Converting Floats into Fractions

>> Differences Between Scalability and Elasticity

>> Disparity Map in Stereo Vision

>> Interpolation and Regression: Similarities and Differences

>> Basic Services of an Operating System

>> Introduction to Resource Description Framework (RDF)

>> How to Calculate the Runtime Percentage Improvement

>> What Are Callback Functions?

>> 32-bit vs. 64-bit Operating Systems

>> Fast Algorithms for Solving a System of Linear Equations

>> Intersection over Union for Object Detection

>> Memory-Mapped vs. Isolated I/O

>> Differences Between APIs and ABIs

>> Pre-increment vs. Post-increment in a Loop

>> Determining the Most Distant Pair of Points

>> Abstract Methods Vs. Virtual Methods

>> Differences Between a Deep Copy and a Shallow Copy

>> The Call Stack

>> Lambda Functions

>> Memory Allocation

>> Robust Estimators in Robust Statistics

>> Transfer Learning vs Domain Adaptation

>> Antipatterns: Magic Numbers

>> What are Rings in Operating Systems?

>> How to Test If a Number is a Fibonacci Number

>> What is Depth in a Convolutional Neural Network?

>> Centralized Computing vs. Distributed Computing

>> What is the Difference Between Natural Cubic Spline, Hermite Spline, Bézier Spline and B-spline?

>> Supported Memory by 32 and 64-Bit Machines

>> Pseudo-Polynomial vs. Polynomial Complexity

>> Virtual Memory Address

>> What Is the Maximum Length of a URL in Different Browsers?

>> Introduction to Curve Fitting

>> What is a Random Walk?

>> An Introduction to the Hidden Markov Model

>> Multi-Verse Optimizer

>> Master Theorem for Asymptotic Analysis

>> The Monty Hall Problem

>> Basics of Polynomial Interpolation

>> Looking for a CS Technical Editor for Baeldung (not open)

>> Tabulation vs. Memoization

>> The Importance of Central Limit Theorem

>> Why are floating point numbers inaccurate?

>> Fundamentals of Sandboxing

>> What is Selection Bias and How Can We Prevent It?

>> Context-Free Languages

>> Guide to the “CPU-bound” and “I/O bound” Terms

>> Unit Testing vs Test-Driven Development

>> Cache Miss, TLB Miss, Page Fault

>> Differences Between Core and CPU

>> Types of Operating Systems

>> From Recursive to Iterative Functions

>> Streaming Median

>> Tail vs. Non-Tail Recursion

>> Circle Line-Segment Collision Detection Algorithm

>> Generating Permutations with Repetition

>> Q-Learning vs. Dynamic Programming

>> Languages for Data Structures

>> The Difference Between a Framework and a Library

>> File Structures

>> Imperative and Declarative Programming Paradigms

>> Internal Fragmentation vs. External Fragmentation in Paging

>> How Many Principal Components to Take in PCA?

>> Statically Typed Vs Dynamically Typed Languages

>> High-Level Languages vs. Low-Level Languages

>> Fastest Algorithm to Find Prime Numbers

>> Segmented Paging vs. Paged Segmentation

>> Files and File Systems

>> Memory Management

>> Clean Code – Formatting

>> Multiprocessing and Multithreading

>> An Algorithm for Inflating and Deflating Polygons

>> Advanced CPU Designs

>> Introduction to Cache Memory

>> Instructions and Programs

>> Extended Euclidean Algorithm

>> Docker and Containers vs. Virtual Machines

>> The Difference Between an Argument and a Parameter

>> Guide to the CPU

>> Choosing the best q and p from ACF and PACF plots in ARMA-type modeling

>> Binary Trees vs. Linked Lists vs. Hash Tables

>> Sine Cosine Algorithm

>> Finding Three Elements in an Array Whose Sum Is Closest to a Given Number

>> Arithmetic Logic Unit

>> Program Counter and Instruction Register

>> Greedy Vs. Heuristic Algorithm

>> Hash Table vs. Balanced Binary Tree

>> What is a Loop Invariant?

>> Introduction to ASCII Code

>> Stack Data Structure

>> How to Find an Area of Overlapping Rectangles

>> Compiled vs. Interpreted Programming Languages

>> Linked List / Double Linked List

>> Registers and RAM

>> What Does “Busy Waiting” Mean in Operating Systems?

>> Introduction to Assembly Language

>> What is Thrashing?

>> Searching in a Sorted and Rotated Array

>> Full, Para, and Hardware-Assisted Virtualization Compared

>> Runtime vs. Compile Time

>> Grey Wolf Optimization Algorithm

>> Dijkstra vs Floyd-Warshall Algorithms

>> The Most Efficient Way to Implement an Integer Based Power Function

>> Finding the Next Smaller Element for Each Element in an Array

>> Algorithms to Check If a Number Is a Power of 2

>> Job vs. Task vs. Process

>> Technical Debt

>> RISC vs. CISC

>> What Is the Difference Between Trap and Interrupt?

>> Process Scheduling

>> Expression vs. Statement

>> Microservices and Cross-Cutting Concerns

>> Intuition Behind Gradient Descent Algorithm

>> Code Smells

>> The Difference Between Virtual Memory and Swap Space

>> Compile time vs. Load time vs. Execution time

>> Propagation Delay vs Transmission Delay

>> Deadlock: What it is, How to Detect, Handle and Prevent?

>> Time Complexity vs. Space Complexity

>> Difference between Big-O and Little-o Notations

>> Primality Test: Miller-Rabin Method

>> Physical vs. Virtual Memory

>> Process vs. Thread

>> Why Do We Need Virtual Memory?

>> What is a Chipset?

>> Fermat Primality Test

>> Difference Between Cohesion and Coupling

>> What Is a Heuristic Function?

>> BIOS vs. CMOS vs. UEFI

>> What’s the Difference Between User and Kernel Modes?

>> Refactoring

>> What is an OS Kernel?

>> Pairing Socks From a Pile Efficiently

>> The Difference Between a Method and a Function

>> Deadlock, Livelock and Starvation

>> Difference Between Layers and Tiers

>> Generative vs. Discriminative Algorithms

>> Virtual Memory

>> Polynomial Addition and Multiplication Using Linked List

>> Ackermann Function

>> Semaphore vs. Mutex

>> Alternatives of Ten – Binary, Octal, Hexadecimal

>> A Guide to Semantic Versioning

>> What Does It Mean to Program to Interfaces?

>> How to Improve Naive Bayes Classification Performance?

>> Do Sessions Violate RESTfulness?

>> Understanding BDD

>> The Difference Between a Port and a Socket

>> Inter-Process Communication

>> Gradient Descent Equation in Logistic Regression

>> Correlated Features and Classification Accuracy

>> Offline Concurrency Control

>> Dynamic Linking vs. Dynamic Loading

>> Find Local Minimum in N x N Matrix

>> Using Min/Max Within an Integer Linear Program

>> Difference Between REST and HTTP

>> Process Lifecycle

>> How to Determine if a List of Polygon Points Are in Clockwise Order

>> Fundamentals of Distributed Systems

>> GIT vs. SVN

>> Haversine Formula

>> Object-Oriented vs Functional Programming

>> Sum of Digits in Factorial

>> OSI Model

>> The Pigeonhole Principle

>> REST vs SOAP

>> The General Concept of Polymorphism

>> Time Complexity of Inserting into a Heap

>> CRC Vs Checksum

>> Fundamental Difference Between Hashing and Encryption Algorithms

>> Clean Code: Naming

>> Matrix Multiplication Algorithm Time Complexity

>> Time Complexity of Euclid’s Algorithm

>> Greedy Algorithm to Find Minimum Number of Coins

>> Finding the Most Significant Bit

>> The Difference Between Lower Bound and Tight Bound

>> Remove Duplicates From a Linked List

>> Maximizing Profit for Given Stock Quotes

>> Understanding Forecast Accuracy: MAPE, WAPE, WMAPE

>> How Does FIFO Page Replacement Work?

>> What is an Idempotent Operation?

>> Maximum Single-Sell Profit

>> Graph Auto-Layout Algorithm

>> How to Reverse a Linked List

>> Clean Code: Comments

>> Generating Dependency Graphs With Text

>> How to Calculate the Area of a 2D Polygon?

>> What’s the Difference Between a Word and a Byte?

>> What the Correlation Coefficient Actually Represents

>> What is a Mutex?

>> Understanding Randomness

>> How to Prove That a Problem Is NP-Complete?

>> Object-Orientation in the Real World

>> Deep Dive into Hashing

>> What is the Difference Between Gradient Descent and Gradient Ascent?

>> Finding XOR of All Numbers in a Given Range

>> When Not to Use Regular Expressions?

>> Regular Expressions

>> Boolean Algebra: Basic Laws

>> Introduction to RAID

>> Why Does the Cost Function of Logistic Regression Have a Logarithmic Expression?

>> Linear Regression vs. Logistic Regression

>> First-Order Logic

>> How Compilers Work

>> Propositional Logic

>> Virtualization vs Containerization

>> Function Parameters: Call by Reference vs Call by Value

>> SAT and 3-SAT – Cook-Levin Theorem

>> The Liskov Substitution Principle

>> Cache Write Policy

>> Computer Science Definition of Entropy

>> Maximum Value of an Integer: Java Vs C vs Python

>> Introduction to Virtualization

>> Process Control Block

>> Euclidean Distance vs Cosine Similarity

>> Types of Queues

>> Fibonacci: Top-Down vs Bottom-Up Dynamic Programming

>> Constituency Parsing vs Dependency Parsing

>> An Introduction to Amortized Analysis

>> Functional Programming

>> Longest Palindromic Subsequence With Dynamic Programming

>> Implement Stack Using Two Queues

>> What is a Monitor in Computer Science?

>> Understanding Space Complexity

>> Greedy Approach vs Dynamic Programming

>> Predicates in Computer Science

>> Longest Increasing Subsequence Using Dynamic Programming

>> Logarithmic Time Complexity

>> P, NP, NP-Complete and NP-Hard Problems in Computer Science

>> What is a Closure – Different Types of Scopes

>> Code Coverage

>> Two’s Complement

>> An Introduction to the Theory of Asymptotic Notations

  • ↑ Back to Top
The Baeldung logo

Categories

  • Algorithms
  • Artificial Intelligence
  • Core Concepts
  • Data Structures
  • Graph Theory
  • Latex
  • Networking
  • Security

Series

About

  • About Baeldung
  • The Full archive
  • Write for Baeldung
  • Editors
  • Terms of Service
  • Privacy Policy
  • Company Info
  • Contact
The Baeldung Logo