One of my favorite courses from undergraduate computer science was introductory algorithm analysis.
I believe this was in part due to the main book for the course: Algorithm Design by Jon Kleinberg and Eva Tardos. The book takes on a very mathematical approach to exposition. This made it easier for students to be language agnostic in their analysis and design of algorithms. Being mathematically inclined, I enjoyed the style. However, I also think implementing algorithms in a machine executable format is a key component of any pragmatic effort to learn algorithms.
This repository is an ongoing project to implement algorithms from Kleinberg and Tardos. Some are chosen from examples in the chapter, and others come from exercises at the end of the chapter.