Probabilistic aspects of quantum programming

Quantum information theory allows us to use quantum mechanics resources for processing and sending information. Since the rules of quantum mechanics are in many aspects counterintuitive, the development of new quantum algorithms and protocols is complicated. At the moment only a few algorithms exist which can be executed on a quantum computer with significant improvement in speed or memory usage. The main goal of this thesis is to describe the methods of using quantum programming languages for developing new quantum algorithms. We present the original implementation of a classical game where quantum programming was used to develop and analyse quantisation of the game. We also show how quantum data types, ie. data types allowing for storing superposition of values, can be used to develop new quantum algorithms.