1.2 Abstraction and subprograms