I have been very fortunate to be admitted to the master program from both Princeton and Stanford. I want to do a thesis master in theoretical computer science but haven't found a sub-subfield/problem for my master thesis yet. Fortunately both schools have very strong theoretical computer science department.
My main goal of the master is to develop my interest in theoretical computer science and improve my profile for phd application. I have enough money to pay for a master but am unwilling to blow through money from parents anymore. Weather and social life is not a factor in my decision.
Here is my dilemma:
Princeton:
1) Fully funded (32k) by teaching assistantship! (the matter of funding is not just about money for me, it's also about the peace of mind it offers so I can concentrate on research)
2) More research oriented master (we only have to take 6 classes as Mse student, giving more time to research)
3) Very skewed towards computational complexity, theoretical machine learning, and game theory, potential research interest misalignment [1] (I definitely don't want to do computational complexity. Game theory problems and theoretical machine learning looks interesting but I have never done work in it/read much research paper about them. I have a busy semester and won't have time to do it now)
Stanford:
1) No funding yet (although I *may* be able to find CAship and according to my stanford buddy it is not very hard)
2) Hectic master courses requirement [2] (students have to do 45 units of course work)
3) More balanced theoretical CS department, has research in subfield I already know I like (aka graph theory and graph algorithms)
[1] Disproportional amount of students at Princeton are in game theory and TML http://theory.cs.princeton.edu/PeoplePages/Students.html
[2] Complicated Stanford CS requirements https://cs.stanford.edu/degrees/mscs/programsheets/psguide1718.pdf vs Princeton https://www.cs.princeton.edu/grad/degrees
I'm feeling pretty conflicted. I was able to visit Princeton, but the tour was canceled due to snow storm and a gunman on Princeton campus. In reality I wasn't able to actually visit any of the 2 schools. Any experiences or input would be greatly appreciated!

Pros for Princeton:
1) Very reputed at TCS, have more high profile professors in TCS
2) Very strong math department to potentially collaborate with
3) Full funding and tuition waiver
Cons for Princeton:
1) Very skewed towards complexity theory and theoretical machine learning. (I have never tried the above topics and don't know if I will like them, however I might be interested in TML, I've always been frustrated with black box ML algorithms)
2) No idea about availability of professors, no visit invite
Pros for UBC:
1) Potential advisor in an area I am interested in and have already worked on (approximation algorithms) contacted me
2) Because of 1) probably can start writing thesis first semester there
3) Full funding and tuition waiver (although less than Princeton's by 10k)
Cons for UBC:
1) In Canada (as an international student IDK if I would still be able to get US internship)
2) Not as well known outside of Canada (e.g. for US local companies etc)
What do you guys think?

I am from a top 5 US news university for CS and applying for a master in CS(theory). I have a good GPA with double major in CS & Math but 0 publication which is very bad. I ready on quora that a lack of publication caused by time management issues is inexplicable, and it indeed is what happened. (Although I did get some stuff done in my research, there's nothing super great). I want to leave my school for a change of environment but the only better options are nearly unreachable with my credential.
I want to do research in theory because 1) For its elegancy and Eurekia moments of finding a new algorithm 2) For seeing the underlying principles that lies behind seemly different problems.
My mistake is that I spent too much time enjoying problems in theory classes (which are sometimes other people's Phd lemma but after all solved problems) instead of focusing on research. Oh well there is no turning back now. Fingers crossed and will spend the next semester fixing my time management issues.

I am currently CS and Math double major in UIUC. I am planning to apply for Theoretical Computer Science thesis master/phd and want to experience a new school.
Due to the fact that I transferred into CS my sophomore year (was a business student), it took me a long time to form my life objective in the new department/major. Plus I didn't use my junior year wisely (spent majority of first semester trying to find an internship and let classes take away too much time from my research). Now I am thinking that it is impossible for me to get in anywhere except UIUC.
Goals: Stanford(master), Mit(master), Cornell(phd because their master sucks), Toronto(master), UIUC(master)
Credentials:
GRE: 160 + 170 writing 4.5
GPA: 3.97
Recommendations: One from my thesis advisor(on constrained least square, still on going), another one from my other research on earthquake simulation. Potentially one from my algorithm II professor where I got top 5 in the class.
Research:
I have been a research assistant to my thesis advisor for 1.5 years. However 1 year I was programming educational modules for my professor, which visualizes different numerical methods. Obviously result in no publication.
My thesis is a comparison study of ways to solve constrained least square(possibly do some theoretical analysis), and my literature review just got submitted. Advisor just let me do whatever I want to do so I really need to push myself on this project.
My other research is on earthquake simulation. Last semester I pretty much optimized the code for the algorithm my grad student wrote. This semester I will be more involved in developing algorithms for different earthquake scenarios. They said next publication would have my name on it, probably not in time for grad school app.
---------------------------------------------------------------------------------------------------------------------------
Any suggestions on what I can do to improve my application/portray it in a more positive light?