Help with narrowing down list of computer science schools

I am in 11th grade and working to narrow down my college list. My intended major is computer science, but I also like the idea of applying to a few schools that offer a liberal arts education. I have a 3.9 gpa and take additional classes from both a community college and a state university. My ECs are very strong and cost will not be a huge factor in my decision. At this point, I am waiting on my SAT scores and they should be reported by next week.

My list of 20 schools:

Harvey Mudd
Carnegie Mellon
Northwestern
Santa Clara University
Washington University
Northeastern
Rice
Drexel
University of Washington
Lehigh
George Washington
University of Rochester
Case Western Reserve University
Trinity University
Macalester
Brandeis
Willamette University
University of Denver
Villanova
St. Louis University

I like the idea of a small to medium sized school with small class sizes and communication between students and professors. Also, I want to be in or near a big city with plenty of internship or co-op opportunities. I hope to be hired by a top tech company as a programmer after college. Any tips on narrowing down this list? Do you see any schools that I should eliminate right away? I’d like to cut this list down to around 10 and I will likely throw in a couple of in state safety schools.

Thanks in advance for your input!