Programming Concepts
- Variable: A symbolic name associated with a value and whose associated value may change.
- Function: A reusable block of code that performs a specific task.
- Loop: A control structure that repeats a block of code while a condition is true.
- Conditional: A statement that performs different actions depending on whether a condition is true or false (e.g., if-else).
- Syntax: The set of rules that defines the combinations of symbols considered correctly structured programs in a language.
- Compilation: The process of translating source code into machine code.
- Interpreter: A program that executes instructions written in a programming language without requiring them to be compiled.
Data Structures
- Array: A collection of elements identified by index or key.
- Linked List: A linear data structure where each element points to the next.
- Stack: A collection where elements are added and removed using LIFO (Last In, First Out).
- Queue: A collection where elements are added and removed using FIFO (First In, First Out).
- Tree: A hierarchical data structure with nodes connected by edges.
- Hash Table: A structure that maps keys to values for efficient lookup.
Algorithms
- Sorting Algorithm: A method for ordering elements (e.g., QuickSort, MergeSort).
- Search Algorithm: A method for finding an element within a data structure (e.g., Binary Search).
- Recursion: A method where the solution involves calling the same function within itself.
- Time Complexity: A measure of the amount of time an algorithm takes relative to input size.
- Space Complexity: A measure of the amount of memory an algorithm uses relative to input size.
- Big O Notation: A mathematical notation used to describe the upper bound of an algorithm’s runtime.
Object-Oriented Programming (OOP)
- Class: A blueprint for creating objects that encapsulate data and behaviors.
- Object: An instance of a class.
- Inheritance: A mechanism where one class can inherit attributes and methods from another.
- Encapsulation: Restricting access to certain components of an object.
- Polymorphism: The ability to present the same interface for different data types.
- Abstraction: The concept of hiding complex implementation details and showing only the essential features.
Databases
- Database: An organized collection of data.
- SQL (Structured Query Language): A language for querying and manipulating databases.
- Primary Key: A unique identifier for records in a table.
- Foreign Key: A field that creates a relationship between two tables.
- Normalization: The process of organizing data to reduce redundancy.
- Index: A performance-tuning method of allowing faster retrieval of records.
Networking & Security
- IP Address: A unique identifier for a device on a network.
- DNS (Domain Name System): Translates domain names to IP addresses.
- HTTP/HTTPS: Protocols for data communication on the web.
- Firewall: A network security system that monitors and controls traffic.
- Encryption: The process of converting data into a coded form to prevent unauthorized access.
- SSL/TLS: Protocols that ensure secure communication over the internet.
Operating Systems
- Process: An instance of a program in execution.
- Thread: The smallest sequence of programmed instructions that can be managed independently.
- Deadlock: A situation where a set of processes are blocked because each process is holding a resource and waiting for another.
- Semaphore: A variable used to control access to a common resource in concurrent systems.
- Virtual Memory: A memory management capability that provides an “idealized abstraction of the storage resources.”
Software Development & Engineering
- Agile: An iterative approach to software development that emphasizes flexibility and customer feedback.
- Version Control: Systems like Git that track and manage changes to code.
- IDE (Integrated Development Environment): Software for building applications that combines common developer tools.
- Debugging: The process of identifying and removing errors from code.
- API (Application Programming Interface): A set of rules that allows different software entities to communicate.
Artificial Intelligence & Machine Learning
- Machine Learning: A field of AI that uses statistical techniques to enable machines to improve at tasks with experience.
- Neural Network: A machine learning model inspired by the human brain’s structure.
- Supervised Learning: A type of machine learning where the model learns from labeled data.
- Unsupervised Learning: A type of machine learning where the model identifies patterns in unlabeled data.
- Training Data: Data used to teach a model how to make predictions or decisions.
Theoretical Computer Science
- Turing Machine: A mathematical model of computation describing an abstract machine that manipulates symbols on a strip of tape.
- Decidability: The question of whether a problem can be solved algorithmically.
- P vs NP Problem: An unsolved problem asking whether every problem for which a solution can be verified quickly can also be solved quickly.
- NP-Complete: A class of problems that are both in NP and as hard as any problem in NP.
- Automata Theory: The study of abstract machines and problems they can solve (e.g., finite automata, pushdown automata).
- Lambda Calculus: A formal system in mathematical logic for expressing computation based on function abstraction and application.
Distributed Systems
- Consensus Algorithm: Protocols (e.g., Paxos, Raft) that allow distributed systems to agree on a single data value.
- CAP Theorem: States that a distributed system can only guarantee two of the following three: Consistency, Availability, Partition Tolerance.
- Eventual Consistency: A consistency model where updates will propagate to all nodes eventually, but not instantly.
- Leader Election: A process in distributed systems where nodes elect a coordinator or leader.
- Fault Tolerance: The ability of a system to continue operation even in the presence of hardware or software faults.
Compilers & Language Theory
- Lexical Analysis: The first phase of a compiler that converts a sequence of characters into tokens.
- Parsing: The process of analyzing a string of symbols using a grammar.
- Abstract Syntax Tree (AST): A tree representation of the abstract syntactic structure of source code.
- Intermediate Representation (IR): A data structure or code used internally by a compiler to represent source code.
- Just-In-Time (JIT) Compilation: A method of program execution that compiles code during runtime for performance gains.
Cryptography & Security
- Public Key Cryptography: Uses two keys — one public and one private — for secure communication (e.g., RSA, ECC).
- Symmetric Key Cryptography: Uses the same key for both encryption and decryption (e.g., AES).
- Hash Function: A function that converts input data into a fixed-size string, typically used for data integrity (e.g., SHA-256).
- Zero-Knowledge Proof: A cryptographic method by which one party proves to another that they know a value without conveying any information.
- Digital Signature: A cryptographic value that ensures the authenticity and integrity of a message or document.
Parallel & High-Performance Computing
- Amdahl’s Law: Describes the theoretical speedup of a task using parallel processing.
- Multithreading: A technique by which a CPU executes multiple threads concurrently.
- GPU Computing: Using a Graphics Processing Unit for general-purpose computation, especially for parallel tasks.
- MapReduce: A programming model for processing large data sets with a distributed algorithm on a cluster.
- MPI (Message Passing Interface): A standardized and portable message-passing system designed for parallel computing.
Software Architecture & Design
- Microservices: An architectural style that structures an application as a collection of loosely coupled services.
- Monolithic Architecture: A software architecture where all components are interconnected and interdependent.
- Design Pattern: A reusable solution to a common software design problem (e.g., Singleton, Observer).
- Dependency Injection: A technique in which one object supplies the dependencies of another object.
- Service-Oriented Architecture (SOA): A design pattern where services are provided to other components by application components through a communication protocol.
Formal Methods & Verification
- Model Checking: A method used in formal verification to systematically check whether a model of a system meets a given specification.
- Hoare Logic: A formal system used to reason about the correctness of computer programs.
- Invariant: A condition that can be relied upon to be true during execution of a program.
Theorem Prover: A tool that automatically verifies the correctness of logical assertions.

