Please enable JavaScript.
Coggle requires JavaScript to display documents.
Components of a system - Coggle Diagram
Components of a system
-
System
Application
Program (OOP, OOD, Design Patterns)
-
Algorithms
Algorithm Commponents
Inputs
Data
Data Structures
Primitive
- 7 more items...
-
-
Non-Linear
- 3 more items...
User-Defined
- 3 more items...
-
-
algorithm techniques
-
-
-
-
-
- Generating all subsets of a set (Power Set)
- Traveling Salesman Problem (TSP) (Exhaustive search)
-
-
-
-
- Karatsuba Algorithm (Fast Multiplication)
- Strassen’s Algorithm (Matrix Multiplication)
- Closest Pair of Points Problem
-
- Fibonacci Number Calculation
- Longest Common Subsequence (LCS)
- Longest Increasing Subsequence (LIS)
-
- Matrix Chain Multiplication
- Floyd-Warshall Algorithm (All-Pairs Shortest Paths)
- Edit Distance (String Matching)
-
-
- Dijkstra’s Algorithm (Shortest Path in Graph)
- Prim’s Algorithm (Minimum Spanning Tree)
- Kruskal’s Algorithm (Minimum Spanning Tree)
- Huffman Coding (Data Compression)
- Fractional Knapsack Problem
- Activity Selection Problem
-
-
-
- Hamiltonian Cycle Problem
-
-
-
-
- Traveling Salesman Problem (Optimized version)
- 0/1 Knapsack Problem (with bounding function)
- N-Queens Problem (optimized)
-
- Breadth-First Search (BFS)
-
-
- Strongly Connected Components (Tarjan’s Algorithm, Kosaraju’s Algorithm)
-
- Quick Sort (Random Pivot)
- Randomized Primality Testing (Miller-Rabin)
- Monte Carlo Algorithm (for approximations)
- Las Vegas Algorithm (Randomized search trees)
-
- Counting Set Bits (Brian Kernighan’s Algorithm)
- Finding the Only Non-Repeated Element in an Array (XOR Method)
- Checking if a Number is a Power of Two
- Fast Exponentiation (Binary Exponentiation)
-
- Traveling Salesman Problem (Greedy Approximation)
- Vertex Cover Problem (Approximation using Matching)
- Set Cover Problem (Greedy Approximation)
-
-
Program
OOD
SOLID
-
-
-
-
-
Subtypes must be substitutable for their base types without altering the correctness of the program.
-
A class should not be forced to depend on interfaces it does not use (small, specific interfaces are better).
-
-
OOP
Abstraction
Polymorphism
-
-
-
-
-
-
-
-
-
-
- Function Overloading (Compile-Time Polymorphism)
Overloading in C++, Java, C#
-
-
-
-
- Method Overriding (Run-Time Polymorphism)
-
Dynamic Method Dispatch (Java, C# Concept)
-
Super Keyword (Calling Parent Class Methods in Overriding - Java, Python, C#)
- Virtual Functions (C++ Specific)
-
-
-
-
- Abstract Classes and Interfaces
Abstract Class vs. Interface (Java, C#)
-
-
-
- Dynamic Method Dispatch (Java, C#)
-
-
-
- Polymorphism in Design Patterns
-
-
-
-
-
Encapsulation
Access Modifiers (Public, Private, Protected, Internal, etc.)
Getter and Setter Methods (Encapsulation of Data)
Inheritance
-
-
-
-
-
-
-
-
-
-
Inheritance in Design Patterns (Factory Method, Template Method, etc.)
Design Patterns
- Creational Design Patterns (Object Creation)
-
-
-
-
-
- Structural Design Patterns (Object Composition)
-
-
-
-
-
-
-
- Behavioral Design Patterns (Object Interaction)
-
-
-
-
-
-
-
-
-
-
-
- Concurrent Design Patterns (Multithreading & Concurrency)
-
-
-
-
-
-
-
-
-
-