Recent Posts

More Posts

Numbers are all In this post, we examine two examples set out in the classic paper by Turing. The first problem is to report the $n^{th}$ binary digit of 1⁄3. The second problem is to report the $n^{th}$ binary digit of $\sqrt{2}$. The 1936 paper On computable numbers, with an application to the Entscheidungsproble describes two machines to perform the tasks. In this post, we give in Haskell two programs for the same.


In this post, we implement in Haskell, the augmenting path method to find a maximum matching in a bipartite graph. We use function composition and recursion mostly. We obtain a simple implementation of an algorithm to compute maximum matching in a bipartite graph. As a side affect of this exercise, you should know about algorithms to compute terminal objects, and fix points in a category. Only a basic familiarity with Haskell is assumed here.


AVL Trees are binary search trees with a balance condition. The balance condition ensures that the height of the tree is bounded. The two conditions satisfied by an AVL tree are: order property: the value stored at every node, is larger than any value stored in the left subtree, and is smaller than any value stored in the right subtree. balance property: at every node the difference in the height of the right and the left subtrees is at most 1.


Let us implement Splay Trees in Julia which is, relatively new and popular, dynamically typed language with multiple dispatch. We model a node in the splay tree as an abstract data type. Each node contains a single integer data value and two references to the left and the right subtrees. The subtrees can be empty, as in the case of leaf nodes, and we model this by using the Nil type.


An emulator for Register Machine Our goal is to implement an emulator for a register machine using flex and bison. In the process we will illustrate a function that assigns numbers to programs, the von Neumann machine, and explain how to write self modifying code. Recall that a register machine has an unlimited number of registers and the following three instructions. HALT, stops the machine INC r j, increments the contents of register r, and moves to instruction number j.



I have taught a variety of courses at the undergraduate and the graduate level. I have taught courses at Simon Fraser University, University of Lethbridge, TIFR Mumbai, IIT Delhi, IIT Ropar, IIT Mandi and at IIT BHU. Some of the courses that I have taught in the recent past are listed below.

  • Artificial Intelligence, CPSC 3750, Spring 2015
  • Approximation Algorithms, CPSC 5110, Fall 2016
  • Computer Networks CPSC 3780, Fall 2014, Fall 2016
  • Data Structures and Algorithms CPSC 3620, Spring 2017, Fall 2017
  • Discrete Structures for Computer Science, CPSC 1820, Spring 2015, Spring 2016, Fall 2017
  • Programming Languages CPSC 3740, Spring 2016, Spring 2017
  • Theory of Computation, CPSC 3630, Fall 2014

A select list of recent independent studies is below.

  • Approximation Algorithms, CPSC 5990, Spring 2015, Spring 2017
  • Mining of Massive Data Sets, CPSC 4990, Spring 2015
  • Practical Bioninformatics, CPSC 3990, Summer 2016
  • Quantum Computation, CPSC 5990, Summer 2016

Please visit for resources related to the current course offerings.


Graduate Students & Research Interns

It has been a pleasure working with several excellent students.

Name Degree Year
Peash Ranjan Saha M. Sc. cont.
Lazima Ansari M. Sc. Aug 2017
Sharmin Akter M. Sc. Aug 2017
Parijat Purohit M. Sc. Aug 2017 co-supervised with Dr. Benkoczi
Dr. Ram Dahal Ph. D. 2017 co-supervised with Dr. Benkoczi
Anamay Sarkar B. Tech 2016 MITACS Globalink Intern
Umair Arif M. Sc. 2017 co-supervised with Dr. Benkoczi. Research Associate at University of Lethbridge.
Kawsar Jahan M. Sc. 2015 co-supervised with Dr. Benkoczi, with TD Bank.
Anik Saha M. Sc. 2015 co-supervised with Dr. Hossain, with Aphelion.
Dr. Rishi Singh Ph. D. 2011-2012 IIT Ropar Now Assisant Professor at IIT Bhilai.
Sangita Bhattacharjee M. Sc. 2010 Presently with the University of Lethbridge.
Tarikul Sabbir M. Sc. 2010 co-supervised with Dr. Benkoczi
Dr. Tauhid Islam M. Sc. 2009 Ph. D. from Queen’s University.
Dr. Salimur Choudhury M. Sc. 2008 Ph. D. from Queen’s University. Assistant Professor at Lakehead U, Canada.
Dallas Thomas M. Sc. 2006 presently at Lethbridge Research Centre - Agriculture and Agri-Food Canada.
Elspeth Nickel M. Sc. 2005 co-supervised with Dr. Wismath.


I work on approximation algorithms. My research program has been supported by NSERC Discovery Grant since 2003. I am a member of the Optimization Research Group at the University of Lethbridge.

A list of publications as indexed by DBLP is below.