Lecturer
Published:
Courses and Laboratories
- Data Structures
- Topics Covered: Analysis and design of fundamental data structures including array-based lists, linked lists, stack, queue, hash table, recursion, binary tree, binary search trees(AVL tree, Red-Black tree), heaps, sorting(insertion, selection, bubble, merge sort, quick sort), searching (linear search, binary search)and basic graphs.
- Lab Outlines: Design algorithmically efficient data structures for solving problems that provide a pathway towards competitive programming.
- Complexity and Algorithms
- Topics Covered: Computational Complexity, Branch and Bound Heuristics, Approximation Algorithms, Advanced Data Structures(Segment Tree, BIT, Trie), Graph Algorithms(BFS, DFS, Topological Sorting, SCC) Flow and Matching(Stable marriage, Bipartite matching, Ford-Fulkerson, Dinic, Hungarian) LP Based Approximation Algorithms, Randomized Algorithms, Algorithms in state-of-the-art fields like Bioinformatics, Parallel Computing, On-line Algorithms, etc.
- Laboratory Outlines: Solving classical algorithmic and heuristic problems from different Online Judges (e.g. UVA, SPOJ, LightOJ, HDU, etc.)
- Other Courses Instructed: Graph Theory and Computational Geometry, Structured Programming Language(C), Object-Oriented Programming Language (C++), Object-Oriented Programming Language (Java)