# Prerequisite#

Translation:

This course combines both theory for in-depth understanding of the material and plenty of practice to reinforce skills and work through non-obvious situations/problems. Therefore, it is assumed that you already have some basic knowledge. You can check yourself with the optional Entrance Test, which will help you understand if you need to take the introductory “blue” lectures – on Python, math and machine learning (15 questions total, 5 per block). The test is pretty simple, so if you pass it without mistakes or almost without mistakes - that doesn’t say much, anyway it can be difficult. But if you have a lot of mistakes, then you should turn to the introductory “blue” blocks.

## Python, Poetry and development environment#

To be successful in the course you must be able to do and understand such things as

• copying files from GitHub;

• installing Poetry and the Python libraries;

• how to run/start the Jupyter Notebook;

• the basic keyboard shortcuts in Jupyter Notebook;

• how to run code in Jupyter Notebook;

• what simple data types exist in Python;

• how to work with complex container types (list, dict, tuple), including the most popular methods of each;

• how Python arithmetic works and how variables of different types relate to one another;

• what are conditional constructs and branching logic;

• what is a block of code in Python and why indents (tabs) are needed;

• what loops are and how they can be used with complex data types;

• how to write functions in Python and what function arguments are and what they are;

• what a decorator is and how to use it;

• basic OOP: class declaration, the concept of a class object, the ability to write class methods.

If you don’t understand any of the topics, it is highly recommended that you refresh your knowledge (or even acquire it) by taking the corresponding lessons in Python Basics. Even if you have experience working with it and writing code, you are encouraged to learn how to install all the necessary dependencies and libraries, as well as the hotkeys and various functions in the Jupyter Notebook.

## Linear algebra and Numpy#

To understand basic quantum algorithms and quantum machine learning algorithms, just as in classical machine learning, one cannot do without linear algebra. If you have time to take mathematics seriously, we recommend Gilbert Strang or D.V. Beklemishev (RU) courses, as well as A.I. Kostrikin’s problem book (RU). And if you have ever studied linear algebra, but have forgotten it, a block of our course will help. We want you to have no problems with such concepts as

• vector-line and vector-column;

• linear dependence of vectors;

• systems of linear equations;

• matrices, determinants and trace of a matrix;

• linear operator;

• complex and Hermite conjugation;

• scalar and vector product;

• Hilbert space.

The list is obviously not exhaustive, and it is likely that you will not list all the things that can be encountered as you study quantum algorithms.

## Machime Learning#

Finally, to talk about quantum machine learning, you need to have a good understanding of machine learning. This course unit describes what different machine learning tasks have in common and how the various applications of machine learning models are put together like a jigsaw puzzle. This block, however, does not replace a good book or course on machine learning (like Andrew Ng course, Yandex and MIPT specialization (RU), mlcourse.ai, Machine Learning course at FKN HSE – E. A. Sokolov (RU) or SHAD’s Machine Learning Tutorial (RU)) covering topics such as:

• teacher-assisted and non-teacher-assisted learning, reinforcement learning;

• quality metrics in learning tasks with a teacher;

• loss functions and reduction of machine learning problems to optimization problems;

• feature processing and construction;

• model quality assessment and cross validation;

• classification and regression algorithms: decision trees, forest, boosting, logistic regression, etc;

• ranking algorithms, ranking quality metrics;

• teacherless learning: dimensionality reduction, clustering, anomaly search;

• bayesian view of machine learning;

• representation learning.

Again, this is not an exhaustive list, and it covers only the “classics,” ignoring deep learning. But if any of these things are confusing or if the entry test fails, it may be worth referring to the courses mentioned above.