I have recently graduated from a non EEA university—though arguably one of the better/best schools in its field in my country—with a CGPA of 2.90, majoring in Computer science. I used to study Bioengineering/Bioinformatics—from which I hold a publication—before switching to CS. I suffered from an extensive period of burnout and some personal problems starting my second year in college—after getting a 3.30 in my freshman year, not exactly an upward trend in my grades in following years either—resulting in my current CGPA. I did a summer research at my school after my 2nd year which resulted with that conference publication I mentioned above, did two internships of Computer science (first one at a company, second one at one of the top 3 CS universities in the USA), I have two posters from my graduation project (one presented at an international conference the other one not-so international), and an upcoming journal or conference paper depending on deadline circumstances.
So, my cliche question is: should I take my chances with good/top Computer science master's programs throughout Europe (e.g., TU Eindhoven, EPFL, RWTH Aachen or TU Munchen) before applying for a PhD, or should I stay at my school for my MSc and then apply for the PhD? I'm not even hoping for a scholarship at this point, just an acceptance. I haven't taken the TOEFL and the GRE yet since now I'm in my gap year, I will be taking them soon in order to start my application procedure.