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.


Discover more from SodakAI: Bespoke AI Solutions

Subscribe to get the latest posts sent to your email.