
Need for Learning the Subject
1. It enables students to solve computational problems using optimal methods.
2. It is critical for developing high-performance software that operates efficiently on large-scale data.
3. It serves as foundation for technical interviews and real-world software development.
4. It prepares the students for domains like AI, ML, cybersecurity, OS, DBMS, and networking.
5. It enhances the ability to select appropriate data structures and algorithms for a given problem.
After learning the subject, the students will be able to relate to the real life applications of the data structures and algorithms
Graphs |
: Google Maps, social media (Facebook friend suggestions), electrical grid layouts |
AVL/Red-Black Trees |
: Databases for indexing |
Hashing |
: Password storage, symbol tables, caching systems |
Priority Queues (Heaps) |
: CPU scheduling, network routing, event simulation |
Dynamic Programming: Bioinformatics (gene alignment), resource allocation, AI pathfinding |
Greedy Algorithms: |
Huffman coding, Kruskal’s MST, job scheduling |
String Matching: |
Plagiarism detection, search engines, spam filters |
Backtracking: |
Solving puzzles (Sudoku, N-Queens), constraint satisfaction problems |
- Teacher: Dr. Sonia Aneesh
- Teacher: Prof. Anupama Singh