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)