Columbia, UMD, or UCSD for MS CS

I was accepted for MS in Computer Science for the following three schools: Columbia University, University of Maryland, College Park, and University of California, San Diego. I am having a hard time deciding among them and would really appreciate some advice.

My ultimate goal is to gain research experience and continue to a PhD program. I have good research experience in my undergraduate school but in a completely irrelevant area. All three schools have strong program in machine learning and computer vision, which I am interested in. There is also the option to write a thesis in all of these schools. However, CS MS at Columbia has a reputation for being a “cash cow” program, and rumor has that the professors there are not very accessible to MS students.

UMD has a small program, which has 68 MS students and 251 PhD students in total. I cannot find exact data for the other two school, but UCSD has about twice as many MS students, and Columbia seems to have over 200 incoming MS students each year. I guess a smaller MS program means a higher chance to do research with professors, but I am not completely sure if that is the case in these schools.

Other factors I can think about include that UCSD is closer to many tech companies in California, and Columbia sounds like a really prestigious school. Columbia does not offer financial aid, while UCSD and UMD offers the opportunity to apply for teaching/research assistantship. I am not worried about the financial aspect, so the assistantship opportunity will not make a big influence in my decision.

How hard is it to find a research group in CS in these colleges? Are students in these schools over competitive? Are there any other aspects I should consider when choosing among these schools? Any suggestion would be sincerely appreciated.