Topics to Cover:
Core
- algorithms
- complexity analysis
- graph traversals (BFS & DFS)
- A* algorithm
- Dijkstra Algorithm
- data structures
- hash tables
- binary search tree
- suffix trees
- heaps
- techniques
- sliding window
- recursion
- reverse a linked list
- invert binary tree
- greedy algorithms
- dynamic programming (DP)
Practical
- software engineering
- traveling salesman problem
- knapsack problem
- np complete
- math
- probability and combinatorics
- n choose k problems
- concurrency
- semaphores
- mutexes
- thread locks / deadlocks
- os
- resource allocation
- context switching
- scheduling
Interview problems