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.
You need to check the requirements of the individual schools to see if a transfer is even possible. For the German schools, at the very least, the computer science degree is often subject to "continuity" requirements, which make it very difficult to enroll in a master's program unless you already have the bachelor's in the same subject from a German university (or can demonstrate "equivalence" of your degree if it's coming from abroad).
In addition, admission often depends fairly strictly on GPA, at least at the master's level. Recommendations hardly matter, if they even count at all. At the PhD level, the process changes, and becomes more like getting hired for a job. So it may be better to wait until you're applying for PhD positions.