Foundations of Algorithmic Thinking with Python
1h 15mAdvanced2022-04-26
Authors

Robin Andrews
Founder of Compucademy
Course details
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.
Skills covered
PythonProgramming LanguagesOpen SourceSoftware DevelopmentOne-Off
Concepts
0. Introduction
- 01 - Importance of algorithmic thinking
- 02 - What you should know
1. Warm Up
- 03 - Challenge - 100 doors
- 04 - Solution - 100 doors
- 05 - FizzBuzz
2. Tools to Help Understand the Flow of Algorithms
- 06 - Tracing algorithms using an online visualization tool
- 07 - Tracing algorithms using code or a debugger
- 08 - Algorithm animations
- 09 - Pseudocode
- 10 - Using a whiteboard to explore algorithms
3. 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
4. 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
5. 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
6. 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
Related courses
- Programming Foundations: Discrete Mathematics
- Foundations of Responsible AI (2022)
- The Data Science of Economics, Banking, and Finance, with Barton Poulson (2017)
- The Data Science of Economics, Banking, and Finance
- AI in Fintech Essential Training (2019)
- Responsible AI Framework for Your Enterprise AI Product
- Introduction to Auditing AI Systems
- Applied Machine Learning: Foundations (2019)
Related learn paths
- Moving from Data Scientist to Data Analyst
- Getting Started with AI and Machine Learning
- Fundamentals to Become a Machine Learning Engineer
- Develop Your Data Analysis Skills
- Advance Your Business Analytics Skills
- Become a Data Analyst
- Mastering Responsible AI: From Concept to Auditing
- Understanding Generative AI for Tech Leaders