Algorithms are designed to solve common problems that arise frequently in software applications. When teaching algorithms to undergraduate students, I try to bridge the gap between the students’ background knowledge and the algorithm concepts I’m teaching. Many textbooks have carefully written—but always too brief—explanations. Without having a guide to explain how to navigate this material, students are often unable to learn algorithms on their own.
LearningAlgorithms.org pulls together a diverse set of resources to help you learn this material from many different perspectives:
- Learning Algorithms is appropriate for beginning programmers. The book uses Python exclusively
- Algorithms in a Nutshell (2ed) is suitable for intermediate to advanced programmers, providing code examples in C, C++, Java and Python.
- Twenty-four KataCoda scenarios offers opportunity to dynamically explore algorithms within a browser, where you can edit and execute Python code.
- I have several video courses in Python, covering data structures and algorithms.