1. Introduction
1.1 Computability
1.2 Quantum information theory
1.3 Programming languages
2. Turing machines
2.1 Classical Turing machine
2.2 Nondeterministic and probabilistic computation
2.3 Quantum Turing machine
2.4 Modifications of the base model
2.4.1 Generalized quantum Turing machine
2.4.2 Classically controlled quantum Turing machine
2.5 Quantum complexity
2.6 Fantasy quantum computing
2.7 Summary
3. Quantum finite state automata
3.1 Finite automata
3.1.1 Deterministic finite automata
3.1.2 Nondeterministic finite automata
3.1.3 Probabilistic automata
3.2 Quantum finite automaton
3.2.1 Measure-once quantum finite automaton
3.2.2 Measure-many quantum finite automaton
3.3 Quantum languages
3.4 Summary
4. Computational circuits
4.1 Boolean circuits
4.2 Reversible circuits
4.2.1 Universal reversible gates
4.3 Quantum circuits
4.4 Summary
5. Random access machines
5.1 Classical RAM model
5.1.1 Elements of the model
5.1.2 RAM-ALGOL
5.2 Quantum RAM model
5.3 Quantum pseudocode
5.3.1 Elements of quantum pseudocode
5.3.2 Quantum conditions
5.3.3 Measurement
5.4 Summary
6. Quantum programming environment
6.1 Architecture components
6.2 Quantum intermediate representation
6.3 Quantum assembly language
6.4 Quantum physical operations language
6.5 XML-based representation of quantum circuits
6.5.1 Basic elements
6.5.2 External circuits
6.6 Summary
7. Quantum programming languages
7.1 Why study quantum programming languages?
7.2 Quantum programming basics
7.3 Requirements for a quantum programming language
7.4 Basic features of existing languages
7.4.1 Imperative languages
7.4.2 Functional languages
7.5 Summary
8. Imperative quantum programming
8.1 QCL
8.1.1 Basic elements
8.1.2 Quantum memory management
8.1.3 Classical and quantum procedures and functions
8.1.4 Quantum conditions
8.2 LanQ
8.2.1 Basic elements
8.2.2 Process creation
8.2.3 Communication
8.2.4 Types
8.3 Summary
9. Functional quantum programming
9.1 Functional modelling of quantum computation
9.2 cQPL
9.2.1 Classical elements
9.2.2 Quantum elements
9.2.3 Quantum communication
9.3 QML
9.3.1 Program structure
9.3.2 Subroutines
9.4 Summary
10. Outlook
Bibliography
Author's biography.