Machine learning was defined in 1959 by Arthur Samuel as the "field of study that gives computers the ability to learn without being explicitly programmed". The EITC/AI/MLPP Machine Learning Programming with Python programme aims in introducing fundamentals of machine learning (including basic understanding of the theory) focusing on programming with Python. Except of the theory it covers applications along with theoretical and practical aspects of supervised, unsupervised, and deep learning machine learning algorithms. The programme covers linear regression, K Nearest Neighbors, Support Vector Machines (SVM), flat clustering, hierarchical clustering, and neural networks. It includes basic notions of the algorithimcs involved and the logic behind. It also covers discussion of the applications of the algorithms in programming using examplary real data sets along with modules (e.g. Scikit-Learn). The programme will also cover details of each of the algorithms by implementing these algorithms in code, including the involved mathematics with insights into how exactly the algorithms work, how they can be modified, and what are their properties, including advantages and disadvantages. The algorithmics involved in machine learning are rather simple (as conditioned by their scaling necessity for large data sets), as is the mathematics which they are based on (linear algebra).

### Curriculum Reference Resources

Python documentation

https://www.python.org/doc/

Python releases downloads

https://www.python.org/downloads/

Python for Beginners Guide

https://www.python.org/about/gettingstarted/

Python Wiki Beginners Guide

https://wiki.python.org/moin/BeginnersGuide

W3Schools Python Machine Learning Tutorial

https://www.w3schools.com/python/python_ml_getting_started.asp