This course it's suitable also to, beginner and intermediate users, with strictly minimum necessary background at Mathematics, Linear Algebra, Computer Science/Engineering and Programming (most specifically, using Python environments), with no strictly necessary background at Quantum Physics/Mechanics (but, it's strongly recommended).
If you're familiar with the basic concepts of Quantum Physics/Mechanics, you're encouraged to move forward in this course, to the Core 2 - Introduction to Quantum Computing.
If you already have some background and experience of what Quantum Computing it's all about and feel comfortable with it, you should feel completely free to move forward in this course, to the Core 3 - Discovering the Quantum Computing.
This course will be focused on learning by doing, in a step by step fashion, like "Quantum Computing for Dummies". So, don't be nervous!!! A little sense of humor throughout this course, in several occasions, will help you to try to relax a little, I hope!!!
It was used, reviewed and adapted some articles, papers, tutorials and examples (among many others) in several topics, which have applications of Quantum Computing, in order to build and develop the materials for this course.
Some of the examples and images used in this course was completely designed and built by myself, in order to try to make the understanding of its contents much easier and simpler for the user and/or reader.
Initially, it will be addressed the basic fundamentals and concepts of, Quantum Physics/Mechanics and Quantum Theory, which are in the basis of the study and research of Quantum Computing.
Then, it will be explained on which consists the Quantum Computing and the important advantages and results which it can bring to the society. It will be also addressed, the differences of it, in comparison to Classical Computing, its challenges, its Current State of Art and the R&D areas on which it will applied, in a near future.
Finally, it will be explored some more complex features, solving some exercises based on Quantum Computing, using IBM Q Experience, Qiskit, Google Cirq, Microsoft Quantum Development Kit (Microsoft QDK), Q# (Q-Sharp), among many other Frameworks/Tools, in a more efficient fashion, in comparison with Classical Computing, using its inherent properties.
Quantum Computation and Quantum Information - Michael Nielsen and Isaac Chuang:
University of Cambridge Press (10th Anniversary Edition, 2010)
Considered commonly as ”The Bible” of the Quantum Computing
Quantum Information Processing: From Theory to Experiment - Dimitris Angelakis, Matthias Christandl, Artur Ekert, Alastair Kay and Sergeu Kulik:
IOS Press (2004)
NATO Advanced Study Institute on Quantum Computation and Quantum Information
Quantum Computing: A Gentle Introduction - Eleanor Rieffel and Wolfgang Polak
The MIT Press (2011)
From Classical to Quantum Shannon Theory - Mark Wilde:
Cambridge University Press (2019)
Quantum Information Theory and The Foundations of Quantum Mechanics - Christopher Timpson:
The Queen's College (Trinity Term, 2004)
A thesis submitted for the degree of Doctor of Philosophy at the University of Oxford
Quantum Walks for Computer Scientists - Salvador Venegas-Andraca:
Morgan & Claypool and Quantum Information Processing Group, Tecnológico de Monterrey, Campus Estado de México (2008)
Quantum Computation: Lecture Notes - Ashley Montanaro:
School of Mathematics of University of Bristol (Spring, 2008)
Quantum Computing: Lecture Notes - Ronald de Wolf:
QuSoft, CWI and University of Amsterdam (2019)
Quantum Mechanics: An Introduction - Walter Greiner:
Springer (4th Edition, 2000)
Quantum Physics - Stephen Gasiorowicz:
Wiley (3rd Edition, 2003)
Anaconda - https://www.anaconda.com/
Platform Distribution for Data Science, Machine Learning and Deep Learning, performed in Python/R environments
Python - https://www.python.org/
Interpreted, object-oriented, high-level programming language with dynamic semantics, high-level built in data structures, combined with dynamic typing and dynamic binding, make it very attractive for Rapid Application Development, as well as for use as a scripting or glue language to connect existing components together
IPython (Interactive Computing) - https://www.ipython.org/
Rich architecture for interactive computing, in Python environments with a powerful interactive shell, a kernel for Jupyter, support for interactive data visualization and use of GUI toolkits, flexible, embeddable interpreters to load into your own projects and high performance tools for parallel computing
Binder - https://mybinder.org/
Notebooks in an executable environment, making the source code immediately reproducible by anyone, anywhere
Colab - https://colab.research.google.com/
Free Jupyter Notebook environment that requires no setup and runs entirely in the cloud
Jupyter Notebook - https://jupyter.org/
Framework/Tool to develop open-source software, open-standards, and services for interactive computing across dozens of programming languages
Jupyter Books - http://jupyterbook.org/
Framework/Tool to build an online book using a collection of Jupyter Notebooks and Markdown files
Optimising static compiler for both the Python programming language and the extended Cython programming language (based on Pyrex)
Java implementation of Python that combines expressive power with clarity
Matplotlib - https://matplotlib.org/
Python 2D plotting library which produces publication quality figures in a variety of hardcopy formats and interactive environments across platforms
Fundamental package for scientific computing with Python, containing a powerful N-dimensional array object, sophisticated (broadcasting) functions, tools for integrating C/C++ and Fortran code and useful linear algebra, Fourier transform, and random number capabilities
Pandas - https://pandas.pydata.org/
Open source, BSD-licensed library providing high-performance, easy-to-use data structures and data analysis tools for the Python programming language
PyTorch - https://pytorch.org/
Open source machine learning framework that accelerates the path from research prototyping to production deployment
SciKit Learn - https://scikit-learn.org/stable/
Free software machine learning library for the Python programming language
SciPy - https://www.scipy.org/
Python-based ecosystem of open-source software for mathematics, science and engineering
SymPy - https://www.sympy.org/en/index.html
Python library for symbolic mathematics computation
TensorFlow - https://www.tensorflow.org/
End-to-end open source machine learning platform
Open-source software for simulating the dynamics of open quantum systems
NetSquid - https://netsquid.org/
The world's first network simulator that's capable of simulating the decay of quantum information over time together with noisy operations and stochastic feedback loops
SimulaQron - http://www.simulaqron.org/
Application level simulator for a Quantum Internet that allows you to program your own Quantum Internet applications
ProjectQ - https://projectq.ch/
Open-source software framework for quantum computing started at ETH Zurich
Quantum Inspire - https://www.quantum-inspire.com/
Quantum computing platform designed and built by QuTech, providing to users access to various technologies to perform quantum computations
The Anaconda distribution already contains some frameworks/tools by default, such as Python, NumPy, Matplotlib, among others
But it's strongly recomended to install each one of them separately
And you can also see the for Documentation for Jupyter Notebook, clicking here or even, clicking here
You can see the Documentation here
And you can also, check some Tutorials through your IBM Q Experience account, here
You can see the Documentation/User's Guide and some Tutorials here
You can see the Documentation/User's Guide here (in Online and PDF versions)
And you can also, check some Tutorials here
You can see the Documentation/User's Guide here (in Online and PDF versions)
And you can also, check some Tutorials here
You can see the Documentation/User's Guide here (in Online and PDF versions)
And you can also, check some Tutorials here
You can see the User's Guide Documentation here (in Online and PDF versions)
And you can also, check some Tutorials here