# Programming Essentials: Learn Algorithms

Learn the Fundamental Concepts of Algorithms and Basic Data Structures

## What you will learn

### Learn about Algorithm Programming

### Learn about measuring algorithm performance

### Learn about data structures such as arrays, stacks, and queues

### Sorting data and searching data

### Learn about looping and recursion

### Filtering and value counting with hash tables

## Description

To make a computer do anything, you have to write a computer program. To write a computer program, you have to tell the computer, step by step, exactly what you want it to do. The computer then executes the program, following each step mechanically, to accomplish the end goal.

When you are telling the computer *what* to do, you also get to choose *how* it's going to do it. That's where** algorithms** come in. The algorithm is the basic technique used to get the job done.

You can think of **algorithms** as a recipe that describes the exact steps needed for the computer to solve a problem or reach a goal. We've all seen food recipes - they list the ingredients needed and a set of steps for how to make the described meal. Well, an algorithm is just like that.

In this course, you will learn some of the most popular and useful algorithms for searching and sorting information, working with techniques like recursion, and understanding common data structures. We'll also get into the performance implications of different algorithms and how to evaluate the performance of a given algorithm. Each algorithm is shown in practice in Python, but the lessons can be applied to any programming language.