1. Characterize the differences between control abstractions and data abstractions. Explain how these two kinds of abstractions may be embodied in programming language constructs.
  2. How can you model the meaning of abstract data types in a mathematical way? Do you know any alternative ways?
  3. Explain how types may affect object-oriented programming.
  4. Explain how you may characterize an abstract data type by means of a matrix with generator columns and observer rows. What benefits does such an organization have?
  5. How would you characterize the differences between the realization of abstract data types by modules and by objects? Discuss the trade-offs involved.
  6. How would you characterize the distinction between types and classes? Mention three ways of specifying types. How are these kinds related to each other?
  7. How would you characterize behavior compatible modifications? What alternatives can you think of?

slide: Questions