Algorithmic Thinking with Python: Foundations

Algorithmic Thinking with Python: Foundations

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

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

33 Exploring algorithmic thinking with Python