- C/C++
- Java
- Python
- Arrays
- String
- Linked Lists
- Singlely
- Doubly
- Circular
- Stack
- Queue
- Circular Queue
- Deque
- Priority Queue
- Hashing
- HashTable
- Collision Handling
- Tree
- Binary Search
- Heap
- BST
- Balanced Search Tree
- AVL
- Red Black
- Traversals: Pre, In, Post, Level, BFS, DFS
- Graphs
- directed, undirected, adjacency matrix, list
- traversals: BFS, DFS
- Cycle
- Topological Sorting
- MST
- BackTracking
- Shortest Paths
- Dijkstra's Shortest Path
- Connectivity
- Maximum Flow
- Bitwise
- Trie
- Segment Tree
- K Dimensional Tree
- Disjoint Set
- n-ary Tree
- selection
- insertion
- heapsort
- mergesort
- quicksort
- counting sort
- Radixsort
- Knapsack Problem
- Dijkstra's Shortest Path
- Kruskal's MST
- Prim's MST
- TBD
- Binary Search
- Merge Sort
- Quick Sort
- N Queen Problem
- Travelling Salesman Problem
- 0-1 Knapsack
- Floy Warshall
- Bellman-Ford
- GCD, LCM
- Geometric
- Randomized
- Np, Np-Complete
- string serarching & manipulations
- UML
- SOLID
- Strategy
- Singleton
- decorator
- factory
- facade
- observer
- proxy
- LRU cache
- CPU cache
- Differences
- Locks, Mutexes, Semaphores
- Deadlock
- monitors
- paging, segmentation and virtual memory
- Interrupts
- Context Switching
- concurrency in Python(threads, mutex)
- TBD
- unit test
- mock
- integration test
- dependency injection
- TDD
- in python
- UDP and TCP
- TCP/IP and OSI
- Packet Transmission across the internet
- HTTP, SSL and HTTPS
- HTTP 2.0
- Sockets
- TBD
- Papers