Also think of the relationships between schools to get in the "back" door at places where the competition might be higher. For instance, at the Univ of Pittsburgh you can take one course every semester at Carnegie Mellon. The Pitt credits are cheaper but you get the instructors and knowledge at CMU. Of course, your degree would be from Pitt. Still, knowledge matters. I think the same is true of Tufts and MIT/Harvard.
A third option is going to a local state school and getting your grades in order to transfer after a year or two. You'll probably be in school a semester or two longer (cause all credits won't transfer), but your degree will have more of a "name" and you'll benefit from increased competition/knowledge.
EDIT: Sorry if this sounds disparaging of Pitt. I had a great experience there in a combined cogneuro Ph.D. program with CMU. But I know nothing of Pitt's CS department even as the cross-over of the communities made a lasting impression. You'd likely to have to work a bit harder to make those connections as an undergrad. But it is possible.