Application autonomy can reduce interactions with users, ease the use of the system, and decrease user distraction. On the other hand, users may feel loss of control over their applications. A further problem is that autonomous applications may not always behave in the way desired by the user. To mitigate these problems, autonomous context-aware systems must provide mechanisms to strike a suitable balance between user control and software autonomy. In this paper, we present a survey of research on balancing user control and system autonomy in context-aware systems. We address various issues that are related to the control-autonomy trade-off, including issues in context modelling, programming models and tools, and user interface design.