>>student may have thought he’d understood it at the time, and perhaps he did, but he’d never practiced using the concept to truly internalize it.
I'm changing jobs and I've interviewed at quite a few places off late. Having faced with so many Algorithm and Data Structure questions, I took it upon myself to read upon a good deal of material before I started interviewing. So I did the usual approach one takes while studying math, understand all the basic concepts and look for places where you could apply them, rather than studying individual problems.
Recently I interviewed at one place, where I guess a guy who was just out of college asked a few questions. My general approach is to look for how the problem would fit in the concepts I've learned. I gradually derived the solution out of the concepts I knew. And to my surprise, the solution was simply unacceptable to the interviewer, he just clung to his position that I was wrong. He then proceeded to write the answer, he even wrote the test cases.
Now I go back home and check it out of the internet and it was hardly surprising for me to see what I had suspected. The guy didn't want the answer to the question. He wanted exactly the same answer he had memorized. The guy had even memorized the variable names, even the exact input values.
Most people interviewing you on your Algorithm and Data structure skills. They are simply testing your algorithm and data structure rote memorization skills. The same goes in exams.