# Free Algorithms in Python Course

Algorithms are an often misunderstood concept. Leverage Python to learn what algorithms really are, and how to implement an array of basic computational algorithms in the language.

Screenshot from Algorithms in Python

As the word "algorithm" burrows deeper and deeper into the minds and lexicons of the general public, it takes on more and more of a mystical quality as time goes on.

People hear the term and often think of machine learning algorithms exclusively, which can lead Joan Q. Public to think of the equally-misleading term, artificial intelligence. But you and I know this should not be the case. Algorithms are the specific steps we take to solve particular problems. That's all, nothing more. There is no magic involved.

Of course, we can speak of **machine learning algorithms**, which are the specific steps that implementations of machine learning concepts take, but in terms of algorithm parlance, these would just be another set of steps taken, with no consideration to the sorcery of machine learning or AI. But I digress.

Back to the topic at hand: in our context, **algorithms** are the implementations of the specific steps of particular computational concepts programmatically. **Exactly** what are we doing with data, or some resource, and in **exactly** what order? If you come from a CS background, undoubtedly one of your first CS courses after Intro to Programming 101 was Algorithms, or perhaps Data Structures and Algorithms, the combination of **what** and **how** together, in data terms. If not from a CS background, perhaps you learned algorithms while taking up programming on your own, or learning data science online, or by some other method.

Bottom line: if you've learned algorithms is some manner, congratulations! Well done! If you haven't, you really should. Let's see if we can help out with that.

freeCodeCamp has just released Algorithms in Python, a free full course in learning algorithms in one of the most popular programming languages in existence. The course was developed by Joy Brock in collaboration with realtoughcandy.io, so be sure to have a look at their other offerings.

Not only does Python enjoy widespread popularity as a general purpose programming language — meaning you can do all sorts of programming tasks with it, almost anything imaginable (within reason) — Python is also one of the most in-demand languages in the worlds of data science and machine learning. As an added bonus, Python is a notoriously beginner-friendly language, making it all the easier to understand algorithms and other programmatic and computational concepts with its help.

In this video course, you will learn about algorithm essentials such as factorials, permutations, the *N* queens problem, and the travelling salesman problem. You will dive into the bread and butter of programmatic algorithms: sorting! You then cover some data structures and learn how algorithms and structures work together with concepts such as hash tables. You'll also cover topics such as dynamic programming, matrix multiplication, and what makes an algorithm greedy.

Python has become the go-to language for data science hopefuls and seasoned practitioners alike (or, more accurately, *one* of the go-to languages). Pair your learning of algorithms with Python and take another step to excelling today. Good luck!

**Matthew Mayo** (**@mattmayo13**) is a Data Scientist and the Editor-in-Chief of KDnuggets, the seminal online Data Science and Machine Learning resource. His interests lie in natural language processing, algorithm design and optimization, unsupervised learning, neural networks, and automated approaches to machine learning. Matthew holds a Master's degree in computer science and a graduate diploma in data mining. He can be reached at editor1 at kdnuggets[dot]com.