1. What is System Design , LLD and HLD.
  2. What is OOP’s and Why OOP’s ?
    1. Pillar of OOP’s
      1. Abstraction
      2. Encapsulation
      3. Inheritance
      4. Polymorphism
  3. Association and Composition
  4. Sequence Diagram
  5. SOLID Principles
    1. Single Responsibility
    2. Open Closed
    3. Liskov Substitution
      1. Signature Rule
        1. Return Type Rule
        2. Method Argument Rule
        3. Return Type Rule
      2. Property Rule
        1. Class Invariant
        2. History Invariant
      3. Method Rule
        1. Pre Condition
        2. Post Condition
    4. Interface Segregation
    5. Dependency Inversion
  6. Design Patterns
    1. Foundational Design Patterns
      1. Strategy
      2. Factory
      3. Singleton
      4. Observer
      5. Decorator
      6. Command
      7. Adapter
      8. Facade
        1. Principle of least knowledge
    2. Problem Specific Design Patterns
      1. Composite
      2. Template
      3. proxy
        1. virtual
        2. protection
        3. remote