IMO that's the wrong way to do it. Using myself as an example it took me far longer to learn things like data structures than it should have. Why? Because I still hadn't wrapped my head around pointers. The fact that the two are coupled is an implementation detail IMO. It turned out that I never had a problem understanding the structures, I had trouble writing code which didn't segfault.
I'd prefer to see CS education start with the more theoretical constructs and then start diving towards the metal as the basic concepts are known. In other words, treat it more like computer science and less like computer engineering.