SCYP Blog

Friday, March 14, 2008

An interface that really gets you...

This past Tuesday David and I attended a seminar entitled "Automatically generating personalized adaptive user interfaces", where Krzysztof Z. Gajos talked about his doctoral research where he focused on creating a tool that changes the properties of graphical user interfaces GUI to adapt them to each user's needs and preferences. But "how does he know what my GUI needs and preferences are?" you may ask... well, in fact, he doesn't know, but he doesn't really have to! It turns out Krzysztof also developed a simple automated computer-based test that learns those needs and preferences in a few minutes as it interacts with you.

One of the slides that made me understand the relevance of Krzysztof's work to SCYP, is one where he showed the way his algorithm is able to re-design and re-organize the widgets in a visual environment as the size of this environment is changed, all in real time! In fact, he even showed how complex desktop-based dialog boxes can be automatically transfered to mobile devices just by updating a set of constraints.

Krzysztof's work actually leads to at least two clear SCYP project ideas:

  1. If a guideline like the ISO-24751 standard (which defines a framework for the definition of needs and preferences) could be integrated with Krzysztof work, the process of automatically adapting GUIs would be significantly simplified. Mobile application developers would then have access to a common framework that not only helps them know what their user's needs and preferences are (at run-time) but actually enables them to do something about it. This would of course take someone with an interest in Artificial Intelligence (AI) and brave enough to attempt defining Krzysztof's algorithm in terms of the ISO-24751
  2. Alternatively, for those of you who can't wait to start coding, we could set you up in the mobile development platform of your choice so you can try implementing Krzysztof's work in say, your own cellphone, and see whether you like it or not.

Other interesting questions are:

  1. Say the GUI of a program I am running is adapted to my needs and preferences, but there is this one feature I need someone else to help me with. How do I make sure the person helping me doesn't have to re-learn my GUI?
  2. Are there any contexts in which GUI personalization would actually make things worst?
What do you think?

No comments: