What to teach first: theory or practice? The educational system in which I have studied focuses on teaching the theory/abstract theoretical courses before the applications. 

For example, I spent the first 1-2 years of a 5-year engineering program only studying Mathematics, Physics and other basic courses before even getting any hint what the applied problems we will eventually try to solve are. In terms of tools, I first learned and programmed the individual methods and then I used "real-life" software for the first time.

Now, having seen applications, I look back to my basic courses and I think "that abstract topic was actually much simpler than I originally thought!".
It feels like I was just stupid to not be able to fully understand or get interested enough into the abstract topics.

I would feel much better if my university has made me first work on some easy applications, trying to understand the context, the difficulties and the possibilities, then dive into theory and then have the advanced applications that require advanced theory. A kind of "iterative model". I understand that this would probably take more time.

However, I see that university education keeps being like this in the universities I have studied into (Greece and Germany). Strong theory first, applications later. Traditional, "sequential" model.

Does my "iterative model" observation, as a student, make sense from a teaching perspective? What is the current situation and trend in more "progressive" educational systems? If it is not already applied, why not?
It isn't really a question of either or in terms of theory and practice. Instead, what is needed is theory and practice happening simultaneously in the classroom. The students learn a concept and then they used it immediately in some sort of authentic assessment. To have to what 1-2 years to use any sort of new knowledge is difficult for the average young adult learner and nearly impossible for a mature adult learner. Knowledge retention is most effect through teaching it to others and followed next by the application of it.

Within education, there is a big emphasis on learning by doing or being an active learning. This can take many forms such as the use of projects, problem-solving, presentations, etc. The point is that the students need to learn through actually doing or producing something through some sort of authentic real-world application. The real-world application creates the relevancy that most students need in order to process whatever it is that they are learning. This is particularly true for inexperienced students who have zero practical knowledge.

A major exception to this is the experienced student who returns to gain theoretical insights into their career. For example, if a teacher returns to school for a master's in education, they often experiences many "aha" moments when they see a connection between a theoretically concept and something that happened when they were teaching. Since these people already possess practical knowledge they are even better able to appreciate theoretical knowledge and create a bridge between the two.