I am still afraid of calculus..
The type of math you need for CS should not be too difficult after you get some intuition in programming.
In combinatorics, for example, you just need a clear head to think through the cases, just as you would do when writing a program.
* Discrete Mathematics
* Linear Algebra
* Combinatorics
* Number Theory
* Introductory Real Analysis or "Calculus 1"
* Probability Theory
* Statistics
This will prepare you to be a general purpose CS professional. Further specialization will likely require some additional high level topics used in your field.
Discrete Maths / Combinatorics : Probably everywhere.
Linear Algebra : Machine Learning, Computer Graphics, Computational Geometry, etc.
Number Theory : Cryptography.
'Calculus 1' : Useful to know for 'maturity', you will likely not use it unless you implement numerical algorithm libraries.
Probability / Statistics : Heavily in Machine Learning and related fields, in small doses everywhere else just because you need to be able to create useful observations and presentations.
I would add another branch:
Logic : If you work with programming languages or verification.
Also, for PLT level stuff, I would say being gifted just makes grasping theory easier, but it's hardly essential.