Since you ask about thoughts and imagination in a CS context, I can only guess that you are asking about abstractions. In that case, there is a massive difference between being able to understand an abstraction that has been codified or to create a new one. For example, it takes most of us quite a bit of effort to get our heads around the abstraction used by, say Haskell. But to create a new abstraction that renders computations in a new area feasible, e.g. neuromorphic inference, requires a totally different way of thinking and I doubt that IQ tests can differentiate between the two.
In my experience, many genius programmers have very good recall of masses of detailed information. Which is similar to the skills of top litigation lawyers. Yet, when faced with a practical problem, like diagnosing and fixing a corrupted notebook computer, they both call in somebody with better analysis and deduction skills and most likely unable to recite masses of memorized material.
I am probably in the lower set. I struggle with abstraction, I struggle with retention of key mathematical concepts like the application of Compositions of functions, or lazy evaluation or partial function application or lambda calculus.
All of these I judge people probably in the higher-est set, to show signs of fluency and understanding in a deep sense.
Tl;Dr you can't actually take it til you make it, in maths,and if you believe compsci is maths..