I only looked over the 101 course, and maybe it's not aimed at someone who already has an understanding of those concepts, but I felt like it was a really fast fly-by of topics and skipped a lot of things.
Thinking of the best way to teach this stuff is something I spend a bit of time doing, and honestly I'm not sure what the right approach is. Once I thought you should learn from Ada's work and the looms all the way up to things like the Enigma machine, and jump into the things that started happening in the 50s research. Basically, grow your knowledge from the ground up and make all the same discoveries.
The other approach is to take a high-level fly by of concepts like strings. Most of us here on HN know that strings and how they work aren't as simple as presented in the 101 videos and there's so much more to know about them.
I'm concerned that this style of teaching (implementing concepts without understanding how they work) is also the style that's lead to a lot of confusion in my personal learning experience as I progressed. Once upon a time everything in the browser like HTTP and rendering was magic and I wrote sloppy web apps. In a similar vein, I never really "got" calculus until I read a book that explained the history of how Newton made up "infinitesimals", Leibniz made up "derivatives" and someone else made up limits. I had no idea how calculus worked until I understood the origins... sure I could write differential equations based on some cheat-sheet, but that deep-rooted understanding never came along until I walked through Newton's shoes. And to be honest, it was simply the dy/dx notation that made no sense to me, and none of my teachers could explain it to me, it was always "oh, that's the derivative of that axis value" (might as well have said "oh, a monad is a monoid in the category of endofunctors").
On the other hand, learning and doing things without that deep understanding is exactly how I started programming and I turned out okay.