From a historical programming perspective, I remember the concepts being introduced in the following order:
Functional, Structured, OOP, AOP
Functional programming has been around since at least Lisp (1957) with structured programming coming into existence in the 1960s. OOP, as a term, started with Smalltalk in the 1970's though the concept existed in different forms well before then. AOP appear rather recently. These approaches are based on concepts that predate them making it hard to provide a definitive order.