I am planing to apply for a Master of Computer Science in Germany, as an undergrads with a major in Physics. Although I have taken a bunch of CS courses covering core concepts such as programming languages, data structures & algorithm, networking and databases, with an additional exchange experience with its major in CS, transferring from a theoretical science to a applied engineering is still not a minor gap. Some people are saying German universities are rather harsh compared to Americans in terms of openness to cross-major application. Therefore I would like to know it is really so difficult?
In such a case, I would not just apply, but talk to the faculty or institute before.
Find out (e.g. through the website) who is responsible for the Master program and contact them. Give an overview about what you have done in your undergrad studies and ask them if admission is possible. It may also be the case that you can get admission with additional requirements, like additional exams on undergrad courses.
Also check the language requirements. Even if the Master lectures are in English, undergrad lectures may not be in English and you might be required or at least advised to take some of them.