Skip to the content.

Python Algorithms Course

version release language last-update last-update

Free hands-on course with the implementation (in Python) and description of several computational, mathematical and statistical algorithms.

Although it is not intended to have the formal rigor of a book, we tried to be as faithful as possible to the original algorithms and methods, only adding variants, when these were necessary for didactic purposes.

Quick Start

The best way to get the most out of this course is to carefully read each selected problem, try to think of a possible solution (language independent) and then look at the proposed Python code and try to reproduce it in your favorite IDE. If you already have knowledge of the Python language, then you can go directly to programming your solution and then compare it with the one proposed in the course.

If you want to play with these notebooks online without having to install any library or configure hardware, you can use the following service:

What is an algorithm?

In mathematics and computer science, an algorithm is a finite sequence of well-defined, computer-implementable instructions, typically to solve a class of problems or to perform a computation.


1. Algorithm's Basics
2. Divide and Conquer
3. Graphs
4. Dynamic Programming
5. Probabilistic Algorithms
6. Similarity Functions
7. Chaotic Systems
8. Cellular Automata

Python Dependencies

  conda install -c anaconda numpy
  conda install -c anaconda pymc
  conda install -c anaconda networkx


Contributing and Feedback

Any kind of feedback/suggestions would be greatly appreciated (algorithm design, documentation, improvement ideas, spelling mistakes, etc…). If you want to make a contribution to the course you can do it through a PR.



This project is licensed under the terms of the MIT license.