Programming by Demonstration , a user-oriented programming paradigm for graphic systems 1