EdX

Quantum Computer Systems Design I: Intro to Quantum Computation and Programming (edX)

Quantum Computer Systems Design I: Intro to Quantum Computation and Programming (edX)

This course explores the basic design principles of today's quantum computer systems. In this course, students will learn to work with the IBM Qiskit software tools to write simple quantum programs and execute them on cloud-accessible quantum hardware. This quantum computing course explores the basic design principles of today's quantum computer systems. In this course, students will learn to work with the IBM Qiskit software tools to write simple programs in Python and execute them on cloud-accessible quantum hardware.

Class Deals by MOOC List - Click here and see EdX's Active Discounts, Deals, and Promo Codes.

Topics covered in this course include:

  • Introduction to systems research in quantum computing
  • Fundamental rules in quantum computing, Bloch Sphere, Feynman Path Sum
  • Sequential and parallel execution of quantum gates, EPR pair, no-cloning theorem, quantum teleportation
  • Medium-size algorithms for NISQ (near-term intermediate scale quantum) computers
  • Quantum processor microarchitecture: classical and quantum control
  • Quantum program compilation and qubit memory management

Keywords: quantum computing, computer science, linear algebra, compiler, circuit optimization, python, qiskit, quantum algorithms, quantum technology, superposition, entanglement, qubit technology, superconducting qubit, transmon qubit, ion-trap qubit, photonic qubit, real quantum computers.
This course is part of the Quantum Computer Systems Design Professional Certificate.

What you'll learn

  1. Understand design principles of full-stack quantum software design
  2. Understand several examples of quantum system inefficiencies
  3. Learn how to apply several classical software techniques to improve quantum hardware reliability and performance
  4. Learn examples of how classical software techniques can be applied to make quantum systems more reliable and efficient
  5. Learn how to think about the overall design of a quantum system and how the software and hardware work together
  6. Develop unique skills to be more competitive in seeking a position in quantum software development

Syllabus

Textbooks

  • (Required) Quantum Computer Systems (QCS). Ding and Chong.
  • (Open) Learn Quantum Computation using Qiskit. IBM Qiskit.
  • (Optional) Quantum Computation and Quantum Information (QCQI). Nielsen and Chuang.

Schedule
Module 1 (Intro to Quantum Computation and Programming)

  • Lec 00 - Quantum Computing Systems – Current State-of-Play
  • Lec 01 - From bits to qubits
  • Lec 02 - QASM and logic gate decomposition
  • Lec 03 - Basic quantum programs

Module 2 (Principles of Quantum Architecture)

  • Lec 04 - Program compilation and synthesis
  • Lec 05 - Program compilation and synthesis II
  • Lec 06 - Gate scheduling and parallelism
  • Lec 07 - Qubit mapping and memory management

Module 3 (Working with Noisy Systems)

  • Lec 08 - NISQ algorithms
  • Lec 19 - Noisy quantum systems
  • Lec 10 - Noise-aware quantum compiling

Prerequisites:
Introduction to Quantum Computing for Everyone Part 1 and Part 2

Go to Class
MOOC List is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Related Courses

Introduction to Object-Oriented Programming with Java II: Object-Oriented Programming and Algorithms (edX) EdX
Georgia Institute of Technology,GTx

Introduction to Object-Oriented Programming with Java II: Object-Oriented Programming and Algorithms (edX)

Learn the basics of object-oriented programming and algorithms. Students will build on the skills learned from “Introduction to Object-Oriented Programming with Java I: Foundations and Syntax Basics” and learn the basics of writing classes that serve as blueprints of concepts or objects that are represented in a programming problem. Students will leverage the concepts of inheritance, interfaces, and polymorphism to program reusability and flexibility in classes. Finally, students will gain experience walking through and analyzing algorithms that are applied on data (including objects) in many object-oriented programs.

Self Paced
Self-Paced
Programación para todos (empezando con Python) (edX) EdX
University of Michigan,MichiganX

Programación para todos (empezando con Python) (edX)

Este curso en línea es una introducción "sin prerrequisitos" a la programación en Python. Aprenderás sobre las variables, la ejecución condicional, la ejecución repetida y cómo usamos las funciones. Este curso de Python tiene el objetivo de enseñar a todos lo básico de la programación de computadoras usando Python. Conocerás cómo construir un programa de una serie de instrucciones simples en Python.

Self Paced
Self-Paced
Java Programming Fundamentals (edX) EdX
Galileo University,GalileoX

Java Programming Fundamentals (edX)

Your career as a program developer starts here. Gain entry-level programing skills in Java language, and prepare yourself to handle any task that is required in any programming job. Java is one of the most in-demand programming languages today. This course is designed to provide students the basic skills and knowledge on Java.

Self Paced
Self-Paced
LAFF – On Programming for Correctness (edX) EdX
University of Texas at Austin,UTAustinX

LAFF – On Programming for Correctness (edX)

Learn to apply formal methods to systematically develop correct, loop-based programs, an essential skill for computer programmers. Is my program correct? Will it give the right output for all possible permitted inputs? Computers are now essential in everyday life. Incorrect programs lead to frustration in the best case and disaster in the worst. Thus, knowing how to construct correct programs is a skill that all who program computers must strive to master.

Self Paced
Self-Paced
Introduction to Java Programming: Starting to code in Java (edX) EdX
Universidad Carlos III de Madrid - UC3M,UC3Mx

Introduction to Java Programming: Starting to code in Java (edX)

Learn to program with Java in an easy and interactive way! In this introductory Java programming course, you will be introduced to powerful concepts such as functional abstraction, the object oriented programming (OOP) paradigm and Application Programming Interfaces (APIs). Examples and case studies will be provided so that you can implement simple programs on your own or collaborate with peers.

Self Paced
Self-Paced
CS50's Introduction to Computer Science (edX) EdX
HarvardX,Harvard University

CS50's Introduction to Computer Science (edX)

An introduction to the intellectual enterprises of computer science and the art of programming. This is CS50, Harvard University's introduction to the intellectual enterprises of computer science and the art of programming for majors and non-majors alike, with or without prior programming experience. An entry-level course taught by David J. Malan, CS50 teaches students how to think algorithmically and solve problems efficiently.

Self Paced
Self-Paced
Python Data Structures (edX) EdX
University of Michigan,MichiganX

Python Data Structures (edX)

The second course in Python for Everybody explores variables that contain collections of data like string, lists, dictionaries, and tuples. Learning how to store and represent and manipulate data collections while a program is running is an important part of learning how to program.

Self Paced
Self-Paced
JavaScript Introduction (edX) EdX
World Wide Web Consortium - W3C,W3Cx

JavaScript Introduction (edX)

Learn JavaScript, a Web development programming language, to add interactivity to your Web pages, and become an expert Web developer. This computer science course is an initiation to JavaScript programming and has been designed to help Web developers have an understanding of the basic concepts of the language. This course was developed in partnership between W3C and University Côte d'Azur.

Self Paced
Self-Paced
Computing in Python IV: Objects & Algorithms (edX) EdX
Georgia Institute of Technology,GTx

Computing in Python IV: Objects & Algorithms (edX)

Learn about recursion, search and sort algorithms, and object-oriented programming in Python. Complete your introductory knowledge of computer science with this final course on objects and algorithms. Now that you've learned about complex control structures and data structures, learn to develop programs that more intuitively leverage your natural understanding of problems through object-oriented programming. Then, learn to analyze the complexity and efficiency of these programs through algorithms. In addition, certify your broader knowledge of Introduction to Computing with a comprehensive exam.

Self Paced
Self-Paced
Programming for Data Science (edX) EdX
University of Adelaide,AdelaideX

Programming for Data Science (edX)

Learn how to apply fundamental programming concepts, computational thinking and data analysis techniques to solve real-world data science problems. There is a rising demand for people with the skills to work with Big Data sets and this course can start you on your journey through our Big Data MicroMasters program towards a recognised credential in this highly competitive area. Using practical activities you will learn how digital technologies work and will develop your coding skills through engaging and collaborative assignments.

Self Paced
Self-Paced