subsections:
Procedural programming
Data abstraction
Object-oriented programming