I authored a course that was published by Pluralsight on Introduction to Data Structures and Algorithms in C++.
In this course, you’ll learn how to implement some fundamental data structures and algorithms in C++ from scratch, with a combination of theoretical introduction using slides, and practical C++ implementation code.

No prior data structure or algorithm theory knowledge is required. You only need a basic knowledge of C++ language features (please watch the “Prerequisites” clip in the first module for more details about that).

During this course journey, you’ll also learn some practical C++ coding techniques (ranging from move semantic optimization, to proper safe array copying techniques, insertion operator overloading, etc.) that you’ll be able to use in your own C++ projects, as well.
So, this course is both theory and practice!

Here’s just a couple of feedback notes from my reviewers:
The callouts are helpful and keep the demo engaging as you explain the code.
Peer Review
To say that this is an excellent explanation of Big-O notation would be an understatement. The way you illustrate and explain it is far better than the way it was taught to me in college!
Peer Review

Starting from this course page, you can freely play the course overview, and read a more detailed course description and table of content.
I hope you’ll enjoy watching this course!