Dear PPIGers, universities tend to consider mathematics as a "foundation" for programming. It certainly helps when reasoning about programs, but there are other skills that help learning programming.
First of all, conceptual thinking, as learned in philosophy, and literary composition, as learned in a creative writing class. Even poetry is helpful if someone tries to write poems using standard latin rhyme forms. But back to the skills that even a child can perform, cooking following a recipe is an ancient form of an algorithm. Also, a colleague of mine once asked the students whether they ever did any sport seriously, as they gave up on the first difficulty. What other activities, bodily or intellectual can you think of on these lines? And, is there literature on this? - Gergely