I recall reading a paper that found that the success at the end of the introductory CS course could be measured before the start of the course by a simple test. It measured their understanding of sequential execution, assignment, recursion and a couple of other things. About one-third failed at the beginning and at the end; one third sort of got it at both ends; and one third were successful. Almost all students ended in the same triad that they started in.
To the question. Do young children, say in the first 4 or so grades, show this division in abilities or do most eventually get it?