Faculty: Fundamental concepts of abstract data types (ADT)