There are already lessons about data structures, sorting algorithms and design patterns, including code examples. There's even a lesson about complexity analysis.
Functions, OOP, compilers, boolean operations etc are explained in every single language course where they can be used.
I think it's a very good idea for one to first understand principles and certain Computer Science Basics (for instance, Algorithms, Pseuducodes and Data Structures ) before they bump into programming right away!......
So am in support of that☺