Foundations of Algorithmic Thinking with Python
Overview
Google, IBM & Meta Certificates – 40% Off
One plan covers every Professional Certificate on Coursera.
Unlock All Certificates
Learn how to develop your algorithmic thinking skills to become a better problem solver.
Syllabus
Introduction
- Importance of algorithmic thinking
- What you should know
- Use GitHub Codespaces with this course
- Challenge: 100 doors
- Solution: 100 doors
- FizzBuzz
- Tracing algorithms using an online visualization tool
- Tracing algorithms using code or a debugger
- Algorithm animations
- Pseudocode
- Using a whiteboard to explore algorithms
- Introduction to brute force algorithms
- Linear search
- Selection Sort introduction
- Challenge: Selection Sort in Python
- Solution: Selection Sort in Python
- Introduction to analysis of time-space complexity
- Challenge: Big-O notation practice
- Solution: Big-O notation practice
- Examples of time complexity with Python
- Memory considerations when implementing algorithms
- Introduction to greedy algorithms
- Introduction to the change making problem
- Solution to the change making problem
- Dijkstra's algorithm
- Challenge: Dijkstra's algorithm
- Solution: Dijkstra's algorithm
- Dijkstra's algorithm: Python implementation
- Ferrying soldiers
- Introduction to decrease and conquer
- Binary search
- Challenge: Binary search
- Solution: Binary search
- Exploring algorithmic thinking with Python
Taught by
Robin Andrews