I am a junior who is going to apply to a CS grad school(hoping to specialize in programming language theory) next fall.
I had some generic questions about the admissions process that is not so easy to get the answer to -
Do all European PhD programs require a masters degree for admission? Or are there programs where like the US if you have a 4 year bachelor's degree, you can apply to the PhD program?
Since in the US, one applies to the program and not the professor, one might end up wanting to/end up working with anyway with another professor from the same department after they get accepted and spend some time in the program - so should I even contact them pre-acceptance?
Do all (at least tier 2) CS PhD programs in the US come with funding? If not, how do I figure out if the program comes with funding?
Is it a wise idea to mail the admissions committee of the Universities to ask if the application fee might be waived considering I come from a 3rd world country?