<p>I would recommend that you try to take courses in the following areas:</p>
<p>Algorithms & Data Structures
Computer architecture
Computer networks
Operating systems
Theory/foundations/languages/automata</p>
<p>One way or another, before graduation, I’d recommend you know at least Java and C/C++, as well as a few scripting/markup/web languages/notations. Whether you get this in class, at a job, or in your free time is up to you. I’d recommend you take at least the following math courses:</p>
<p>Calculus I and II
Linear Algebra
Discrete Math
Probability & Statistics</p>
<p>Taking some sort of science sequence is advisable; Physics is the most quantitative at the introductory level. Other than that, public speaking, public speaking or other communication courses are generally pretty useful.</p>
<p>You’ll probably want to take a few CS courses in an elective/concentration area that interests you. Some courses you might consider include…</p>
<p>Security, cryptography, abstract algebra, number theory, etc.
User interfaces, human-computer interaction, psychology, etc.
Software engineering, systems engineering, etc.
High performance computing, parallel computing, distributed computing, etc.
Embedded computing, real-time computing, computer organization, etc.
Databases and DBMSs, data intensive computing, etc.
Web, mobile, pervasive, etc.
Scientific computing, computational science, numerical analysis, etc.</p>
<p>Of the three schools you listed, the only one that didn’t jump out at me as being well-aligned with my recommendations was Kennesaw State. I might have just missed something, though.</p>