Characterize the differences between control
abstractions and data abstractions.
Explain how these two kinds of abstractions
may be embodied in programming language constructs.
How can you model the meaning of abstract data types
in a mathematical way?
Do you know any alternative ways?
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?
How would you characterize the differences between
the realization of abstract data types by modules
and by objects?
Discuss the trade-offs involved.
How would you characterize the distinction
between types and classes?
Mention three ways of specifying types.
How are these kinds related to each other?
How would you characterize behavior compatible
modifications?
What alternatives can you think of?