Quantum computation is a rapidly growing field at the intersection of physics and computer science, electrical engineering and applied math. While instrumentation of quantum computers is in its infancy, quantum algorithms are being developed to provide efficient solutions to various computational problems. This course covers basic quantum computing, including quantum circuits, significant quantum algorithms, and hybrid quantum-classical algorithms, with focus on applying the concepts to programming existing and near-future quantum computers. Example codes, homework assignments, and class projects will employ Python modules to handle the data exchange with quantum computers.