Thisintroductory book onquantum computing includes an emphasis on the development of algorithms. Appropriate for both university students as well as software developers interested in programming a quantum computer, this practical approach to modern quantum computing takes the reader through the required background and up to the latest developments.Beginning with introductory chapters on the required math and quantum mechanics, Fundamentals of Quantum Computingproceeds to describe four leading qubit modalities and explains the core principles of quantum computing in detail. Providing a step-by-step derivation of math and source code, some of the well-known quantum algorithms are explained in simple ways so the reader can try them either on IBM Q or Microsoft QDK. The book also includes a chapter on adiabatic quantum computing and modern concepts such as topological quantum computing and surface codes.Features:o Foundational chapters that build the necessary background on math and quantum mechanics.o Examples and illustrations throughout provide a practical approach to quantum programming with end-of-chapter exercises.o Detailed treatment on four leading qubit modalities -- trapped-ion, superconducting transmons, topological qubits, and quantum dots -- teaches how qubits work so that readers can understand how quantum computers work under the hood and devise efficient algorithms and error correction codes.Also introduces protected qubits - 0-? qubits, fluxon parity protected qubits, and charge-parity protected qubits. o Principles of quantum computing, such as quantum superposition principle, quantum entanglement, quantum teleportation, no-cloning theorem, quantum parallelism, and quantum interference are explained in detail.A dedicated chapter on quantum algorithm explores both oracle-based, and Quantum Fourier Transform-based algorithms in detail with step-by-step math and working code that runs on IBM QisKit and Microsoft QDK. Topics on EPR Paradox, Quantum Key Distribution protocols, Density Matrix formalism, and Stabilizer formalism are intriguing. While focusing on the universal gate model of quantum computing, this book also introduces adiabatic quantum computing and quantum annealing.This book includes a section on fault-tolerant quantum computing to make the discussions complete. The topics on Quantum Error Correction, Surface codes such as Toric code and Planar code, and protected qubits help explain how fault tolerance can be built at the system level.