Recent Posts

More Posts

See “Computational Category Theory” by Rydeheard and Burstall for implementation, in ML, of the algorithms in elementary category theory. Following their lead, we present data types in Haskell that can be used to implement basic algorithms in category theory. We use a category in which addition (of integers) can be performed to ground the discussion. You will also need familiarity with types, type variables and classes in Haskell (see website) to proceed.


A tale of two Knapsacks MathJax.Hub.Config({ tex2jax: {inlineMath: [['$','$'], ['\\(','\\)']]}, TeX: { equationNumbers: { autoNumber: "AMS" } } }); pre.hljl { border: 1px solid #ccc; margin: 5px; padding: 5px; overflow-x: auto; color: rgb(68,68,68); background-color: rgb(251,251,251); } pre.hljl span.hljl-t { } pre.hljl span.hljl-w { } pre.hljl span.hljl-e { } pre.hljl span.hljl-eB { } pre.hljl span.hljl-o { } pre.hljl span.hljl-k { color: rgb(148,91,176); font-weight: bold; } pre.


⚡ 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="


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.



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