Recent Posts

More Posts

⚡ Pluto.jl ⚡ mjx-container[jax="SVG"] { direction: ltr; } mjx-container[jax="SVG"] svg { overflow: visible; } mjx-container[jax="SVG"] svg a { fill: blue; stroke: blue; } mjx-assistive-mml { position: absolute !important; top: 0px; left: 0px; clip: rect(1px, 1px, 1px, 1px); padding: 1px 0px 0px 0px !important; border: 0px !important; display: block !important; width: auto !important; overflow: hidden !important; -webkit-touch-callout: none; -webkit-user-select: none; -khtml-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; } mjx-assistive-mml[display="


All of us have been thinking about how to move the classroom online. Here is my setup; it replicates what I do at the school, with the additional benefit of recording the whole lecture for those who are not in the same time zone or on a fat pipe like the rest of us. The cost involved is minimal, and the installation is hardware friendly. So, what does my classroom look like?


This post is a follow-on to the post on the reflection trick in quantum computing. The recipe that we will learn hands-on in this post is again a viral trick that is used all over the place in quantum algorithms that rely on the query model of Boolean functions. The method will also give an alternate way to implement the operator $R$ in $HRH$ in the reflection part of Grover’s algorithm.


This hands-on post aimed at senior undergraduate and graduate students in CS illustrates the amplification trick due to Grover that is central to Quantum Search. Basic familiarity with python and linear algebra (tensor multiplication) is helpful to appreciate the trick and the construction of the quantum circuit. An understanding of Quantum Mechanics is not needed to understand and use Grover’s algorithm. The following beliefs are sufficient to appreciate the power of Quantum i) $n$ particle system keeps track of $N=2^n$ states in its belly, and ii) state changes can be accomplished efficiently by manipulating few particles (local changes) at a time.


! pronounced “cut” is a special goal in prolog which always succeeds. The purpose of cut, loosely speaking, is to freeze some of the choices made by the backtracking sytem so far. Cuts can therefore be used to increase the efficiency (time) of prolog programs. First we will see how the backtracking is affected by the use of cuts. Then we will give an example use of cuts to speed up prolog programs.



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, Fall 2019
  • Computer Networks CPSC 3780, Fall 2014, Fall 2016
  • Data Structures and Algorithms CPSC 3620, Spring 2017, Fall 2017, Spring 2018, Fall 2018.
  • Discrete Structures for Computer Science, CPSC 1820, Spring 2015, Spring 2016, Fall 2017, Fall 2018, Spring 2020
  • Programming Languages CPSC 3740, Spring 2016, Spring 2017, Spring 2020
  • Theory of Computation, CPSC 3630, Fall 2014, Fall 2019
  • Advanced Algorithms, CPSC 4625, Spring 2018

A select list of recent independent studies is below.

  • Behaviour Trees: Intro to Mult. Agent Systems, CPSC 3990, Summer 2018
  • Approximation Algorithms, CPSC 5990, Spring 2015, Spring 2017, Fall 2018.
  • Approximation Algorithms, CPSC 7990, Fall 2018.
  • 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.


  • 403 329 2496
  • 4401 University Drive, Lethbridge, AB, Canada T1K5K4
  • Tu, Th 12:00 to 13:00 or email for an appointment. All email in the inbox is processed, eventually.

Graduate Students & Research Interns

It has been a pleasure working with several excellent students.

Name Degree Year
Leila Karimi Ph. D. cont. linkedin profile
Bipasha Chowdhury M. Sc. Aug 2020 linkedin profile
Ajay Raj Tedlapu M. Sc. Dec 2019 linkedin profile
Peash Ranjan Saha M. Sc. Dec 2018 linkedin profile
Arshdeep Singh B. Sc. Summer 2018 NSERC USRA
Lazima Ansari M. Sc. Aug 2017 linkedin profile
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 linkedin profile
Anamay Sarkar B. Tech 2016 MITACS Globalink Intern linkedin profile
Umair Arif M. Sc. 2017 co-supervised with Dr. Benkoczi. Information Technology Analyst at Government of Canada. linkedin profile
Kawsar Jahan M. Sc. 2015 co-supervised with Dr. Benkoczi. linkedin profile
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. Google Scholar
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. Queen’s University.
Dr. Salimur Choudhury M. Sc. 2008 Ph. D. Queen’s University. Google Scholar
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.


My research interests are in Combinatorial Optimization, Bioinformatics and Quantum Algorithms. The research has been supported by NSERC Canada, Department of Science and Technology, Govt. of India, Alberta Innovates (Quantum MIF) and University of Lethbridge. I am a member of the Optimization Research Group, Quantum Alberta, and Souther Alberta Genome Sciences Center.

My publications and research grants as indexed by and