Programming Foundations: Algorithms
1h 43mBeginner2024-01-11
Authors

Joe Marini
Senior Developer Advocate at Google, Developer
Course details
Algorithms are the universal building blocks of programming. They power the software you use every day, whether it's a spreadsheet, a social network, or a driving assistant. Algorithms offer a way to think about programming challenges in plain English, before they are translated into a specific language like C# or JavaScript. In this course, author and developer Joe Marini explains some of the most popular and useful algorithms for searching and sorting information, working with techniques like recursion, and understanding common data structures. He also discusses 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.
Skills covered
Data EngineeringArtificial Intelligence FoundationsPythonFoundationsArtificial Intelligence (AI)Data ScienceOpen Source
Concepts
0. Introduction
- 01 - Algorithms power the world
- 02 - What you should know
1. Overview
- 03 - What are algorithms
- 04 - Common algorithms in programming
- 05 - Measuring algorithm performance
2. Common Data Structures
- 06 - Introduction to common data structures
- 07 - Arrays
- 08 - Linked lists
- 09 - Linked lists example
- 10 - Stacks and queues
- 11 - Stacks and queues example
- 12 - Dictionaries
3. Recursion
- 13 - Understanding recursion
- 14 - Simple recursion example
- 15 - Calculating power and factorial
4. Sorting Information
- 16 - Overview of sorting
- 17 - The bubble sort
- 18 - The merge sort
- 19 - Implementing the merge sort
- 20 - The quicksort
- 21 - Implementing the quicksort
5. Searching for Data
- 22 - Unordered list search
- 23 - Binary search
- 24 - Determine if a list is sorted
6. Practical Examples with Data Structures
- 25 - Unique filtering with sets
- 26 - Value counting with a dictionary
- 27 - Find max value recursively
- 28 - Balancing statements with Stack
Conclusion
- 29 - Next steps
Related courses
- Programming Foundations: Algorithms (2018)
- Programming Foundations: Discrete Mathematics
- Programming Foundations: Programming for Kids
- Programming Foundations: Data Structures
- Build with AI: Developing a Code Review Assistant
- Fundamentals of Dynamic Programming
- Agentic AI Solution Design Patterns
- Python: Recursion
Related learn paths
- Get Started with PHP
- Become a Programmer: Foundations
- Getting Started with Python
- Prepare for the MTA: Software Development Fundamentals Exam (98-361)
- Advance Your Python Skills for Data Science
- Improve Your JavaScript Language Skills
- Getting Started as a Java Developer
- Learning Codeless Machine Learning with KNIME