That's why I think the best introductory is the usual C/C++ classes that build on a foundation of memory addresses, the stack, function calls, etc. If you spent just a few days talking about how an actual program runs, blocks are very easy to place on that foundation(haha, see what I did there?).