English | MP4 | AVC 1280×720 | AAC 48KHz 2ch | 1h 14m | 182 MB

The word “algorithm,” at one time the sole province of mathematics and computer science, has entered the modern vernacular because, for better or worse, algorithms have never been more important or more impactful in daily life. If you’re a developer, you need to be familiar with a wide range of algorithmic thinking in order to be able to solve new problems as they present themselves. If you’re already familiar with Python, becoming more versed in algorithmic thinking is a great way to increase your value as a developer. In this course, Robin Andrews explains how Python, because of its clarity and expressiveness, is the ideal tool for exploring algorithmic thinking. He shows you tools to help you understand the flow of algorithms, explains the brute force approach to solving algorithms, details the concepts of time and space complexity with regard to algorithm analysis, the decrease and conquer strategy, and much more.

## Table of Contents

**Introduction**

1 Importance of algorithmic thinking

2 What you should know

**Warm Up**

3 Challenge 100 doors

4 Solution 100 doors

5 FizzBuzz

**Tools to Help Understand the Flow of Algorithms**

6 Tracing algorithms using an online visualization tool

7 Tracing algorithms using code or a debugger

8 Algorithm animations

9 Pseudocode

10 Using a whiteboard to explore algorithms

**Brute Force Algorithms**

11 Introduction to brute force algorithms

12 Linear search

13 Selection Sort introduction

14 Challenge Selection Sort in Python

15 Solution Selection Sort in Python

**Analysis of Time-Space Complexity**

16 Introduction to analysis of time-space complexity

17 Challenge Big-O notation practice

18 Solution Big-O notation practice

19 Examples of time complexity with Python

20 Memory considerations when implementing algorithms

**Greedy Algorithms**

21 Introduction to greedy algorithms

22 Introduction to the change making problem

23 Solution to the change making problem

24 Dijkstra’s algorithm

25 Challenge Dijkstra’s algorithm

26 Solution Dijkstra’s algorithm

27 Dijkstra’s algorithm Python implementation

**Decrease and Conquer**

28 Ferrying soldiers

29 Introduction to decrease and conquer

30 Binary search

31 Challenge Binary search

32 Solution Binary search

**Conclusion**

33 Exploring algorithmic thinking with Python

Resolve the captcha to access the links!