I received my BSc in CS two years ago. When I first entered college, I didn't know
ANY programming at all (coming from third-world country).
However, my strength is problem solving and I am great at math (was
considering a Math degree, but it seems CS has more appeal to find jobs).
I didn't have any trouble at all during my undergraduate CS education
(received my degree in 3 years).
The coming summer, I will finish my MSc in CS. Then, I will go to either
Johns Hopkins or University of Virginia to get my Ph.D. in CS (vote
in
"this thread" which school I should go).
You see, you don't need any previous knowledge at all to start majoring
in CS. As long as you love it and willing to work hard, you can do well
in any major (including CS).
edit: bad link