About these lecture notes
Contents
About these lecture notes¶
In these notes, Python - a gateway to machine learning, we collect lecture notes for the course with the same name that is offered at Halmstad University.
A typical student of the course will have taken one or more programming courses and may also have some professional experience involving programming.
It is not required though that the student knows Python already: the course introduces Python as needed. We have produced a concise presentation of the more basic constructs of Python to use as a reference as we go: how to form expressions and comands, how to define functions and how to define classes. We recommend prospective students of the course to walk through that concise presentation, tinkering with the code in order to become familiar with reading Python code. The concise presentation also includes a chapter with instructions for downloading and start using the software we use in the course (Jupyter notebooks).
Students that feel that they need to understand basic programming techniques as opposed to just transfer from another programming language are refered to chapters 1.2, 1.3, 1.4 and 1.5 of the introductory book Composing Programs by John DeNero.
The format¶
These lecture notes are divided into parts and each part has chapters with sections. In each chapter there is a lecture with explanations and links to reference material (a book or a paper or a recording of a lecture) and possibly some questions for students to stop, reflect and test their understanding.
The sections are mostly Jupyter notebooks with brief explanations and programs. You should download the notebooks to your computer in order to experiment with the programs. You can download them by using the download icon on the top right of the page: if it suggests that you can download it as a .ipynb file then it is a Jupyter notebook.
Warning
These lecture notes are not enough to follow the course: you need to follow the parts of the literature that are used in the course. For example, these lecture notes do not explain Big-O notation given that it is explained in the book. They do instead include programs for the examples in the book and experiments to help you understand the concepts.
The lecture notes mostly complement the material in the course literature by adding examples and programs. For example, the book Algorithms Illuminated that we use during the first part of the course, presents algorithms and data structures in a rather abstract way. These lecture notes do not repeat what is in the book, but the examples from the book are coded in Python. We hope this will allow the student to experiment with these implementations and understand how to work from an abstract description of an algorithm to an implementation as a program.