In today's computer algebra system, the use of "expressions" as a basic data object has proven to be quite convenient and frequently effective. But they are not always very efficient representations: they are neither very easy to compute with (the "expressivity" side of efficiency) nor always particularly fast to compute with (the more traditional "computational" side of efficiency).
We will survey some recent work on two alternative representations that are proving to be quite effective: implicit representations and representation by programs [white-box and to some extent black-box]. We will also survey some algorithmic techniques that work well with these representations.
We will be using examples drawn from diverse areas like special functions, numerical quadrature, software architecture and algebraic geometry to illustrate these ideas.