Set your preference
Font Scaling
Default
Page Scaling
Default
Color Adjustment
IITK
IITK
Surender Baswana

Surender Baswana

PhD (IIT Delhi)

Professor, Department of Computer Science and Engineering

Tapas Mishra Memorial Chair Professor

Research Interest

Design and analysis of computer algorithms, especially, Graph algorithms, Dynamic algorithms, Fault Tolerant Structures, and Randomized algorithms.

Office

KD 307,
Department of Computer Science and Engineering
IIT Kanpur,
Kanpur 208016

Education

PhD (2005)

🢝 CSE, IIT Delhi

🢝 Thesis Title: Efficient randomized algorithms for path problems in graphs. Supervisor: Prof. Sandeep Sen

PhD thesis was submitted in October 2003, but the thesis defence could be held in July 2005 due to delay in the reports of the examiners. So the PhD degree could be awarded only in August 2005.

M.Tech. (1999)

🢝 CSE, IIT Delhi

B.Tech. (1997)

🢝 CSE, IIT Delhi

Research Publications

I, along with my collaborators, have worked primarily in the following areas/topics of algorithms. For each topic, I have stated the most significant publications. The complete list of publications can be found here.


Minimum Cuts

I started working in this area during my sabbatical [2019] at the University of Paderborn, Germany. The area of mincuts (and maximum flows) is so deep, vast, and full of amazing results. I am so fascinated by these aspects that I might like to work in this area for the rest of my professional life. My collaborators and I have been working primarily on the sensitivity aspect of mincuts till now (refer to the following section). However, the following recent work might interest a broader audience.

  1. 1. A Compact Structure for Steiner Mincuts [SOSA 2025]
  2. 2. Vital Edges for (s,t)-mincuts in directed weighted graphs [ICALP 2024]


Fault Tolerant Structures

Consider an algorithmic problem that involves computing a structure. This structure could be a subgraph with some desired properties, for example, a depth first search (DFS) tree, a spanner. This structure could be a data structure that efficiently answers some query, for example, shortest path query. In the real world, the faults (failure of edges or vertices) are inevitable. It is also usually true that faults are transient due to some repair mechanism undertaken in the application. So, the number of faults at any time is small though the set of faults may keep changing with time. In such scenarios, how do we maintain the subgraph or the data structure ?

Two trivial ways to handle the faults are the following:

  1. 1. Re-compute the subgraph (or the data structure) from scratch after each fault.
  2. 2. Store the set of all subgraphs (or the data structure) for each possible fault.

The first way is very inefficient from the perspective of time, and the second way is very inefficient from the perspective of space.

Therefore, the aim is to design an algorithm that can update the data structure (or the subgraph) upon failure of any given edge efficiently – in time much faster than computing the data structure (or the corresponding subgraph) from scratch. Moreover, it should also answer the corresponding queries very efficiently.

My collaborators and I have designed efficient fault tolerant algorithms for the following problems.

  1. 1. All-pairs mincuts [SODA 2022], and (s,t)-mincuts [ICALP 2022and TALG 2023, ICALP 2024]
  2. 2. DFS tree [SODA 2016 and SICOMP 2019]. Subsequently, we simplified this structure drastically [Algorithmica 2022].
  3. 3. Sparse subgraph that preserves single source reachabilities. [STOC 2016 and SICOMP 2018]. The size of the subgraph is worst-case optimal. This subgraph can be viewed as a generalization of the well-known concept of dominators.
  4. 4. Approximate shortest paths [STACS 2010 and Algorithmica 2013]


Dynamic graph algorithms

The model underlying the dynamic graph algorithms is quite different from the fault tolerant model described above. In this model, there is an online sequence of updates – insertion or deletion of edges. The aim is to keep a data structure for a given problem so that we can update the data structure efficiently after each update. If there is a query associated with the problem, the aim is to answer each query efficiently as well. We have worked on dynamic graph algorithms for the following graph problems.

  1. 1. Depth first search tree [ICALP 2014 and Algorithmica 2017, SODA 2016 and SICOMP 2019]
  2. 2. Maximal matching [FOCS 2011 and SICOMP 2018].
  3. 3. Graph spanners [SODA 2008 and ACM TALG 2012]
  4. 4. Approximate shortest paths [SODA 2003]
  5. 5. All-pairs directed reachability [STOC 2002 and J. of Algorithms 2007]


Approximate Shortest Paths

Computing all-pairs shortest paths is arguably one of the most fundamental graph problems. However, there does not exist any sub-cubic algorithm for computing all-pairs shortest paths till date. So the aim is to have an algorithm that takes sub-cubic time but computes approximate distances. However, the algorithm must provide a worst-case guarantee on the factor by which the distance is stretched for any pair of vertices. One of the milestone results in this area is the approximate distance oracles designed by Thorup and Zwick. They designed a data structure that provides almost an optimal trade-off between the size of the data structure and the stretch factor. However, they posed it as an open question: Can we build this oracle in quadratic time ? The following 2 articles answered this question in the affirmative.

  1. 1. Approximate shortest paths in undirected weighted graphs [FOCS 2006 and SICOMP 2010 ]
  2. 2. Approximate shortest paths in undirected unweighted graphs [SODA 2004 and TALG 2006]. It was one of the 11 selected best papers (judged by the PC) among 117 papers that were accepted in SIAM SODA 2004.

We also worked on computing nearly 2-approximate shortest paths in undirected unweighted graphs [ICALP 2008, STACS 2005 and Theoretical Computer Science 2009]


Graph Spanner

A spanner is a subgraph that is sparse and still preserves approximately the distance between each pair of vertices in the graph. There is a trade-off between the sparseness of the subgraph and the factor by which the distance between any pair of vertices is stretched – the larger the stretch we can tolerate, the greater the sparseness we can achieve. For undirected unweighted graphs, Halperin and Zwick [1996] designed a simple linear time algorithm for graph spanners while achieving optimal trade-off between the size and the stretch. However, for undirected weighted graphs, there exist many algorithms before 2003 that achieve an almost optimal trade-off between the size and the stretch, but none of them took linear time. Each of these algorithms involves some distance computation, and hence achieve time far from linear.

  1. 1. An almost optimal algorithm for constructing spanners for weighted graphs in centralized, distributed, external-memory, and parallel environment [ICALP 2003 and Random Structures and Algorithms 2007]. This article was among the selected best papers of ICALP 2003 and was invited for a special issue of Theoretical Computer Science. This algorithm is based on a novel local approach that avoids any distance computation altogether. This algorithm is so elegant and simple that it can be taught in an undergraduate level algorithms course.
  2. 2. An algorithm for spanners for unweighted graphs in a streaming environment [IPL 2008].

Awards and Achievements

Research:

The Finalist for the Wagner Prize for Excellence in Operations Research Practice in 2018 for the technical paper “Centralized Admissions for Engineering Colleges in India” that has appeared in a special issue of INFORMS Journal on Applied Analytics, 2019.
Recipient of the Alexander von Humboldt Fellowship for Experience Researchers in 2018
Received certificate of exceptional contribution from the Director of IIT Bombay (Chairman JAB 2015) towards the development of the software for the joint seat allocation in central government funded technical institutes of India in 2015.
Young Engineer Award
Received Young Engineer Award from Indian National Academy of Engineering for the year 2009.
Research-I Fellow
Received Research-I Fellowship for years 2007-2010 by Research-I Foundation, Department of Computer Science and Engineering, IIT Kanpur.
Outstanding Ph.D. Dissertation Award
Received Outstanding Ph.D. Dissertation Award by IBM India Research Lab in 2005.
Award for commendable research
Received award for commendable research work in Inter Research Institute Students Seminar (IRISS) held in I.I.T. Delhi, March 28-29, 2003.

Teaching:

IIT Kanpur Distinguished Teacher Award for the year 2017.
Gopal Das Bhandari Memorial Distinguished Teacher award by the graduating batch of the year 2010 across all disciplines in IIT Kanpur.
Best Faculty Award by the graduating batch of the Department of Comp. Sc. & Engg., IIT Kanpur for the years (i) 2010, (ii) 2011, (iii) 2012, (iv) 2013, (v) 2015, (vi) 2017, (vii) 2018, and (viii) 2024.

Extra Curricular Activities

🢝 Spending time with my family

Professional Experience

Software Engineer

Lucent Technologies, Bangalore

🢝 Feb 1999-November 1999.

Postdoctoral Researcher

🢝 Max Planck Institute for CSE

🢝 October 2003- June 2006.

Assistant Professor

🢝 CSE, IIT Kanpur

🢝 2006-2010.

Associate Professor

🢝 CSE, IIT Kanpur

🢝 2010-2016.

Professor

🢝 CSE, IIT Kanpur

🢝 2016-onwards.

PhD Supervised

Manoj Gupta [2009 - 2014] Jointly supervised with Prof. Sandeep Sen at IIT Delhi
🢝 Currently a faculty member at IIT Gandhinagar.
Keerti Choudhary [2013 - 2017]
🢝 Recipient of the ACM India Doctoral Dissertation Award for the year 2019
🢝 Currently a faculty member at IIT Delhi
Shahbaz Khan [2013 - 2017]
🢝 Currently a faculty member at IIT Roorkee.
Koustav Bhanja [2020 - 2024]
🢝 Recipient of the Manas Mandal Best PhD Thesis award by the Department of CSE, IIT Kanpur for the year 2025
🢝 Currently a Postdoctoral fellow at Weizmann Institute of Science.
Anupam Roy [2023 - Present]

Do algorithms really matter?

Algorithms indeed matter in solving real-world problems. If you don't believe it, click here

Does teaching really matter?

Why good teaching matters ?

  1. 1. A student who comes to a course has a mind filled with curiosity about a topic. He may be the future researcher in that topic. If the teacher does not provide the right picture of that topic effectively, a student, even with a genuine interest in the topic, might be put off.
  2. 2. Let’s recall what drove us to pursue research in our area. Most likely, it must be an excellent teacher or a book authored by an excellent teacher.
  3. 3. In any class at an IIT, there are so many diamonds, precious gems, sometimes rough cut that it is crucial to strive to polish them or at the very least ensure that they are not defaced.

In the light of the above facts, if a person does not teach well, he/she is committing an academic crime that is even more serious than plagiarism. Therefore, in my view, teaching needs to be taken very seriously by each teacher. Interestingly, it just requires two qualities to become a good teacher -- (1) passion for the subject, and (2) empathy towards students.


What is an effective way of teaching algorithms?

I teach courses on algorithms. So I shall share my views on teaching from the perspective of algorithms.

There are basically two ways to explain an algorithm to a student. The first way is to define the problem, provide the pseudocode of the algorithm that solves it, and present its proof of correctness and the analysis of its time complexity. Apparently, there is nothing wrong with this method. However, the aim of a course on algorithms is to equip a student with basic skill sets so that he can design new algorithms in the future. The way of teaching algorithms described above will severely hamper the possibility of a student becoming a future researcher in algorithms. The reason is as follows.

Any algorithm that we read in a book or research paper is usually the end product. It rarely presents the path that the inventor took to design it. There is no fixed formula to design an algorithm for a problem. Usually, an algorithm emerges after persistent thinking over a problem, getting insights through examples, learning from failed attempts, sometimes abandoning all the previous algorithmic ideas, and taking a new approach to the problem. I think the aim of a course on algorithms should be to make a student experience this wonderful process of algorithm design. This experience will not only help a student get the true picture of algorithm design but also empower him/her with the confidence to work independently on an algorithmic problem in the future.

Based on this realization, another method of explaining an algorithm is to re-invent the algorithm in the class in an interactive session. The instructor tries to ask the right set of questions and encourages the students to answer them. An attempt to answer each question adds to our insight into the problem. Following this approach, the algorithm is gradually unfolded in the class in an interactive manner. Based on the feedback from the students, I have found that this method also helps them fully internalize the algorithm.

I must admit that one of the main reasons why teaching is so enjoyable for me is that I get to teach the best students in India. Many of them are gifted with extraordinary creative and analytical skills.


Teaching and Research complement each other.

I equally enjoy teaching and conducting research. I have found that research and teaching complement each other. For effective teaching, one has to go very deep to fully internalise a concept so that one is able to explain it to a student in the right manner. This process has helped me many times in formulating new fundamental research problems as well. In a similar manner, research encourages one to view a known concept from multiple directions. This helps in effective teaching as well. Moreover, one can bring freshness to the teaching by including some interesting results that one learns from a research paper.