Teaching experience:

Since Dec 11, 1990 I was working as Lecturer in the Department of Computer Science and Engineering, IIT, Kharagpur.

Since Dec 31, 1993 I was serving as Assistant Professor in the same department.

Since February 13, 1998, I am serving as Associate Professor in the same department.

During these last  ten years, I have taught undergraduate and graduate courses. I have taught a course on Discrete Structures (Autumn 1996) and Computer Graphics to graduates (Spring 1991). To undergraduates, I have taught courses on Computational Geometry, The Design and Analysis of Algorithms (Spring 1997), Computer Aided Design (3 times), Theory of Computation, Automata and Formal Language Theory (four times), Introduction to Computing (Spring 1997), and Operating Systems. I have undertaken undergraduate laboratory courses on Operating Systems, Introduction to Computing, Compiler Design, Systems Programming, Programming and Data Structures (in C programming language), and Computer Aided Design. I have also taken the M. Tech. laboratory, Information Processing.

In Autumn '97 I taught Automata and Formal Language Theory to 3rd year B. Techs. and Discrete Structures to first year M. Techs.

In  Spring '98 semester, I taught a graduate level elective on Computational Complexity.

In Autumn 1998 I taught the core course, Formal Languages and Automata Theory to about 50 third year undergraduates.

In Spring '99, I taught an undergraduate core course on Design and Analysis of Algorithms and a graduate elective on Computational Geometry.

During Autumn 1999 and Spring 2000,  I  worked as Visiting Associate Professor in the Department of Mathematics and Computer Science, Univ. of Miami.  In Autumn 1999, I taught  Computational Geometry MTH647, a graduate level course , and MTH517,  Data Structures and Algorithm Analysis.

In Spring 2000, I taught courses MTH529, Introduction to Computer Graphics, and MTH228, Assembly Language Programming, in the Univ. of Miami.

In Autumn 2000 I taught a graduate level elective course on Computer Graphics and a Data Structures laboratory.

In Spring 2001 I taught an undergraduate level course on Computer Graphics and Applications. I also conducted a Programming and Data Structures laboratory for about 80 students and a Systems Programming loboratory for about 55 students in Spring 2001.

In Autumn 2001, I taught a graduate elective on Computer Graphics and a graduate elective on Internet Technologies. I also conducted a Computer Networks laboratory for Computer Science undergraduates.

In Spring 2002 I taught an undergraduate core course on Software Engineering and conducted the corresponding laboratory for third year B Tech students of the Department of Computer Science and Engineering.
 

In Autumn 2002 I taught a graduate core course on Algorithms 17621 and conducted an undergraduate Networks and Distributed Computing laboratory.
 

In Spring 2003 I taught two electives: Computational Geometry (17638/CS40010) and Computational Complexity (17642/CS40007) and, an undergraduate core laboratory ("Programming and Data Structures") for first year B Tech students.
 

Industrial experience:

I worked in the industry for 13 months (in Machinery Manufacturer's Corporation, Digital Systems Division), from June 1983 till July 1984, designing and developing systems software for a multi-user minicomputer that was being built indigeneously around the 8086 microprocessor. This machine (called MMC-601), existed before the IBM PC invaded Indian markets. I had to debug, upgrade and maintain the operating system and utilities for this machine.