Design and Programming of User Interfaces