<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://vrl.cs.brown.edu/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Trevor+O%27Brien</id>
	<title>VrlWiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="http://vrl.cs.brown.edu/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Trevor+O%27Brien"/>
	<link rel="alternate" type="text/html" href="http://vrl.cs.brown.edu/wiki/index.php/Special:Contributions/Trevor_O%27Brien"/>
	<updated>2026-04-20T15:00:32Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>http://vrl.cs.brown.edu/wiki/index.php?title=Port_existing_project&amp;diff=4097</id>
		<title>Port existing project</title>
		<link rel="alternate" type="text/html" href="http://vrl.cs.brown.edu/wiki/index.php?title=Port_existing_project&amp;diff=4097"/>
		<updated>2010-04-19T15:48:50Z</updated>

		<summary type="html">&lt;p&gt;Trevor O&amp;#039;Brien: New page: Before porting your project, you may wish to take a look at documentation on the transition to the new $G.  At this point, porting existing projects along with the...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Before porting your project, you may wish to take a look at documentation on the [[Transition to new $G|transition to the new $G]].&lt;br /&gt;
&lt;br /&gt;
At this point, porting existing projects along with their source control histories is a tricky undertaking.  Please see Brad for help with this process.&lt;/div&gt;</summary>
		<author><name>Trevor O&#039;Brien</name></author>
	</entry>
	<entry>
		<id>http://vrl.cs.brown.edu/wiki/index.php?title=Check_out_projects&amp;diff=4096</id>
		<title>Check out projects</title>
		<link rel="alternate" type="text/html" href="http://vrl.cs.brown.edu/wiki/index.php?title=Check_out_projects&amp;diff=4096"/>
		<updated>2010-04-19T15:43:51Z</updated>

		<summary type="html">&lt;p&gt;Trevor O&amp;#039;Brien: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Checking out a project ==&lt;br /&gt;
Before checking out a project, be sure that your development environment is [[$G in practice|set up for $G]].&lt;br /&gt;
&lt;br /&gt;
$G uses CVS for source control and you can read more about it [http://www.nongnu.org/cvs/ on its official site] or [[w:Concurrent Versions System|on Wikipedia]].&lt;br /&gt;
&lt;br /&gt;
You can work anywhere except under the $G directory.&lt;br /&gt;
At Brown ample disk space has been allocated here for students:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   /map/gfx0/users/$USER&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
So, for example, if your user id is &amp;quot;goo&amp;quot; and you wanted to check out the &amp;quot;wrist&amp;quot; project, you should type:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   &amp;gt; mkdir  /map/gfx0/users/goo&lt;br /&gt;
   &amp;gt; cd     /map/gfx0/users/goo&lt;br /&gt;
   &amp;gt; cvs  co  project/wrist        # Creates:  /map/gfx0/users/goo/project/wrist/...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please do not waste space and retain only the files you need.&lt;br /&gt;
When you are done with your account please be sure to delete it.&lt;br /&gt;
&lt;br /&gt;
== Building a project ==&lt;br /&gt;
&lt;br /&gt;
Type &amp;quot;make all&amp;quot; to build a project.  Continuing the wrist project example from above, you would type:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   &amp;gt; cd  /map/gfx0/users/foo/project/wrist&lt;br /&gt;
   &amp;gt; make  all&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
By convention simple projects that build a single program or library can be built just by typing &amp;quot;make&amp;quot;.&lt;/div&gt;</summary>
		<author><name>Trevor O&#039;Brien</name></author>
	</entry>
	<entry>
		<id>http://vrl.cs.brown.edu/wiki/index.php?title=Add_a_project&amp;diff=4094</id>
		<title>Add a project</title>
		<link rel="alternate" type="text/html" href="http://vrl.cs.brown.edu/wiki/index.php?title=Add_a_project&amp;diff=4094"/>
		<updated>2010-04-19T15:39:20Z</updated>

		<summary type="html">&lt;p&gt;Trevor O&amp;#039;Brien: New page: == Add a new project == == Port an existing project from legacy $G to the new $G == == Template apps for starting new projects ==&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Add a new project ==&lt;br /&gt;
== Port an existing project from legacy $G to the new $G ==&lt;br /&gt;
== Template apps for starting new projects ==&lt;/div&gt;</summary>
		<author><name>Trevor O&#039;Brien</name></author>
	</entry>
	<entry>
		<id>http://vrl.cs.brown.edu/wiki/index.php?title=Put_your_code_into_CVS_in_$G&amp;diff=4093</id>
		<title>Put your code into CVS in $G</title>
		<link rel="alternate" type="text/html" href="http://vrl.cs.brown.edu/wiki/index.php?title=Put_your_code_into_CVS_in_$G&amp;diff=4093"/>
		<updated>2010-04-19T15:37:18Z</updated>

		<summary type="html">&lt;p&gt;Trevor O&amp;#039;Brien: Put your code into CVS in $G moved to Source Control&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Source Control]]&lt;/div&gt;</summary>
		<author><name>Trevor O&#039;Brien</name></author>
	</entry>
	<entry>
		<id>http://vrl.cs.brown.edu/wiki/index.php?title=Source_Control&amp;diff=4092</id>
		<title>Source Control</title>
		<link rel="alternate" type="text/html" href="http://vrl.cs.brown.edu/wiki/index.php?title=Source_Control&amp;diff=4092"/>
		<updated>2010-04-19T15:37:18Z</updated>

		<summary type="html">&lt;p&gt;Trevor O&amp;#039;Brien: Put your code into CVS in $G moved to Source Control&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Using CVS ==&lt;br /&gt;
&lt;br /&gt;
Active projects are being migrated to a new directory structure using a common set of make files.  Have Brad help you set up any new project.  Students actively working on legacy projects can also begin to migrate to the new directory structure.&lt;br /&gt;
&lt;br /&gt;
CVS keeps track of changes to every file, allows concurrent editing of source code by multiple people, and provides an easy means for copying source trees to new locations.  Before working with CVS you should read some introductory web pages about it until you are comfortable with the basic concepts.  In order to maintain the integrity of our code base it is imperative that you understand the effects of any CVS command you use.&lt;br /&gt;
&lt;br /&gt;
:[http://www.nongnu.org/cvs/#TOCintroduction Introduction to CVS]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Setting up CVS ===&lt;br /&gt;
&lt;br /&gt;
On Linux add the following to your &amp;lt;tt&amp;gt;~/.environment&amp;lt;/tt&amp;gt; file:&lt;br /&gt;
&amp;lt;pre width=&amp;quot;50%&amp;quot;&amp;gt;setenvvar CVSROOT /map/gfx0/cvsroot/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Windows set CVSROOT to:  &amp;lt;code&amp;gt;Y:\map\gfx0\cvsroot\&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The scripts in &amp;lt;code&amp;gt;$G/common/build/setup/&amp;lt;/code&amp;gt; can be used to perform common CVS operations.  They simplify check ins and use integrity checks to avoid common mistakes.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
=== CVS commands you might find handy ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt; cvs update -d &amp;lt;directory&amp;gt;                # Bring a new directory into your sandbox.&lt;br /&gt;
&amp;gt; cvs log &amp;lt;file&amp;gt;                           # List log messages for a file.&lt;br /&gt;
                                  &lt;br /&gt;
&amp;gt; cvs add -m &amp;quot;add directory&amp;quot; &amp;lt;directory&amp;gt;   # Create a new directory.&lt;br /&gt;
&lt;br /&gt;
&amp;gt; cvs add -m &amp;quot;add file&amp;quot; &amp;lt;file&amp;gt;             # Create a new file.&lt;br /&gt;
&amp;gt; cvs commit -m &amp;quot;commit file&amp;quot; &amp;lt;file&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;gt; cvs delete &amp;lt;file&amp;gt;                        # To delete first remove the file from your sandbox.&lt;br /&gt;
&amp;gt; cvs commit -m &amp;quot;gone&amp;quot; &amp;lt;file&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;gt; cvs export -D NOW &amp;lt;directory&amp;gt;            # Snapshot without administative directories.&lt;br /&gt;
&amp;gt; tar cvf &amp;lt;project&amp;gt;.tar &amp;lt;directory&amp;gt;        # Make a tar ball.&lt;br /&gt;
&amp;gt; gzip &amp;lt;project&amp;gt;.tar                       # Compress it into: &amp;lt;project&amp;gt;.tar.gz&lt;br /&gt;
&lt;br /&gt;
&amp;gt; cvs checkout -D yesterday &amp;lt;directory&amp;gt;    # Get previous versions of a directory.&lt;br /&gt;
&amp;gt; cvs checkout -D &amp;quot;&amp;lt;#&amp;gt; hour ago&amp;quot;&lt;br /&gt;
&amp;gt; cvs checkout -D &amp;quot;&amp;lt;month&amp;gt;/&amp;lt;day&amp;gt;/&amp;lt;year&amp;gt;&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== How Not To Use CVS ===&lt;br /&gt;
&lt;br /&gt;
* Avoid checking in entire directory trees with junk files.&lt;br /&gt;
Clear out edit backups, binaries, and irrelevant file first or do selective check-ins.&lt;br /&gt;
&lt;br /&gt;
* Check in source files only.&lt;br /&gt;
Do not check in files generated by tools.&lt;br /&gt;
&lt;br /&gt;
* Overwriting other people’s changes is bad.&lt;br /&gt;
Revision control is not a substitute for coordinating with your peers.&lt;br /&gt;
&lt;br /&gt;
* Don’t trust automated CVS features.&lt;br /&gt;
They are primitive and not bulletproof.&lt;br /&gt;
&lt;br /&gt;
* Don&#039;t Lock (Reserve) Files.&lt;br /&gt;
&lt;br /&gt;
* Think Twice about Creating Directories.&lt;br /&gt;
CVS does not have a command for renaming or deleting directories.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Legacy Code in $G/src/ ==&lt;br /&gt;
&lt;br /&gt;
This page describes how the bulk of existing code in &amp;lt;code&amp;gt;$G&amp;lt;/code&amp;gt; is organized.  Active projects are being migrated to a new directory structure using a common set of make files.  Until the procedures are in place have Brad help you set up any new project.  Students actively working on projects can also begin to migrate to the new directory structure.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;$G&amp;lt;/code&amp;gt; tree is not intended for users to write to directly, and future IT plans for our group include enforcing this restriction.  Instead, we use the [[w:revision control system|revision control system]] [[w:Concurrent Versions System|CVS]] as an interface to the directory structure in &amp;lt;code&amp;gt;$G&amp;lt;/code&amp;gt;.  CVS keeps track of changes to every file, allows concurrent editing of source code by multiple people, and provides an easy means for copying source trees to new locations.&lt;br /&gt;
&lt;br /&gt;
Ordinarily, the first steps of development for your own software project happens somewhere in your homedir.  This doesn&#039;t allow other people to work with your code, though, so once your project is nontrivial you should add it to &amp;lt;code&amp;gt;$G&amp;lt;/code&amp;gt; using the &amp;lt;code&amp;gt;gfxprojinit&amp;lt;/code&amp;gt; script.  This script creates a home for your project in &amp;lt;code&amp;gt;$G/src&amp;lt;/code&amp;gt;, but not everything associated with a given project belongs there.  To get everything into the right place, follow these steps:&lt;br /&gt;
# Go to the directory that has your source in it.&lt;br /&gt;
# Delete or move away anything you don&#039;t want to go into CVS.  If you already have something compiled, do &amp;lt;code&amp;gt;make clean&amp;lt;/code&amp;gt; to get rid of the object files --- you don&#039;t want to put them in CVS. In general, just leave the Makefile and the source files.&lt;br /&gt;
#* &#039;&#039;&#039;Note:&#039;&#039;&#039; even though non-source files are sometimes necessary for builds of complex projects, data and config files don&#039;t belong in &amp;lt;code&amp;gt;$G/src&amp;lt;/code&amp;gt;!  Carefully consider whether non-source files belong in the &amp;lt;code&amp;gt;$G/src&amp;lt;/code&amp;gt;; they most likely do not and belong in &amp;lt;code&amp;gt;$G/lib&amp;lt;/code&amp;gt; (or &amp;lt;code&amp;gt;$G/data&amp;lt;/code&amp;gt; for example data on which your program runs) instead.  Move these out of the directory temporarily; we&#039;ll check them into the appropriate locations later.&lt;br /&gt;
# If you have any binary files, like images, that you want to go in CVS, move them out of this directory temporarily.  We will add them later because CVS requires non-text files to be added with a special flag.  Once again, keep in mind that most binary files are program resources and belong in &amp;lt;code&amp;gt;$G/lib&amp;lt;/code&amp;gt;  rather than &amp;lt;code&amp;gt;$G/src&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Run the following command, replacing &amp;amp;lt;projectname&amp;amp;gt; with the name you want your project to have --- that will become a new directory under &amp;lt;code&amp;gt;$G/src&amp;lt;/code&amp;gt;: &amp;lt;pre&amp;gt;gfxprojinit &amp;amp;lt;projectname&amp;amp;gt; .&amp;lt;/pre&amp;gt;&lt;br /&gt;
#* Note the period at the end of that command.  It might be hard to see, but it is important.&lt;br /&gt;
#* It&#039;s worth knowing, for those familiar with CVS, that &amp;lt;code&amp;gt;gfxprojinit&amp;lt;/code&amp;gt; is essentially a fancy wrapper around &amp;lt;code&amp;gt;cvs import&amp;lt;/code&amp;gt;.  Please be sure to use &amp;lt;code&amp;gt;gfxprojinit&amp;lt;/code&amp;gt; anyway, as it maintains important metadata and may do even more in the future.&lt;br /&gt;
# If you had some extra files you wanted to add to CVS, like build components, config files, program resources, or example data, you now want to check them into the relevant directories, which will be among &amp;lt;code&amp;gt;$G/src/&amp;amp;lt;projectname&amp;amp;gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;$G/lib/&amp;amp;lt;projectname&amp;amp;gt;&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;$G/doc/&amp;amp;lt;projectname&amp;amp;gt;&amp;lt;/code&amp;gt;.  For each relevant directory, which we&#039;ll call &amp;lt;code&amp;gt;$X&amp;lt;/code&amp;gt;, do the following:&lt;br /&gt;
## Create &amp;lt;code&amp;gt;$X&amp;lt;/code&amp;gt;, import it into CVS, then delete it and check it back out.&lt;br /&gt;
## Copy each appropriate file into &amp;lt;code&amp;gt;$X&amp;lt;/code&amp;gt;, and for each one run the command: &amp;lt;pre&amp;gt;cvs add -kb &amp;amp;lt;filename&amp;amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
## After adding all the files, run: &amp;lt;pre&amp;gt;cvs commit -m &amp;quot;&amp;amp;lt;commit message&amp;amp;gt;&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Your project should have been automatically added to the &amp;lt;code&amp;gt;$G/src&amp;lt;/code&amp;gt; directory on the filesystem you are on now. To get it in the &amp;lt;code&amp;gt;$G/src&amp;lt;/code&amp;gt; directory somewhere else, like at the [[Cave]], run this command from within &amp;lt;code&amp;gt;$G/src&amp;lt;/code&amp;gt;: &amp;lt;pre&amp;gt;cvs update -d &amp;amp;lt;projectname&amp;amp;gt;&amp;lt;/pre&amp;gt;  You may also need to use the same command in &amp;lt;code&amp;gt;$G/lib&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;$G/doc&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:$G HOWTO]][[Category:Software Development]]&lt;/div&gt;</summary>
		<author><name>Trevor O&#039;Brien</name></author>
	</entry>
	<entry>
		<id>http://vrl.cs.brown.edu/wiki/index.php?title=Check_out_projects&amp;diff=4091</id>
		<title>Check out projects</title>
		<link rel="alternate" type="text/html" href="http://vrl.cs.brown.edu/wiki/index.php?title=Check_out_projects&amp;diff=4091"/>
		<updated>2010-04-19T15:35:30Z</updated>

		<summary type="html">&lt;p&gt;Trevor O&amp;#039;Brien: New page: == Checking out a project ==  $G uses CVS for source control and you can read more about it [http://www.nongnu.org/cvs/ on its official site] or [[w:Concurrent Versions System|on Wikipedia...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Checking out a project ==&lt;br /&gt;
&lt;br /&gt;
$G uses CVS for source control and you can read more about it [http://www.nongnu.org/cvs/ on its official site] or [[w:Concurrent Versions System|on Wikipedia]].&lt;br /&gt;
&lt;br /&gt;
You can work anywhere except under the $G directory.&lt;br /&gt;
At Brown ample disk space has been allocated here for students:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   /map/gfx0/users/$USER&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
So, for example, if your user id is &amp;quot;goo&amp;quot; and you wanted to check out the &amp;quot;wrist&amp;quot; project, you should type:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   &amp;gt; mkdir  /map/gfx0/users/goo&lt;br /&gt;
   &amp;gt; cd     /map/gfx0/users/goo&lt;br /&gt;
   &amp;gt; cvs  co  project/wrist        # Creates:  /map/gfx0/users/goo/project/wrist/...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please do not waste space and retain only the files you need.&lt;br /&gt;
When you are done with your account please be sure to delete it.&lt;br /&gt;
&lt;br /&gt;
== Building a project ==&lt;br /&gt;
&lt;br /&gt;
Type &amp;quot;make all&amp;quot; to build a project.  Continuing the wrist project example from above, you would type:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   &amp;gt; cd  /map/gfx0/users/foo/project/wrist&lt;br /&gt;
   &amp;gt; make  all&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
By convention simple projects that build a single program or library can be built just by typing &amp;quot;make&amp;quot;.&lt;/div&gt;</summary>
		<author><name>Trevor O&#039;Brien</name></author>
	</entry>
	<entry>
		<id>http://vrl.cs.brown.edu/wiki/index.php?title=$G&amp;diff=4090</id>
		<title>$G</title>
		<link rel="alternate" type="text/html" href="http://vrl.cs.brown.edu/wiki/index.php?title=$G&amp;diff=4090"/>
		<updated>2010-04-19T15:33:14Z</updated>

		<summary type="html">&lt;p&gt;Trevor O&amp;#039;Brien: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{wikify}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== $G in principle ==&lt;br /&gt;
GfxTools a.k.a $G is a software development framework for keeping projects organized and usable over time. Several of its key goals are:&lt;br /&gt;
# Standardization - using a common development framework makes it a lot easier for folks within our group to pitch in with development, use tools others have created, pick up someone else&#039;s project after he/she graduates, and make sure that your own project lives on after you graduate.&lt;br /&gt;
# Dependable demos and software libraries - $G provides an environment where software libraries and demos can be installed and used by the group.&lt;br /&gt;
# Easy cross-platform development - $G utilizes the same software organization and Makefiles across multiple development platforms.&lt;br /&gt;
# Source control for software projects - $G uses CVS to manage source projects. &lt;br /&gt;
&lt;br /&gt;
== [[$G in practice]] ==&lt;br /&gt;
&lt;br /&gt;
Here&#039;s how $G works: Whenever you start a shell, the environment variable &amp;quot;G&amp;quot; is set to point to the root of the $G directory tree. To change directories to go there, you would type &amp;quot;cd $G&amp;quot;, hence the name &amp;quot;$G&amp;quot;. The directory that $G points is actually different depending on the architecture of the machine that you are on, this means that you can trust that everything within $G/bin will run on your machine. Likewise, libraries in $G/lib are compiled for your machine/OS, etc..&lt;br /&gt;
&lt;br /&gt;
There is a Unix-like directory structure within $G. Here&#039;s a description of the directories you will find inside each architecture specific $G tree:&lt;br /&gt;
&lt;br /&gt;
* $G/bin: Installed executables and scripts.&lt;br /&gt;
* $G/data: A symlink to a data directory that is common amoung all the $G trees. Sci-vis data is organized and stored inside here.&lt;br /&gt;
* $G/doc: Project documentation in non-man format. Typically, html generated from javadoc or doxygen, README files for demos, etc..&lt;br /&gt;
* $G/help: Contains $G specific documentation, like this webpage.&lt;br /&gt;
* $G/lib: Installed libraries, shared libraries, and program resource files like config files, icons, sounds, etc.. inside project specific subdirectories.&lt;br /&gt;
* $G/man: Project documentation in unix man page format.&lt;br /&gt;
* $G/src: CVS controlled projects in subdirectories.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;While this page is under construction, you might find the [http://vis.cs.brown.edu/resources/doc/gfxtools-docs/index.html old online $G doc] useful.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== [[Transition to new $G]] ==&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;In December 2008 [mailto:bb@cs.brown.edu Bradley Berg] began redesigning $G and the documentation on the transition can be found [[Dollarg 2009|here]].&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:$G]][[Category:Software Development]][[Category:IT Tools]]&lt;/div&gt;</summary>
		<author><name>Trevor O&#039;Brien</name></author>
	</entry>
	<entry>
		<id>http://vrl.cs.brown.edu/wiki/index.php?title=Write_and_run_software_tests&amp;diff=4089</id>
		<title>Write and run software tests</title>
		<link rel="alternate" type="text/html" href="http://vrl.cs.brown.edu/wiki/index.php?title=Write_and_run_software_tests&amp;diff=4089"/>
		<updated>2010-04-19T15:25:31Z</updated>

		<summary type="html">&lt;p&gt;Trevor O&amp;#039;Brien: Write and run software tests moved to Software tests&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Software tests]]&lt;/div&gt;</summary>
		<author><name>Trevor O&#039;Brien</name></author>
	</entry>
	<entry>
		<id>http://vrl.cs.brown.edu/wiki/index.php?title=Software_tests&amp;diff=4088</id>
		<title>Software tests</title>
		<link rel="alternate" type="text/html" href="http://vrl.cs.brown.edu/wiki/index.php?title=Software_tests&amp;diff=4088"/>
		<updated>2010-04-19T15:25:31Z</updated>

		<summary type="html">&lt;p&gt;Trevor O&amp;#039;Brien: Write and run software tests moved to Software tests&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Running Tests ==&lt;br /&gt;
&lt;br /&gt;
The test driver is installed on all CS department machines.  A configuration file is used to launch tests and mail results to subscribers.  You can subscribe to a test summary or receive notices when select tests fail.  The default configuration file is:  &amp;lt;tt&amp;gt;$G/common/build/site/test.platform.cfg&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you want to perform a private test run and suppress mail notifications run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt; /systest/bin/vrl_test  -noemail&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To run a set of select tests and specify alternative mail notifications (usually to yourself) you can run using a custom configuration file.  Make a private copy of the default configuration file and modify it.  The comments in the default configuration file describe the format.  Then run using the new configuration:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt; /systest/bin/vrl_test  -config  &amp;lt;My work area&amp;gt;/&amp;lt;Custom configuration&amp;gt;.cfg&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here is an example of a small custom configuration file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#########################  test.platform.fast.cfg  #############################&lt;br /&gt;
#&lt;br /&gt;
Developer:  you@cs.brown.edu&lt;br /&gt;
Summary:    none&lt;br /&gt;
&lt;br /&gt;
nag      none  linux common/build/valid/test.project.py common/include/nag&lt;br /&gt;
libnr    none  linux common/build/valid/test.project.py common/gg/libnr&lt;br /&gt;
libgg    none  linux common/build/valid/test.project.py common/gg/libgg&lt;br /&gt;
libds    none  linux common/build/valid/test.project.py common/gg/libds&lt;br /&gt;
libggpp  none  linux common/build/valid/test.project.py common/gg/libggpp&lt;br /&gt;
libnum   none  linux common/build/valid/test.project.py common/gg/libnum&lt;br /&gt;
libcff2  none  linux common/build/valid/test.project.py common/gg/libcff2&lt;br /&gt;
libmri   none  linux common/build/valid/test.project.py common/mri/libmri&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
#######################  end  test.platform.fast.cfg  ##########################&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Writing Tests ==&lt;br /&gt;
&lt;br /&gt;
Create a make test target that runs a test that returns a zero status for success and a non-zero status for an error.  The test should be able to run as a batch job (not interactive).  Projects with multiple tests can use a target named &amp;lt;tt&amp;gt;test.&amp;lt;name&amp;gt;&amp;lt;/tt&amp;gt; for each individual test and a target &amp;lt;tt&amp;gt;alltest&amp;lt;/tt&amp;gt; to run them all.&lt;br /&gt;
&lt;br /&gt;
Test targets should limit themselves to commands supported on both linux and Windows or use Python scripts.  Currently only the &amp;quot;rm -f&amp;quot; and &amp;quot;diff&amp;quot; commands are supported.  As always, absolute path names are to be avoided.&lt;br /&gt;
&lt;br /&gt;
Large raw input files such as MRI images should be copied to a directory named &amp;lt;tt&amp;gt;$GROOT/data/&amp;lt;project&amp;gt;/test/&amp;lt;/tt&amp;gt;.  Cooked data and test output should go to a test directory inside the project directory.  Tests should clear output files from prior runs to avoid false positives.  Regression tests that use diff to check output should comapare against a file named:  &amp;lt;tt&amp;gt;&amp;lt;root name&amp;gt;_base.&amp;lt;suffix&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:HOWTO]][[Category:$G HOWTO]][[Category:Software Development]]&lt;/div&gt;</summary>
		<author><name>Trevor O&#039;Brien</name></author>
	</entry>
	<entry>
		<id>http://vrl.cs.brown.edu/wiki/index.php?title=Coding_conventions&amp;diff=4087</id>
		<title>Coding conventions</title>
		<link rel="alternate" type="text/html" href="http://vrl.cs.brown.edu/wiki/index.php?title=Coding_conventions&amp;diff=4087"/>
		<updated>2010-04-19T15:23:09Z</updated>

		<summary type="html">&lt;p&gt;Trevor O&amp;#039;Brien: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Just about everyone in the [[VRL]] ends up re-using code and programs that someone else wrote previously, and undoubtedly the code that they write will be used by someone else in the future.  Therefore the golden rule applies well to software development in our lab: do unto others as you would have them do unto you.  This page records best practices for getting started developing software in an environment where code lives on through many generations of researchers.&lt;br /&gt;
&lt;br /&gt;
The primary things to keep in mind are that:&lt;br /&gt;
* Future users of your code need read and write permission; and&lt;br /&gt;
* Future users of your code can&#039;t read your mind, so it must be organized and well-documented.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Quick Start Instructions ==&lt;br /&gt;
&lt;br /&gt;
If you are comfortable in setting up your own programming environment you can follow these quick start instructions.&lt;br /&gt;
&lt;br /&gt;
[[Quick Start for Linux in CIT]]&lt;br /&gt;
&lt;br /&gt;
== File Permissions ==&lt;br /&gt;
On Linux, there are three basic permissions that may be modified for a file: &#039;&#039;&#039;r&#039;&#039;&#039;, &#039;&#039;&#039;w&#039;&#039;&#039;, and &#039;&#039;&#039;x&#039;&#039;&#039;, which stand for &#039;&#039;&#039;r&#039;&#039;&#039;ead, &#039;&#039;&#039;w&#039;&#039;&#039;rite, and e&#039;&#039;&#039;x&#039;&#039;&#039;ecute.  For a given file, the permissions may be different for three different classes of users, &#039;&#039;&#039;u&#039;&#039;&#039;, &#039;&#039;&#039;g&#039;&#039;&#039;, and &#039;&#039;&#039;o&#039;&#039;&#039;, which stand for the &#039;&#039;&#039;u&#039;&#039;&#039;ser who owns the file, other members of the owner&#039;s &#039;&#039;&#039;g&#039;&#039;&#039;roup, and &#039;&#039;&#039;o&#039;&#039;&#039;ther users.  Therefore there are a total of nine permission bits on each file.  Each three-bit &#039;&#039;&#039;rwx&#039;&#039;&#039; code may be represented in binary as a number between 0 and 7:&lt;br /&gt;
&lt;br /&gt;
{| border=1 | align=center | cellpadding=3px&lt;br /&gt;
|-&lt;br /&gt;
! # !! r !! w !! x !! Permission&lt;br /&gt;
|-&lt;br /&gt;
! 0&lt;br /&gt;
| 0 || 0 || 0 || No access&lt;br /&gt;
|-&lt;br /&gt;
! 1&lt;br /&gt;
| 0 || 0 || 1 || Execute only&lt;br /&gt;
|-&lt;br /&gt;
! 2&lt;br /&gt;
| 0 || 1 || 0 || Write only&lt;br /&gt;
|-&lt;br /&gt;
! 3&lt;br /&gt;
| 0 || 1 || 1 || Write and execute&lt;br /&gt;
|-&lt;br /&gt;
! 4&lt;br /&gt;
| 1 || 0 || 0 || Read only&lt;br /&gt;
|-&lt;br /&gt;
! 5&lt;br /&gt;
| 1 || 0 || 1 || Read and execute&lt;br /&gt;
|-&lt;br /&gt;
! 6&lt;br /&gt;
| 1 || 1 || 0 || Read and write&lt;br /&gt;
|-&lt;br /&gt;
! 7&lt;br /&gt;
| 1 || 1 || 1 || Read, write, and execute&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The entire set of permissions for a file or directory may therefore be compactly represented by a three-digit octal number.  For example, &amp;lt;tt&amp;gt;754&amp;lt;/tt&amp;gt; means that the owner may read, write, and execute the file, other members of the owner&#039;s group may read and execute it, and all others may only read.&lt;br /&gt;
&lt;br /&gt;
=== Default permissions for new files ===&lt;br /&gt;
&lt;br /&gt;
When a new file is created, it starts off having permissions &amp;lt;tt&amp;gt;666&amp;lt;/tt&amp;gt; (read and write allowed for all users).  For directories, the execute permission means that the user can access the directory, and so the initial permissions on a new directory are &amp;lt;tt&amp;gt;777&amp;lt;/tt&amp;gt; (read, write, and access allowed for all users).&lt;br /&gt;
&lt;br /&gt;
These initial permissions are modified by what&#039;s called the &amp;quot;umask&amp;quot; or &amp;quot;file mode creation mask&amp;quot;.  This is a nine-bit binary mask that is XOR&#039;d with the initial permissions.  By default, the umask is &amp;lt;tt&amp;gt;022&amp;lt;/tt&amp;gt;, and therefore a new file will come out with permissions &amp;lt;tt&amp;gt;644&amp;lt;/tt&amp;gt;&amp;amp;nbsp;=&amp;amp;nbsp;&amp;lt;tt&amp;gt;666&amp;amp;nbsp;^&amp;amp;nbsp;022&amp;lt;/tt&amp;gt; (read and write for the owner, read only for all others).&lt;br /&gt;
&lt;br /&gt;
Every member of our research group is a member of the &amp;lt;tt&amp;gt;graphics&amp;lt;/tt&amp;gt; group on the CS department network.  In order to facilitate code sharing and collaboration, we need to make sure that read and write permissions are set not just for the owner of a file, but for all members of the &amp;lt;tt&amp;gt;graphics&amp;lt;/tt&amp;gt; group, too.  This is easily accopmlished by setting the umask to &amp;lt;tt&amp;gt;002&amp;lt;/tt&amp;gt; instead: &amp;lt;tt&amp;gt;666&amp;lt;/tt&amp;gt;&amp;amp;nbsp;^&amp;amp;nbsp;&amp;lt;tt&amp;gt;002&amp;amp;nbsp;=&amp;amp;nbsp;664&amp;lt;/tt&amp;gt; (read and write for the owner and members of the owner&#039;s group, read only for all others).&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;tt&amp;gt;umask&amp;lt;/tt&amp;gt; command either views or sets the current value of the umask.  The config file &amp;lt;tt&amp;gt;~/.environment&amp;lt;/tt&amp;gt; is run every time you open a shell, and the default one created by the CS department for new users sets the umask to &amp;lt;tt&amp;gt;022&amp;lt;/tt&amp;gt;.  To set the umask to &amp;lt;tt&amp;gt;002&amp;lt;/tt&amp;gt; at the beginning of every shell session, just edit your &amp;lt;tt&amp;gt;~/.environment&amp;lt;/tt&amp;gt; file.  Look for the line&lt;br /&gt;
&amp;lt;pre width=&amp;quot;30%&amp;quot;&amp;gt;umask 022&amp;lt;/pre&amp;gt;&lt;br /&gt;
and change it to&lt;br /&gt;
&amp;lt;pre width=&amp;quot;30%&amp;quot;&amp;gt;umask 002&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To make your change take effect immediately, execute the following command in all your open shells:&lt;br /&gt;
&amp;lt;pre width=&amp;quot;30%&amp;quot;&amp;gt;source ~/.environment&amp;lt;/pre&amp;gt;&lt;br /&gt;
If that gives you an error, try the following instead:&lt;br /&gt;
&amp;lt;pre width=&amp;quot;30%&amp;quot;&amp;gt;. ~/.environment&amp;lt;/pre&amp;gt;&lt;br /&gt;
You can check that it worked by running &amp;lt;tt&amp;gt;umask&amp;lt;/tt&amp;gt;; the result should be &amp;lt;tt&amp;gt;002&amp;lt;/tt&amp;gt;.  From now on, any files you create from the command line will be writeable by the group.&lt;br /&gt;
&lt;br /&gt;
=== Commands you should know for dealing with permissions ===&lt;br /&gt;
Type &amp;lt;code&amp;gt;man &amp;amp;lt;command&amp;amp;gt;&amp;lt;/code&amp;gt; at the command line to get information about any of the following:&lt;br /&gt;
* &amp;lt;tt&amp;gt;umask&amp;lt;/tt&amp;gt; --- view or set the umask&lt;br /&gt;
* &amp;lt;tt&amp;gt;chmod&amp;lt;/tt&amp;gt; --- change the permissions for a file or directory&lt;br /&gt;
* &amp;lt;tt&amp;gt;chown&amp;lt;/tt&amp;gt; --- change the owner of a file or directory (only allowed if you are the owner)&lt;br /&gt;
&lt;br /&gt;
== Development Best Practices ==&lt;br /&gt;
&lt;br /&gt;
=== Minimal Coding Standards ===&lt;br /&gt;
&lt;br /&gt;
* Tabs are only meaningful in your edit session.&lt;br /&gt;
Do not use tabs (except in Makefiles as needed).&lt;br /&gt;
Indent 4 spaces, but 3 is okay if you prefer.&lt;br /&gt;
&lt;br /&gt;
* Name script files with suffixes.&lt;br /&gt;
Use Python for scripts (very portable).&lt;br /&gt;
Avoid reliance on Cygwin.&lt;br /&gt;
&lt;br /&gt;
* Commenting code does not slow progress.&lt;br /&gt;
If you make it a habit it speeds things up.&lt;br /&gt;
At a minimum write a method’s purpose and parameter usage.&lt;br /&gt;
&lt;br /&gt;
* Linux file system links are not portable.  Never use them.&lt;br /&gt;
&lt;br /&gt;
=== Coding in C++ ===&lt;br /&gt;
&lt;br /&gt;
* Use  .cpp  and  .h  suffixes for c++ source file names.  Not:   .C  and  .H&lt;br /&gt;
&lt;br /&gt;
* Avoid conditional compilation (#ifdef).&lt;br /&gt;
&lt;br /&gt;
* Use brackets around code bodies over multiple lines.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Evil:     if   (condition)&lt;br /&gt;
               action;&lt;br /&gt;
&lt;br /&gt;
Good:     if   (condition)   action;            if  (condition)  { action };&lt;br /&gt;
&lt;br /&gt;
          if   (condition)                      if  (condition)&lt;br /&gt;
          {     action;                         {&lt;br /&gt;
          }                                         action;&lt;br /&gt;
                                                }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Line up brackets so they are easier to match visually.&lt;br /&gt;
&lt;br /&gt;
* Do not #include .cpp files.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:HOWTO]][[Category:$G HOWTO]][[Category:Software Development]]&lt;/div&gt;</summary>
		<author><name>Trevor O&#039;Brien</name></author>
	</entry>
	<entry>
		<id>http://vrl.cs.brown.edu/wiki/index.php?title=$G_in_practice&amp;diff=4086</id>
		<title>$G in practice</title>
		<link rel="alternate" type="text/html" href="http://vrl.cs.brown.edu/wiki/index.php?title=$G_in_practice&amp;diff=4086"/>
		<updated>2010-04-19T15:22:44Z</updated>

		<summary type="html">&lt;p&gt;Trevor O&amp;#039;Brien: New page: == Development Environment ==  The graphics group has developed a system over many years that allows easy development of a large, shared base of software.  We give the whole thing the nick...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Development Environment ==&lt;br /&gt;
&lt;br /&gt;
The graphics group has developed a system over many years that allows easy development of a large, shared base of software.  We give the whole thing the nickname &amp;lt;tt&amp;gt;[[$G]]&amp;lt;/tt&amp;gt; (&amp;quot;dollar gee&amp;quot;), named after the environment variable that represents the root of the source tree.&lt;br /&gt;
&lt;br /&gt;
There source code our group has created is modified and backed up through a source control system called CVS (Concurrent Versioning System).  You must have CVS set up properly in order to develop with our shared codebase.&lt;br /&gt;
&lt;br /&gt;
Source control works by allowing an individual user to make structured copies of the master versions of files (this process is called &amp;quot;checking out&amp;quot; the files).  The user then modifies his or her personal copies of the files, and then &amp;quot;checks in&amp;quot; the changes once they&#039;re certain that the code compiles and runs properly.  The location where a user modifies a personal copy of shared code is called a &amp;quot;sandbox&amp;quot;, because it is in some sense walled off from the master copy: destructive changes to the code in the sandbox do not affect the master copy, provided the user doesn&#039;t check them in.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Access to CVS ===&lt;br /&gt;
&lt;br /&gt;
Environment variables are used to configure the development environment.  General instructions for setting up environment variables and using them.&lt;br /&gt;
&lt;br /&gt;
[[Setting Environment Variables]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Linux:  &amp;lt;code&amp;gt;CVSROOT is /map/gfx0/cvsroot/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Windows set CVSROOT to:  &amp;lt;code&amp;gt;Y:\map\gfx0\cvsroot\&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Setting up &amp;lt;tt&amp;gt;$G&amp;lt;/tt&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Creating a development sandbox ===&lt;br /&gt;
&lt;br /&gt;
Your sandbox is the area where you work.  It can be any directory, but the area &amp;lt;code&amp;gt;/map/gfx0/users/&amp;amp;lt;Login Id&amp;amp;gt;&amp;lt;/code&amp;gt; is set aside for students in the graphics group.  Create a directory there to work in or if you&#039;d like also create a subdirectory to work in.  To create your own sandbox, do the following (the &amp;quot;&amp;lt;tt&amp;gt;&amp;amp;gt;&amp;lt;/tt&amp;gt;&amp;quot; just indicates the beginning of each command):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt; cd /map/gfx0/users&lt;br /&gt;
&amp;gt; mkdir -p $USER&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can get a private copy of all source code migrated to the [[dollarg 2009| new version of &amp;lt;tt&amp;gt;$G&amp;lt;/tt&amp;gt;]] by executing the following command afterward:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt; cd   &amp;lt;Sandbox&amp;gt;&lt;br /&gt;
&amp;gt; cvs co common project&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;common&#039;&#039;&#039; directory contains software shared by projects and the &#039;&#039;&#039;project&#039;&#039;&#039; directory contains student applications.  There are two other directories of interest.  One is the &#039;&#039;&#039;import&#039;&#039;&#039; directory which is where third party software is installed.  The other is the &#039;&#039;&#039;install_linux&#039;&#039;&#039; or &#039;&#039;&#039;install_WIN32&#039;&#039;&#039; directory.  This is where software that you build is installed when you perform a &#039;&#039;&#039;&amp;quot;make install&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
All of these directories can be arranged to suite your needs.  If you are just getting started just create them all at the top level of your sandbox.  For now just create the top level directories and populate them later.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt; mkdir import&lt;br /&gt;
&amp;gt; mkdir install_linux&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Setting Environment Variables ===&lt;br /&gt;
&lt;br /&gt;
There are several environment variables to set up.  You can set these up in your login scripts along with the setting for CVSROOT.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;GARCH&#039;&#039;&#039;:  Designate the platform architecture.&lt;br /&gt;
&lt;br /&gt;
 GARCH = WIN32           # Use this setting on Windows.&lt;br /&gt;
 GARCH = linux           # Use this setting on Linux.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;G&#039;&#039;&#039;:  This is used to access the G Build system and is set to the location of the common directory.  By default it is also used to access the &#039;&#039;&#039;import&#039;&#039;&#039; directory.  If your sandbox is at the top of your users&#039; directory then set:&lt;br /&gt;
&lt;br /&gt;
 G = /map/gfx0/users/&amp;amp;lt;login&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;GROOT&#039;&#039;&#039;:  At Brown this variable is used to access these directories:&lt;br /&gt;
&lt;br /&gt;
  $GROOT/data          # Contains large data sets.&lt;br /&gt;
  $GROOT/users         # Work areas for end users.&lt;br /&gt;
&lt;br /&gt;
 GROOT = /map/gfx0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;GTO&#039;&#039;&#039;:  This is the location of the install directories.  Usually you will want to keep them at the top of your sandbox then it will be the same as $G.&lt;br /&gt;
&lt;br /&gt;
 GTO = $G&lt;/div&gt;</summary>
		<author><name>Trevor O&#039;Brien</name></author>
	</entry>
	<entry>
		<id>http://vrl.cs.brown.edu/wiki/index.php?title=Main_Page&amp;diff=4085</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="http://vrl.cs.brown.edu/wiki/index.php?title=Main_Page&amp;diff=4085"/>
		<updated>2010-04-19T15:18:57Z</updated>

		<summary type="html">&lt;p&gt;Trevor O&amp;#039;Brien: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__  __NOEDITSECTION__&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
&lt;br /&gt;
------------------------------Banner across top of page------------------------------&amp;gt;&lt;br /&gt;
{| style=&amp;quot;width:100%; background:#fcfcfc; margin-top:1.2em; border:1px solid #ccc; text-align:center; white-space:nowrap; color:#000;&amp;quot;&lt;br /&gt;
| &amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
-----------Welcome and article count----------&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size:162%; border:none; margin:0; padding:.1em; color:#000;&amp;quot;&amp;gt;Welcome to the [[VrlWiki]],&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;top:+0.2em; font-size:95%;&amp;quot;&amp;gt;a [[wikipedia:Wiki|user-editable]] repository of information for the [http://www.brown.edu Brown University] [http://vis.cs.brown.edu Visualization Research Lab].&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;articlecount&amp;quot; style=&amp;quot;width:100%; text-align:center; font-size:85%;&amp;quot;&amp;gt;There are [[Special:Statistics|{{NUMBEROFARTICLES}}]] articles so far in the wiki.&amp;lt;/div&amp;gt;&lt;br /&gt;
Red links below indicate pages that should exist but haven&#039;t yet been created.  If you know something, write something!&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
-------------------------Left box------------------------&amp;gt;&lt;br /&gt;
{|style=&amp;quot;margin:0px 0px 0px 0px; background:none;&amp;quot;&lt;br /&gt;
|class=&amp;quot;MainPageBG&amp;quot; style=&amp;quot;width:50%; border:1px solid #cef2e0; background:#f5fffa; vertical-align:top; color:#000;&amp;quot;|&lt;br /&gt;
{|width=&amp;quot;100%&amp;quot; cellpadding=&amp;quot;2&amp;quot; cellspacing=&amp;quot;5&amp;quot; style=&amp;quot;vertical-align:top; background:#f5fffa;&amp;quot;&lt;br /&gt;
! &amp;lt;h2 style=&amp;quot;margin:0; background:#cef2e0; font-size:120%; font-weight:bold; border:1px solid #a3bfb1; text-align:left; color:#000; padding:0.2em 0.4em;&amp;quot;&amp;gt;[[:Category:VRL|VRL]]&amp;lt;/h2&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;color:#000;&amp;quot;|&lt;br /&gt;
* [[VRL|About the VRL]]&lt;br /&gt;
* [[Plans and Goals]]&lt;br /&gt;
* [[Nascent Papers]]&lt;br /&gt;
* [[Job Jar]]&lt;br /&gt;
* [[Vis Nuggets 08]]&lt;br /&gt;
* [[SciVis Meetings|Research Group Meetings]]&lt;br /&gt;
* [[Advising Meetings]]&lt;br /&gt;
* [[SciVis Reading Group]]&lt;br /&gt;
* [[Courses]]&lt;br /&gt;
* [[Demo Menu]]&lt;br /&gt;
|-&lt;br /&gt;
! &amp;lt;h2 style=&amp;quot;margin:0; background:#cef2e0; font-size:120%; font-weight:bold; border:1px solid #a3bfb1; text-align:left; color:#000; padding:0.2em 0.4em;&amp;quot;&amp;gt;[[:Category:IT Tools|IT Tools]]&amp;lt;/h2&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;color:#000;&amp;quot;|&lt;br /&gt;
* [[VrlWiki]]&lt;br /&gt;
* [[Visweb]]&lt;br /&gt;
* [[$G]]&lt;br /&gt;
* [[Source Control]]&lt;br /&gt;
* [[Build System]]&lt;br /&gt;
* [[Computing Resources]]&lt;br /&gt;
|-&lt;br /&gt;
! &amp;lt;h2 style=&amp;quot;margin:0; background:#cef2e0; font-size:120%; font-weight:bold; border:1px solid #a3bfb1; text-align:left; color:#000; padding:0.2em 0.4em;&amp;quot;&amp;gt;[[:Category:Projects|Projects]]&amp;lt;/h2&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;color:#000;&amp;quot;|&lt;br /&gt;
* Interdisciplinary Research&lt;br /&gt;
** [[2D Scalar Fields]]&lt;br /&gt;
** [[Art and Visualization]]&lt;br /&gt;
** [[Bats]]&lt;br /&gt;
** [[Chewing]]&lt;br /&gt;
** [[Diffusion MRI]]&lt;br /&gt;
** [[Fluid Flow]]&lt;br /&gt;
** [[Protein Networks]]&lt;br /&gt;
** [[Wrists]]&lt;br /&gt;
* [[:Category:Software|Support Software]]&lt;br /&gt;
** [[G3D|G3D/VRG3D]]&lt;br /&gt;
** [[Gluebase]]&lt;br /&gt;
** [[Inspace]]&lt;br /&gt;
* [[:Category:Hardware|Support Hardware]]&lt;br /&gt;
** [[CAVE]]&lt;br /&gt;
** [[New CAVE Design]]&lt;br /&gt;
** [[Powerwall]]&lt;br /&gt;
** [[Fishtank]]&lt;br /&gt;
** [[Wheatstone]]&lt;br /&gt;
|}&lt;br /&gt;
|style=&amp;quot;border:1px solid transparent&amp;quot;|&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
--------------------------------Right box-------------------------------&amp;gt;&lt;br /&gt;
|class=&amp;quot;MainPageBG&amp;quot; style=&amp;quot;width:50%; border:1px solid #cedff2; background:#f5faff; vertical-align:top;&amp;quot;|&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; cellpadding=&amp;quot;2&amp;quot; cellspacing=&amp;quot;5&amp;quot; style=&amp;quot;vertical-align:top; background:#f5faff;&amp;quot;&lt;br /&gt;
! &amp;lt;h2 style=&amp;quot;margin:0; background:#cedff2; font-size:120%; font-weight:bold; border:1px solid #a3b0bf; text-align:left; color:#000; padding:0.2em 0.4em;&amp;quot;&amp;gt;[[:Category:HOWTO|HOWTO]]&amp;lt;/h2&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;color:#000;&amp;quot;|&lt;br /&gt;
* Research&lt;br /&gt;
** [[Find a project]]&lt;br /&gt;
** [[Write a paper]]&lt;br /&gt;
** [[Do a literature search]]&lt;br /&gt;
** [[Find collaborators]]&lt;br /&gt;
** [[Get certified to work with human subjects]]&lt;br /&gt;
** [[Get certified to run an MRI scanner]]&lt;br /&gt;
** [[Store data]]&lt;br /&gt;
** [[Statistics And Graphs|Analyze Data]]&lt;br /&gt;
** [[Write a grant proposal]]&lt;br /&gt;
&lt;br /&gt;
* [[Software Development]]&lt;br /&gt;
** [[Coding conventions|Coding conventions and best practices]]&lt;br /&gt;
** [[$G in practice|Get started with $G]]&lt;br /&gt;
** [[Check out projects|Check out existing projects]]&lt;br /&gt;
** [[Contribute to projects|Contribute to existing projects]]&lt;br /&gt;
** [[Add a project]]&lt;br /&gt;
*** [[Add a new project]]&lt;br /&gt;
*** [[Port existing project|Port existing project to the new $G]]&lt;br /&gt;
** [[Software tests|Create and automate software tests]]&lt;br /&gt;
** [[Software demos|Create and install software demos]]&lt;br /&gt;
** [[Distribute software|Distribute software and data]]&lt;br /&gt;
** [[Install 3rd party code|Install 3rd-party programs or libraries]]&lt;br /&gt;
&lt;br /&gt;
* Dissemination&lt;br /&gt;
** [[Pick a destination for your project]]&lt;br /&gt;
** [[Submit a paper]]&lt;br /&gt;
** [[Make a poster]]&lt;br /&gt;
** [[Give a talk]]&lt;br /&gt;
** [[Run a demo]]&lt;br /&gt;
** [[Distribute software tools]]&lt;br /&gt;
&lt;br /&gt;
* Finishing Up&lt;br /&gt;
** [[Find a job]]&lt;br /&gt;
** [[Propose your PhD]]&lt;br /&gt;
** [[Defend you PhD]]&lt;br /&gt;
|}&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Trevor O&#039;Brien</name></author>
	</entry>
	<entry>
		<id>http://vrl.cs.brown.edu/wiki/index.php?title=Software_Development&amp;diff=4084</id>
		<title>Software Development</title>
		<link rel="alternate" type="text/html" href="http://vrl.cs.brown.edu/wiki/index.php?title=Software_Development&amp;diff=4084"/>
		<updated>2010-04-19T15:18:36Z</updated>

		<summary type="html">&lt;p&gt;Trevor O&amp;#039;Brien: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* [[Coding conventions|Coding conventions and best practices]]&lt;br /&gt;
* [[$G in practice|Get started with $G]]&lt;br /&gt;
* [[Check out projects|Check out existing projects]]&lt;br /&gt;
* [[Contribute to projects|Contribute to existing projects]]&lt;br /&gt;
* [[Add a project]]&lt;br /&gt;
** [[Add a new project]]&lt;br /&gt;
** [[Port existing project|Port existing project to the new $G]]&lt;br /&gt;
* [[Software tests|Create and automate software tests]]&lt;br /&gt;
* [[Software demos|Create and install software demos]]&lt;br /&gt;
* [[Distribute software|Distribute software and data]]&lt;br /&gt;
* [[Install 3rd party code|Install 3rd-party programs or libraries]]&lt;/div&gt;</summary>
		<author><name>Trevor O&#039;Brien</name></author>
	</entry>
	<entry>
		<id>http://vrl.cs.brown.edu/wiki/index.php?title=Coding_conventions_and_best_practices&amp;diff=4083</id>
		<title>Coding conventions and best practices</title>
		<link rel="alternate" type="text/html" href="http://vrl.cs.brown.edu/wiki/index.php?title=Coding_conventions_and_best_practices&amp;diff=4083"/>
		<updated>2010-04-19T15:18:15Z</updated>

		<summary type="html">&lt;p&gt;Trevor O&amp;#039;Brien: Coding conventions and best practices moved to Coding conventions: Long page names are lousy.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Coding conventions]]&lt;/div&gt;</summary>
		<author><name>Trevor O&#039;Brien</name></author>
	</entry>
	<entry>
		<id>http://vrl.cs.brown.edu/wiki/index.php?title=Coding_conventions&amp;diff=4082</id>
		<title>Coding conventions</title>
		<link rel="alternate" type="text/html" href="http://vrl.cs.brown.edu/wiki/index.php?title=Coding_conventions&amp;diff=4082"/>
		<updated>2010-04-19T15:18:15Z</updated>

		<summary type="html">&lt;p&gt;Trevor O&amp;#039;Brien: Coding conventions and best practices moved to Coding conventions: Long page names are lousy.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Just about everyone in the [[VRL]] ends up re-using code and programs that someone else wrote previously, and undoubtedly the code that they write will be used by someone else in the future.  Therefore the golden rule applies well to software development in our lab: do unto others as you would have them do unto you.  This page records best practices for getting started developing software in an environment where code lives on through many generations of researchers.&lt;br /&gt;
&lt;br /&gt;
The primary things to keep in mind are that:&lt;br /&gt;
* Future users of your code need read and write permission; and&lt;br /&gt;
* Future users of your code can&#039;t read your mind, so it must be organized and well-documented.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Quick Start Instructions ==&lt;br /&gt;
&lt;br /&gt;
If you are comfortable in setting up your own programming environment you can follow these quick start instructions.&lt;br /&gt;
&lt;br /&gt;
[[Quick Start for Linux in CIT]]&lt;br /&gt;
&lt;br /&gt;
== File Permissions ==&lt;br /&gt;
On Linux, there are three basic permissions that may be modified for a file: &#039;&#039;&#039;r&#039;&#039;&#039;, &#039;&#039;&#039;w&#039;&#039;&#039;, and &#039;&#039;&#039;x&#039;&#039;&#039;, which stand for &#039;&#039;&#039;r&#039;&#039;&#039;ead, &#039;&#039;&#039;w&#039;&#039;&#039;rite, and e&#039;&#039;&#039;x&#039;&#039;&#039;ecute.  For a given file, the permissions may be different for three different classes of users, &#039;&#039;&#039;u&#039;&#039;&#039;, &#039;&#039;&#039;g&#039;&#039;&#039;, and &#039;&#039;&#039;o&#039;&#039;&#039;, which stand for the &#039;&#039;&#039;u&#039;&#039;&#039;ser who owns the file, other members of the owner&#039;s &#039;&#039;&#039;g&#039;&#039;&#039;roup, and &#039;&#039;&#039;o&#039;&#039;&#039;ther users.  Therefore there are a total of nine permission bits on each file.  Each three-bit &#039;&#039;&#039;rwx&#039;&#039;&#039; code may be represented in binary as a number between 0 and 7:&lt;br /&gt;
&lt;br /&gt;
{| border=1 | align=center | cellpadding=3px&lt;br /&gt;
|-&lt;br /&gt;
! # !! r !! w !! x !! Permission&lt;br /&gt;
|-&lt;br /&gt;
! 0&lt;br /&gt;
| 0 || 0 || 0 || No access&lt;br /&gt;
|-&lt;br /&gt;
! 1&lt;br /&gt;
| 0 || 0 || 1 || Execute only&lt;br /&gt;
|-&lt;br /&gt;
! 2&lt;br /&gt;
| 0 || 1 || 0 || Write only&lt;br /&gt;
|-&lt;br /&gt;
! 3&lt;br /&gt;
| 0 || 1 || 1 || Write and execute&lt;br /&gt;
|-&lt;br /&gt;
! 4&lt;br /&gt;
| 1 || 0 || 0 || Read only&lt;br /&gt;
|-&lt;br /&gt;
! 5&lt;br /&gt;
| 1 || 0 || 1 || Read and execute&lt;br /&gt;
|-&lt;br /&gt;
! 6&lt;br /&gt;
| 1 || 1 || 0 || Read and write&lt;br /&gt;
|-&lt;br /&gt;
! 7&lt;br /&gt;
| 1 || 1 || 1 || Read, write, and execute&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The entire set of permissions for a file or directory may therefore be compactly represented by a three-digit octal number.  For example, &amp;lt;tt&amp;gt;754&amp;lt;/tt&amp;gt; means that the owner may read, write, and execute the file, other members of the owner&#039;s group may read and execute it, and all others may only read.&lt;br /&gt;
&lt;br /&gt;
=== Default permissions for new files ===&lt;br /&gt;
&lt;br /&gt;
When a new file is created, it starts off having permissions &amp;lt;tt&amp;gt;666&amp;lt;/tt&amp;gt; (read and write allowed for all users).  For directories, the execute permission means that the user can access the directory, and so the initial permissions on a new directory are &amp;lt;tt&amp;gt;777&amp;lt;/tt&amp;gt; (read, write, and access allowed for all users).&lt;br /&gt;
&lt;br /&gt;
These initial permissions are modified by what&#039;s called the &amp;quot;umask&amp;quot; or &amp;quot;file mode creation mask&amp;quot;.  This is a nine-bit binary mask that is XOR&#039;d with the initial permissions.  By default, the umask is &amp;lt;tt&amp;gt;022&amp;lt;/tt&amp;gt;, and therefore a new file will come out with permissions &amp;lt;tt&amp;gt;644&amp;lt;/tt&amp;gt;&amp;amp;nbsp;=&amp;amp;nbsp;&amp;lt;tt&amp;gt;666&amp;amp;nbsp;^&amp;amp;nbsp;022&amp;lt;/tt&amp;gt; (read and write for the owner, read only for all others).&lt;br /&gt;
&lt;br /&gt;
Every member of our research group is a member of the &amp;lt;tt&amp;gt;graphics&amp;lt;/tt&amp;gt; group on the CS department network.  In order to facilitate code sharing and collaboration, we need to make sure that read and write permissions are set not just for the owner of a file, but for all members of the &amp;lt;tt&amp;gt;graphics&amp;lt;/tt&amp;gt; group, too.  This is easily accopmlished by setting the umask to &amp;lt;tt&amp;gt;002&amp;lt;/tt&amp;gt; instead: &amp;lt;tt&amp;gt;666&amp;lt;/tt&amp;gt;&amp;amp;nbsp;^&amp;amp;nbsp;&amp;lt;tt&amp;gt;002&amp;amp;nbsp;=&amp;amp;nbsp;664&amp;lt;/tt&amp;gt; (read and write for the owner and members of the owner&#039;s group, read only for all others).&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;tt&amp;gt;umask&amp;lt;/tt&amp;gt; command either views or sets the current value of the umask.  The config file &amp;lt;tt&amp;gt;~/.environment&amp;lt;/tt&amp;gt; is run every time you open a shell, and the default one created by the CS department for new users sets the umask to &amp;lt;tt&amp;gt;022&amp;lt;/tt&amp;gt;.  To set the umask to &amp;lt;tt&amp;gt;002&amp;lt;/tt&amp;gt; at the beginning of every shell session, just edit your &amp;lt;tt&amp;gt;~/.environment&amp;lt;/tt&amp;gt; file.  Look for the line&lt;br /&gt;
&amp;lt;pre width=&amp;quot;30%&amp;quot;&amp;gt;umask 022&amp;lt;/pre&amp;gt;&lt;br /&gt;
and change it to&lt;br /&gt;
&amp;lt;pre width=&amp;quot;30%&amp;quot;&amp;gt;umask 002&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To make your change take effect immediately, execute the following command in all your open shells:&lt;br /&gt;
&amp;lt;pre width=&amp;quot;30%&amp;quot;&amp;gt;source ~/.environment&amp;lt;/pre&amp;gt;&lt;br /&gt;
If that gives you an error, try the following instead:&lt;br /&gt;
&amp;lt;pre width=&amp;quot;30%&amp;quot;&amp;gt;. ~/.environment&amp;lt;/pre&amp;gt;&lt;br /&gt;
You can check that it worked by running &amp;lt;tt&amp;gt;umask&amp;lt;/tt&amp;gt;; the result should be &amp;lt;tt&amp;gt;002&amp;lt;/tt&amp;gt;.  From now on, any files you create from the command line will be writeable by the group.&lt;br /&gt;
&lt;br /&gt;
=== Commands you should know for dealing with permissions ===&lt;br /&gt;
Type &amp;lt;code&amp;gt;man &amp;amp;lt;command&amp;amp;gt;&amp;lt;/code&amp;gt; at the command line to get information about any of the following:&lt;br /&gt;
* &amp;lt;tt&amp;gt;umask&amp;lt;/tt&amp;gt; --- view or set the umask&lt;br /&gt;
* &amp;lt;tt&amp;gt;chmod&amp;lt;/tt&amp;gt; --- change the permissions for a file or directory&lt;br /&gt;
* &amp;lt;tt&amp;gt;chown&amp;lt;/tt&amp;gt; --- change the owner of a file or directory (only allowed if you are the owner)&lt;br /&gt;
&lt;br /&gt;
== Development Environment ==&lt;br /&gt;
&lt;br /&gt;
The graphics group has developed a system over many years that allows easy development of a large, shared base of software.  We give the whole thing the nickname &amp;lt;tt&amp;gt;[[$G]]&amp;lt;/tt&amp;gt; (&amp;quot;dollar gee&amp;quot;), named after the environment variable that represents the root of the source tree.&lt;br /&gt;
&lt;br /&gt;
There source code our group has created is modified and backed up through a source control system called CVS (Concurrent Versioning System).  You must have CVS set up properly in order to develop with our shared codebase.&lt;br /&gt;
&lt;br /&gt;
Source control works by allowing an individual user to make structured copies of the master versions of files (this process is called &amp;quot;checking out&amp;quot; the files).  The user then modifies his or her personal copies of the files, and then &amp;quot;checks in&amp;quot; the changes once they&#039;re certain that the code compiles and runs properly.  The location where a user modifies a personal copy of shared code is called a &amp;quot;sandbox&amp;quot;, because it is in some sense walled off from the master copy: destructive changes to the code in the sandbox do not affect the master copy, provided the user doesn&#039;t check them in.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Access to CVS ===&lt;br /&gt;
&lt;br /&gt;
Environment variables are used to configure the development environment.  General instructions for setting up environment variables and using them.&lt;br /&gt;
&lt;br /&gt;
[[Setting Environment Variables]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Linux:  &amp;lt;code&amp;gt;CVSROOT is /map/gfx0/cvsroot/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Windows set CVSROOT to:  &amp;lt;code&amp;gt;Y:\map\gfx0\cvsroot\&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Setting up &amp;lt;tt&amp;gt;$G&amp;lt;/tt&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Creating a development sandbox ===&lt;br /&gt;
&lt;br /&gt;
Your sandbox is the area where you work.  It can be any directory, but the area &amp;lt;code&amp;gt;/map/gfx0/users/&amp;amp;lt;Login Id&amp;amp;gt;&amp;lt;/code&amp;gt; is set aside for students in the graphics group.  Create a directory there to work in or if you&#039;d like also create a subdirectory to work in.  To create your own sandbox, do the following (the &amp;quot;&amp;lt;tt&amp;gt;&amp;amp;gt;&amp;lt;/tt&amp;gt;&amp;quot; just indicates the beginning of each command):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt; cd /map/gfx0/users&lt;br /&gt;
&amp;gt; mkdir -p $USER&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can get a private copy of all source code migrated to the [[dollarg 2009| new version of &amp;lt;tt&amp;gt;$G&amp;lt;/tt&amp;gt;]] by executing the following command afterward:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt; cd   &amp;lt;Sandbox&amp;gt;&lt;br /&gt;
&amp;gt; cvs co common project&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;common&#039;&#039;&#039; directory contains software shared by projects and the &#039;&#039;&#039;project&#039;&#039;&#039; directory contains student applications.  There are two other directories of interest.  One is the &#039;&#039;&#039;import&#039;&#039;&#039; directory which is where third party software is installed.  The other is the &#039;&#039;&#039;install_linux&#039;&#039;&#039; or &#039;&#039;&#039;install_WIN32&#039;&#039;&#039; directory.  This is where software that you build is installed when you perform a &#039;&#039;&#039;&amp;quot;make install&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
All of these directories can be arranged to suite your needs.  If you are just getting started just create them all at the top level of your sandbox.  For now just create the top level directories and populate them later.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt; mkdir import&lt;br /&gt;
&amp;gt; mkdir install_linux&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Setting Environment Variables ===&lt;br /&gt;
&lt;br /&gt;
There are several environment variables to set up.  You can set these up in your login scripts along with the setting for CVSROOT.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;GARCH&#039;&#039;&#039;:  Designate the platform architecture.&lt;br /&gt;
&lt;br /&gt;
 GARCH = WIN32           # Use this setting on Windows.&lt;br /&gt;
 GARCH = linux           # Use this setting on Linux.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;G&#039;&#039;&#039;:  This is used to access the G Build system and is set to the location of the common directory.  By default it is also used to access the &#039;&#039;&#039;import&#039;&#039;&#039; directory.  If your sandbox is at the top of your users&#039; directory then set:&lt;br /&gt;
&lt;br /&gt;
 G = /map/gfx0/users/&amp;amp;lt;login&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;GROOT&#039;&#039;&#039;:  At Brown this variable is used to access these directories:&lt;br /&gt;
&lt;br /&gt;
  $GROOT/data          # Contains large data sets.&lt;br /&gt;
  $GROOT/users         # Work areas for end users.&lt;br /&gt;
&lt;br /&gt;
 GROOT = /map/gfx0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;GTO&#039;&#039;&#039;:  This is the location of the install directories.  Usually you will want to keep them at the top of your sandbox then it will be the same as $G.&lt;br /&gt;
&lt;br /&gt;
 GTO = $G&lt;br /&gt;
&lt;br /&gt;
== Development Best Practices ==&lt;br /&gt;
&lt;br /&gt;
=== Minimal Coding Standards ===&lt;br /&gt;
&lt;br /&gt;
* Tabs are only meaningful in your edit session.&lt;br /&gt;
Do not use tabs (except in Makefiles as needed).&lt;br /&gt;
Indent 4 spaces, but 3 is okay if you prefer.&lt;br /&gt;
&lt;br /&gt;
* Name script files with suffixes.&lt;br /&gt;
Use Python for scripts (very portable).&lt;br /&gt;
Avoid reliance on Cygwin.&lt;br /&gt;
&lt;br /&gt;
* Commenting code does not slow progress.&lt;br /&gt;
If you make it a habit it speeds things up.&lt;br /&gt;
At a minimum write a method’s purpose and parameter usage.&lt;br /&gt;
&lt;br /&gt;
* Linux file system links are not portable.  Never use them.&lt;br /&gt;
&lt;br /&gt;
=== Coding in C++ ===&lt;br /&gt;
&lt;br /&gt;
* Use  .cpp  and  .h  suffixes for c++ source file names.  Not:   .C  and  .H&lt;br /&gt;
&lt;br /&gt;
* Avoid conditional compilation (#ifdef).&lt;br /&gt;
&lt;br /&gt;
* Use brackets around code bodies over multiple lines.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Evil:     if   (condition)&lt;br /&gt;
               action;&lt;br /&gt;
&lt;br /&gt;
Good:     if   (condition)   action;            if  (condition)  { action };&lt;br /&gt;
&lt;br /&gt;
          if   (condition)                      if  (condition)&lt;br /&gt;
          {     action;                         {&lt;br /&gt;
          }                                         action;&lt;br /&gt;
                                                }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Line up brackets so they are easier to match visually.&lt;br /&gt;
&lt;br /&gt;
* Do not #include .cpp files.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:HOWTO]][[Category:$G HOWTO]][[Category:Software Development]]&lt;/div&gt;</summary>
		<author><name>Trevor O&#039;Brien</name></author>
	</entry>
	<entry>
		<id>http://vrl.cs.brown.edu/wiki/index.php?title=Get_started_on_software_development&amp;diff=4081</id>
		<title>Get started on software development</title>
		<link rel="alternate" type="text/html" href="http://vrl.cs.brown.edu/wiki/index.php?title=Get_started_on_software_development&amp;diff=4081"/>
		<updated>2010-04-19T15:17:40Z</updated>

		<summary type="html">&lt;p&gt;Trevor O&amp;#039;Brien: Get started on software development moved to Coding conventions and best practices: Reorganization of the software development section of the vrl home page.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Coding conventions and best practices]]&lt;/div&gt;</summary>
		<author><name>Trevor O&#039;Brien</name></author>
	</entry>
	<entry>
		<id>http://vrl.cs.brown.edu/wiki/index.php?title=Coding_conventions&amp;diff=4080</id>
		<title>Coding conventions</title>
		<link rel="alternate" type="text/html" href="http://vrl.cs.brown.edu/wiki/index.php?title=Coding_conventions&amp;diff=4080"/>
		<updated>2010-04-19T15:17:40Z</updated>

		<summary type="html">&lt;p&gt;Trevor O&amp;#039;Brien: Get started on software development moved to Coding conventions and best practices: Reorganization of the software development section of the vrl home page.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Just about everyone in the [[VRL]] ends up re-using code and programs that someone else wrote previously, and undoubtedly the code that they write will be used by someone else in the future.  Therefore the golden rule applies well to software development in our lab: do unto others as you would have them do unto you.  This page records best practices for getting started developing software in an environment where code lives on through many generations of researchers.&lt;br /&gt;
&lt;br /&gt;
The primary things to keep in mind are that:&lt;br /&gt;
* Future users of your code need read and write permission; and&lt;br /&gt;
* Future users of your code can&#039;t read your mind, so it must be organized and well-documented.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Quick Start Instructions ==&lt;br /&gt;
&lt;br /&gt;
If you are comfortable in setting up your own programming environment you can follow these quick start instructions.&lt;br /&gt;
&lt;br /&gt;
[[Quick Start for Linux in CIT]]&lt;br /&gt;
&lt;br /&gt;
== File Permissions ==&lt;br /&gt;
On Linux, there are three basic permissions that may be modified for a file: &#039;&#039;&#039;r&#039;&#039;&#039;, &#039;&#039;&#039;w&#039;&#039;&#039;, and &#039;&#039;&#039;x&#039;&#039;&#039;, which stand for &#039;&#039;&#039;r&#039;&#039;&#039;ead, &#039;&#039;&#039;w&#039;&#039;&#039;rite, and e&#039;&#039;&#039;x&#039;&#039;&#039;ecute.  For a given file, the permissions may be different for three different classes of users, &#039;&#039;&#039;u&#039;&#039;&#039;, &#039;&#039;&#039;g&#039;&#039;&#039;, and &#039;&#039;&#039;o&#039;&#039;&#039;, which stand for the &#039;&#039;&#039;u&#039;&#039;&#039;ser who owns the file, other members of the owner&#039;s &#039;&#039;&#039;g&#039;&#039;&#039;roup, and &#039;&#039;&#039;o&#039;&#039;&#039;ther users.  Therefore there are a total of nine permission bits on each file.  Each three-bit &#039;&#039;&#039;rwx&#039;&#039;&#039; code may be represented in binary as a number between 0 and 7:&lt;br /&gt;
&lt;br /&gt;
{| border=1 | align=center | cellpadding=3px&lt;br /&gt;
|-&lt;br /&gt;
! # !! r !! w !! x !! Permission&lt;br /&gt;
|-&lt;br /&gt;
! 0&lt;br /&gt;
| 0 || 0 || 0 || No access&lt;br /&gt;
|-&lt;br /&gt;
! 1&lt;br /&gt;
| 0 || 0 || 1 || Execute only&lt;br /&gt;
|-&lt;br /&gt;
! 2&lt;br /&gt;
| 0 || 1 || 0 || Write only&lt;br /&gt;
|-&lt;br /&gt;
! 3&lt;br /&gt;
| 0 || 1 || 1 || Write and execute&lt;br /&gt;
|-&lt;br /&gt;
! 4&lt;br /&gt;
| 1 || 0 || 0 || Read only&lt;br /&gt;
|-&lt;br /&gt;
! 5&lt;br /&gt;
| 1 || 0 || 1 || Read and execute&lt;br /&gt;
|-&lt;br /&gt;
! 6&lt;br /&gt;
| 1 || 1 || 0 || Read and write&lt;br /&gt;
|-&lt;br /&gt;
! 7&lt;br /&gt;
| 1 || 1 || 1 || Read, write, and execute&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The entire set of permissions for a file or directory may therefore be compactly represented by a three-digit octal number.  For example, &amp;lt;tt&amp;gt;754&amp;lt;/tt&amp;gt; means that the owner may read, write, and execute the file, other members of the owner&#039;s group may read and execute it, and all others may only read.&lt;br /&gt;
&lt;br /&gt;
=== Default permissions for new files ===&lt;br /&gt;
&lt;br /&gt;
When a new file is created, it starts off having permissions &amp;lt;tt&amp;gt;666&amp;lt;/tt&amp;gt; (read and write allowed for all users).  For directories, the execute permission means that the user can access the directory, and so the initial permissions on a new directory are &amp;lt;tt&amp;gt;777&amp;lt;/tt&amp;gt; (read, write, and access allowed for all users).&lt;br /&gt;
&lt;br /&gt;
These initial permissions are modified by what&#039;s called the &amp;quot;umask&amp;quot; or &amp;quot;file mode creation mask&amp;quot;.  This is a nine-bit binary mask that is XOR&#039;d with the initial permissions.  By default, the umask is &amp;lt;tt&amp;gt;022&amp;lt;/tt&amp;gt;, and therefore a new file will come out with permissions &amp;lt;tt&amp;gt;644&amp;lt;/tt&amp;gt;&amp;amp;nbsp;=&amp;amp;nbsp;&amp;lt;tt&amp;gt;666&amp;amp;nbsp;^&amp;amp;nbsp;022&amp;lt;/tt&amp;gt; (read and write for the owner, read only for all others).&lt;br /&gt;
&lt;br /&gt;
Every member of our research group is a member of the &amp;lt;tt&amp;gt;graphics&amp;lt;/tt&amp;gt; group on the CS department network.  In order to facilitate code sharing and collaboration, we need to make sure that read and write permissions are set not just for the owner of a file, but for all members of the &amp;lt;tt&amp;gt;graphics&amp;lt;/tt&amp;gt; group, too.  This is easily accopmlished by setting the umask to &amp;lt;tt&amp;gt;002&amp;lt;/tt&amp;gt; instead: &amp;lt;tt&amp;gt;666&amp;lt;/tt&amp;gt;&amp;amp;nbsp;^&amp;amp;nbsp;&amp;lt;tt&amp;gt;002&amp;amp;nbsp;=&amp;amp;nbsp;664&amp;lt;/tt&amp;gt; (read and write for the owner and members of the owner&#039;s group, read only for all others).&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;tt&amp;gt;umask&amp;lt;/tt&amp;gt; command either views or sets the current value of the umask.  The config file &amp;lt;tt&amp;gt;~/.environment&amp;lt;/tt&amp;gt; is run every time you open a shell, and the default one created by the CS department for new users sets the umask to &amp;lt;tt&amp;gt;022&amp;lt;/tt&amp;gt;.  To set the umask to &amp;lt;tt&amp;gt;002&amp;lt;/tt&amp;gt; at the beginning of every shell session, just edit your &amp;lt;tt&amp;gt;~/.environment&amp;lt;/tt&amp;gt; file.  Look for the line&lt;br /&gt;
&amp;lt;pre width=&amp;quot;30%&amp;quot;&amp;gt;umask 022&amp;lt;/pre&amp;gt;&lt;br /&gt;
and change it to&lt;br /&gt;
&amp;lt;pre width=&amp;quot;30%&amp;quot;&amp;gt;umask 002&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To make your change take effect immediately, execute the following command in all your open shells:&lt;br /&gt;
&amp;lt;pre width=&amp;quot;30%&amp;quot;&amp;gt;source ~/.environment&amp;lt;/pre&amp;gt;&lt;br /&gt;
If that gives you an error, try the following instead:&lt;br /&gt;
&amp;lt;pre width=&amp;quot;30%&amp;quot;&amp;gt;. ~/.environment&amp;lt;/pre&amp;gt;&lt;br /&gt;
You can check that it worked by running &amp;lt;tt&amp;gt;umask&amp;lt;/tt&amp;gt;; the result should be &amp;lt;tt&amp;gt;002&amp;lt;/tt&amp;gt;.  From now on, any files you create from the command line will be writeable by the group.&lt;br /&gt;
&lt;br /&gt;
=== Commands you should know for dealing with permissions ===&lt;br /&gt;
Type &amp;lt;code&amp;gt;man &amp;amp;lt;command&amp;amp;gt;&amp;lt;/code&amp;gt; at the command line to get information about any of the following:&lt;br /&gt;
* &amp;lt;tt&amp;gt;umask&amp;lt;/tt&amp;gt; --- view or set the umask&lt;br /&gt;
* &amp;lt;tt&amp;gt;chmod&amp;lt;/tt&amp;gt; --- change the permissions for a file or directory&lt;br /&gt;
* &amp;lt;tt&amp;gt;chown&amp;lt;/tt&amp;gt; --- change the owner of a file or directory (only allowed if you are the owner)&lt;br /&gt;
&lt;br /&gt;
== Development Environment ==&lt;br /&gt;
&lt;br /&gt;
The graphics group has developed a system over many years that allows easy development of a large, shared base of software.  We give the whole thing the nickname &amp;lt;tt&amp;gt;[[$G]]&amp;lt;/tt&amp;gt; (&amp;quot;dollar gee&amp;quot;), named after the environment variable that represents the root of the source tree.&lt;br /&gt;
&lt;br /&gt;
There source code our group has created is modified and backed up through a source control system called CVS (Concurrent Versioning System).  You must have CVS set up properly in order to develop with our shared codebase.&lt;br /&gt;
&lt;br /&gt;
Source control works by allowing an individual user to make structured copies of the master versions of files (this process is called &amp;quot;checking out&amp;quot; the files).  The user then modifies his or her personal copies of the files, and then &amp;quot;checks in&amp;quot; the changes once they&#039;re certain that the code compiles and runs properly.  The location where a user modifies a personal copy of shared code is called a &amp;quot;sandbox&amp;quot;, because it is in some sense walled off from the master copy: destructive changes to the code in the sandbox do not affect the master copy, provided the user doesn&#039;t check them in.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Access to CVS ===&lt;br /&gt;
&lt;br /&gt;
Environment variables are used to configure the development environment.  General instructions for setting up environment variables and using them.&lt;br /&gt;
&lt;br /&gt;
[[Setting Environment Variables]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Linux:  &amp;lt;code&amp;gt;CVSROOT is /map/gfx0/cvsroot/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Windows set CVSROOT to:  &amp;lt;code&amp;gt;Y:\map\gfx0\cvsroot\&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Setting up &amp;lt;tt&amp;gt;$G&amp;lt;/tt&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Creating a development sandbox ===&lt;br /&gt;
&lt;br /&gt;
Your sandbox is the area where you work.  It can be any directory, but the area &amp;lt;code&amp;gt;/map/gfx0/users/&amp;amp;lt;Login Id&amp;amp;gt;&amp;lt;/code&amp;gt; is set aside for students in the graphics group.  Create a directory there to work in or if you&#039;d like also create a subdirectory to work in.  To create your own sandbox, do the following (the &amp;quot;&amp;lt;tt&amp;gt;&amp;amp;gt;&amp;lt;/tt&amp;gt;&amp;quot; just indicates the beginning of each command):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt; cd /map/gfx0/users&lt;br /&gt;
&amp;gt; mkdir -p $USER&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can get a private copy of all source code migrated to the [[dollarg 2009| new version of &amp;lt;tt&amp;gt;$G&amp;lt;/tt&amp;gt;]] by executing the following command afterward:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt; cd   &amp;lt;Sandbox&amp;gt;&lt;br /&gt;
&amp;gt; cvs co common project&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;common&#039;&#039;&#039; directory contains software shared by projects and the &#039;&#039;&#039;project&#039;&#039;&#039; directory contains student applications.  There are two other directories of interest.  One is the &#039;&#039;&#039;import&#039;&#039;&#039; directory which is where third party software is installed.  The other is the &#039;&#039;&#039;install_linux&#039;&#039;&#039; or &#039;&#039;&#039;install_WIN32&#039;&#039;&#039; directory.  This is where software that you build is installed when you perform a &#039;&#039;&#039;&amp;quot;make install&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
All of these directories can be arranged to suite your needs.  If you are just getting started just create them all at the top level of your sandbox.  For now just create the top level directories and populate them later.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt; mkdir import&lt;br /&gt;
&amp;gt; mkdir install_linux&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Setting Environment Variables ===&lt;br /&gt;
&lt;br /&gt;
There are several environment variables to set up.  You can set these up in your login scripts along with the setting for CVSROOT.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;GARCH&#039;&#039;&#039;:  Designate the platform architecture.&lt;br /&gt;
&lt;br /&gt;
 GARCH = WIN32           # Use this setting on Windows.&lt;br /&gt;
 GARCH = linux           # Use this setting on Linux.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;G&#039;&#039;&#039;:  This is used to access the G Build system and is set to the location of the common directory.  By default it is also used to access the &#039;&#039;&#039;import&#039;&#039;&#039; directory.  If your sandbox is at the top of your users&#039; directory then set:&lt;br /&gt;
&lt;br /&gt;
 G = /map/gfx0/users/&amp;amp;lt;login&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;GROOT&#039;&#039;&#039;:  At Brown this variable is used to access these directories:&lt;br /&gt;
&lt;br /&gt;
  $GROOT/data          # Contains large data sets.&lt;br /&gt;
  $GROOT/users         # Work areas for end users.&lt;br /&gt;
&lt;br /&gt;
 GROOT = /map/gfx0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;GTO&#039;&#039;&#039;:  This is the location of the install directories.  Usually you will want to keep them at the top of your sandbox then it will be the same as $G.&lt;br /&gt;
&lt;br /&gt;
 GTO = $G&lt;br /&gt;
&lt;br /&gt;
== Development Best Practices ==&lt;br /&gt;
&lt;br /&gt;
=== Minimal Coding Standards ===&lt;br /&gt;
&lt;br /&gt;
* Tabs are only meaningful in your edit session.&lt;br /&gt;
Do not use tabs (except in Makefiles as needed).&lt;br /&gt;
Indent 4 spaces, but 3 is okay if you prefer.&lt;br /&gt;
&lt;br /&gt;
* Name script files with suffixes.&lt;br /&gt;
Use Python for scripts (very portable).&lt;br /&gt;
Avoid reliance on Cygwin.&lt;br /&gt;
&lt;br /&gt;
* Commenting code does not slow progress.&lt;br /&gt;
If you make it a habit it speeds things up.&lt;br /&gt;
At a minimum write a method’s purpose and parameter usage.&lt;br /&gt;
&lt;br /&gt;
* Linux file system links are not portable.  Never use them.&lt;br /&gt;
&lt;br /&gt;
=== Coding in C++ ===&lt;br /&gt;
&lt;br /&gt;
* Use  .cpp  and  .h  suffixes for c++ source file names.  Not:   .C  and  .H&lt;br /&gt;
&lt;br /&gt;
* Avoid conditional compilation (#ifdef).&lt;br /&gt;
&lt;br /&gt;
* Use brackets around code bodies over multiple lines.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Evil:     if   (condition)&lt;br /&gt;
               action;&lt;br /&gt;
&lt;br /&gt;
Good:     if   (condition)   action;            if  (condition)  { action };&lt;br /&gt;
&lt;br /&gt;
          if   (condition)                      if  (condition)&lt;br /&gt;
          {     action;                         {&lt;br /&gt;
          }                                         action;&lt;br /&gt;
                                                }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Line up brackets so they are easier to match visually.&lt;br /&gt;
&lt;br /&gt;
* Do not #include .cpp files.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:HOWTO]][[Category:$G HOWTO]][[Category:Software Development]]&lt;/div&gt;</summary>
		<author><name>Trevor O&#039;Brien</name></author>
	</entry>
	<entry>
		<id>http://vrl.cs.brown.edu/wiki/index.php?title=Software_Development&amp;diff=4079</id>
		<title>Software Development</title>
		<link rel="alternate" type="text/html" href="http://vrl.cs.brown.edu/wiki/index.php?title=Software_Development&amp;diff=4079"/>
		<updated>2010-04-19T15:16:35Z</updated>

		<summary type="html">&lt;p&gt;Trevor O&amp;#039;Brien: New page: * Coding conventions and best practices * Get started with $G * Check out existing projects * [[Contribute to projects|Cont...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* [[Coding Conventions|Coding conventions and best practices]]&lt;br /&gt;
* [[$G in Practice|Get started with $G]]&lt;br /&gt;
* [[Check out projects|Check out existing projects]]&lt;br /&gt;
* [[Contribute to projects|Contribute to existing projects]]&lt;br /&gt;
* [[Add a project]]&lt;br /&gt;
** [[Add a new project]]&lt;br /&gt;
** [[Port existing project|Port existing project to the new $G]]&lt;br /&gt;
* [[Software tests|Create and automate software tests]]&lt;br /&gt;
* [[Software demos|Create and install software demos]]&lt;br /&gt;
* [[Distribute software|Distribute software and data]]&lt;br /&gt;
* [[Install 3rd party code|Install 3rd-party programs or libraries]]&lt;/div&gt;</summary>
		<author><name>Trevor O&#039;Brien</name></author>
	</entry>
	<entry>
		<id>http://vrl.cs.brown.edu/wiki/index.php?title=Main_Page&amp;diff=4078</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="http://vrl.cs.brown.edu/wiki/index.php?title=Main_Page&amp;diff=4078"/>
		<updated>2010-04-19T15:15:35Z</updated>

		<summary type="html">&lt;p&gt;Trevor O&amp;#039;Brien: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__  __NOEDITSECTION__&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
&lt;br /&gt;
------------------------------Banner across top of page------------------------------&amp;gt;&lt;br /&gt;
{| style=&amp;quot;width:100%; background:#fcfcfc; margin-top:1.2em; border:1px solid #ccc; text-align:center; white-space:nowrap; color:#000;&amp;quot;&lt;br /&gt;
| &amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
-----------Welcome and article count----------&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size:162%; border:none; margin:0; padding:.1em; color:#000;&amp;quot;&amp;gt;Welcome to the [[VrlWiki]],&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;top:+0.2em; font-size:95%;&amp;quot;&amp;gt;a [[wikipedia:Wiki|user-editable]] repository of information for the [http://www.brown.edu Brown University] [http://vis.cs.brown.edu Visualization Research Lab].&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;articlecount&amp;quot; style=&amp;quot;width:100%; text-align:center; font-size:85%;&amp;quot;&amp;gt;There are [[Special:Statistics|{{NUMBEROFARTICLES}}]] articles so far in the wiki.&amp;lt;/div&amp;gt;&lt;br /&gt;
Red links below indicate pages that should exist but haven&#039;t yet been created.  If you know something, write something!&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
-------------------------Left box------------------------&amp;gt;&lt;br /&gt;
{|style=&amp;quot;margin:0px 0px 0px 0px; background:none;&amp;quot;&lt;br /&gt;
|class=&amp;quot;MainPageBG&amp;quot; style=&amp;quot;width:50%; border:1px solid #cef2e0; background:#f5fffa; vertical-align:top; color:#000;&amp;quot;|&lt;br /&gt;
{|width=&amp;quot;100%&amp;quot; cellpadding=&amp;quot;2&amp;quot; cellspacing=&amp;quot;5&amp;quot; style=&amp;quot;vertical-align:top; background:#f5fffa;&amp;quot;&lt;br /&gt;
! &amp;lt;h2 style=&amp;quot;margin:0; background:#cef2e0; font-size:120%; font-weight:bold; border:1px solid #a3bfb1; text-align:left; color:#000; padding:0.2em 0.4em;&amp;quot;&amp;gt;[[:Category:VRL|VRL]]&amp;lt;/h2&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;color:#000;&amp;quot;|&lt;br /&gt;
* [[VRL|About the VRL]]&lt;br /&gt;
* [[Plans and Goals]]&lt;br /&gt;
* [[Nascent Papers]]&lt;br /&gt;
* [[Job Jar]]&lt;br /&gt;
* [[Vis Nuggets 08]]&lt;br /&gt;
* [[SciVis Meetings|Research Group Meetings]]&lt;br /&gt;
* [[Advising Meetings]]&lt;br /&gt;
* [[SciVis Reading Group]]&lt;br /&gt;
* [[Courses]]&lt;br /&gt;
* [[Demo Menu]]&lt;br /&gt;
|-&lt;br /&gt;
! &amp;lt;h2 style=&amp;quot;margin:0; background:#cef2e0; font-size:120%; font-weight:bold; border:1px solid #a3bfb1; text-align:left; color:#000; padding:0.2em 0.4em;&amp;quot;&amp;gt;[[:Category:IT Tools|IT Tools]]&amp;lt;/h2&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;color:#000;&amp;quot;|&lt;br /&gt;
* [[VrlWiki]]&lt;br /&gt;
* [[Visweb]]&lt;br /&gt;
* [[$G]]&lt;br /&gt;
* [[Source Control]]&lt;br /&gt;
* [[Build System]]&lt;br /&gt;
* [[Computing Resources]]&lt;br /&gt;
|-&lt;br /&gt;
! &amp;lt;h2 style=&amp;quot;margin:0; background:#cef2e0; font-size:120%; font-weight:bold; border:1px solid #a3bfb1; text-align:left; color:#000; padding:0.2em 0.4em;&amp;quot;&amp;gt;[[:Category:Projects|Projects]]&amp;lt;/h2&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;color:#000;&amp;quot;|&lt;br /&gt;
* Interdisciplinary Research&lt;br /&gt;
** [[2D Scalar Fields]]&lt;br /&gt;
** [[Art and Visualization]]&lt;br /&gt;
** [[Bats]]&lt;br /&gt;
** [[Chewing]]&lt;br /&gt;
** [[Diffusion MRI]]&lt;br /&gt;
** [[Fluid Flow]]&lt;br /&gt;
** [[Protein Networks]]&lt;br /&gt;
** [[Wrists]]&lt;br /&gt;
* [[:Category:Software|Support Software]]&lt;br /&gt;
** [[G3D|G3D/VRG3D]]&lt;br /&gt;
** [[Gluebase]]&lt;br /&gt;
** [[Inspace]]&lt;br /&gt;
* [[:Category:Hardware|Support Hardware]]&lt;br /&gt;
** [[CAVE]]&lt;br /&gt;
** [[New CAVE Design]]&lt;br /&gt;
** [[Powerwall]]&lt;br /&gt;
** [[Fishtank]]&lt;br /&gt;
** [[Wheatstone]]&lt;br /&gt;
|}&lt;br /&gt;
|style=&amp;quot;border:1px solid transparent&amp;quot;|&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
--------------------------------Right box-------------------------------&amp;gt;&lt;br /&gt;
|class=&amp;quot;MainPageBG&amp;quot; style=&amp;quot;width:50%; border:1px solid #cedff2; background:#f5faff; vertical-align:top;&amp;quot;|&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; cellpadding=&amp;quot;2&amp;quot; cellspacing=&amp;quot;5&amp;quot; style=&amp;quot;vertical-align:top; background:#f5faff;&amp;quot;&lt;br /&gt;
! &amp;lt;h2 style=&amp;quot;margin:0; background:#cedff2; font-size:120%; font-weight:bold; border:1px solid #a3b0bf; text-align:left; color:#000; padding:0.2em 0.4em;&amp;quot;&amp;gt;[[:Category:HOWTO|HOWTO]]&amp;lt;/h2&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;color:#000;&amp;quot;|&lt;br /&gt;
* Research&lt;br /&gt;
** [[Find a project]]&lt;br /&gt;
** [[Write a paper]]&lt;br /&gt;
** [[Do a literature search]]&lt;br /&gt;
** [[Find collaborators]]&lt;br /&gt;
** [[Get certified to work with human subjects]]&lt;br /&gt;
** [[Get certified to run an MRI scanner]]&lt;br /&gt;
** [[Store data]]&lt;br /&gt;
** [[Statistics And Graphs|Analyze Data]]&lt;br /&gt;
** [[Write a grant proposal]]&lt;br /&gt;
&lt;br /&gt;
* [[Software Development]]&lt;br /&gt;
** [[Coding Conventions|Coding conventions and best practices]]&lt;br /&gt;
** [[$G in Practice|Get started with $G]]&lt;br /&gt;
** [[Check out projects|Check out existing projects]]&lt;br /&gt;
** [[Contribute to projects|Contribute to existing projects]]&lt;br /&gt;
** [[Add a project]]&lt;br /&gt;
*** [[Add a new project]]&lt;br /&gt;
*** [[Port existing project|Port existing project to the new $G]]&lt;br /&gt;
** [[Software tests|Create and automate software tests]]&lt;br /&gt;
** [[Software demos|Create and install software demos]]&lt;br /&gt;
** [[Distribute software|Distribute software and data]]&lt;br /&gt;
** [[Install 3rd party code|Install 3rd-party programs or libraries]]&lt;br /&gt;
&lt;br /&gt;
* Dissemination&lt;br /&gt;
** [[Pick a destination for your project]]&lt;br /&gt;
** [[Submit a paper]]&lt;br /&gt;
** [[Make a poster]]&lt;br /&gt;
** [[Give a talk]]&lt;br /&gt;
** [[Run a demo]]&lt;br /&gt;
** [[Distribute software tools]]&lt;br /&gt;
&lt;br /&gt;
* Finishing Up&lt;br /&gt;
** [[Find a job]]&lt;br /&gt;
** [[Propose your PhD]]&lt;br /&gt;
** [[Defend you PhD]]&lt;br /&gt;
|}&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Trevor O&#039;Brien</name></author>
	</entry>
	<entry>
		<id>http://vrl.cs.brown.edu/wiki/index.php?title=Plans_and_Goals&amp;diff=3974</id>
		<title>Plans and Goals</title>
		<link rel="alternate" type="text/html" href="http://vrl.cs.brown.edu/wiki/index.php?title=Plans_and_Goals&amp;diff=3974"/>
		<updated>2010-01-12T18:36:10Z</updated>

		<summary type="html">&lt;p&gt;Trevor O&amp;#039;Brien: /* Current Plans and Goals (Spring &amp;#039;10) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;On this page the members of the [[VRL]] record and refine their goals for the current semester.  This is a living document in which [[dhl]] will provide feedback.  See the bottom of the page for links to past plans &amp;amp; goals documents.&lt;br /&gt;
&lt;br /&gt;
== Current Schedule ==&lt;br /&gt;
Meetings are on Tuesdays.&lt;br /&gt;
&lt;br /&gt;
* 1:50 - jadrian&lt;br /&gt;
* 2:00 - wenjin&lt;br /&gt;
* 2:10 - eni&lt;br /&gt;
* 2:20 - jadrian&lt;br /&gt;
* 2:30 - bb&lt;br /&gt;
* 2:40 - dtr&lt;br /&gt;
* 2:50 - trevor&lt;br /&gt;
* 3:00 - cad&lt;br /&gt;
* 3:10 - steve&lt;br /&gt;
* 3:20 - radu&lt;br /&gt;
&lt;br /&gt;
== Current Plans and Goals (Spring &#039;10) ==&lt;br /&gt;
&lt;br /&gt;
=== [[User:Brad Berg|Brad]] ===&lt;br /&gt;
&lt;br /&gt;
Projects&lt;br /&gt;
&lt;br /&gt;
* Support the ongoing projects including collaborators.  Active projects are wrist, brain, adviser, and protein.&lt;br /&gt;
&lt;br /&gt;
* Assist Radu to integrate a test and any recent code.&lt;br /&gt;
&lt;br /&gt;
* Contribute to the design and development of the new cave.  This includes integrating g3d, vrpn and hosting vrg3d.  Once the software is running simplify the configuration and provide a quick start path for student projects.&lt;br /&gt;
&lt;br /&gt;
* Set up a distribution of diffusion imaging data.&lt;br /&gt;
&lt;br /&gt;
Infrastructure&lt;br /&gt;
&lt;br /&gt;
* Continue to write Wiki entries as needed.&lt;br /&gt;
&lt;br /&gt;
* Continue setting up external software for students to use. Current imported packages are:  blitz, cg, g3d, qt, camino, dtk, vrpn, glut, and sdl.&lt;br /&gt;
&lt;br /&gt;
* Finish extending make files for local installs and kits for source and binary distributions.&lt;br /&gt;
&lt;br /&gt;
* Continue to make improvements to the make files so they are easier to use.&lt;br /&gt;
&lt;br /&gt;
* Upgrade migrated Linux code to work with gcc 4.3.&lt;br /&gt;
&lt;br /&gt;
* Continue to integrate any new tests written by students into nightly test runs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Finish integrating the new version of the Nag libraries.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Knowledge&lt;br /&gt;
&lt;br /&gt;
* Learn more about the cave; particularly vrg3d software development.&lt;br /&gt;
&lt;br /&gt;
* Meet (SciVis talk) with students to address any integration issues.&lt;br /&gt;
&lt;br /&gt;
* Learn how to manage a project using Source Forge.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
=== David ===&lt;br /&gt;
#get diffusion normals, one library, and one executable distributed&lt;br /&gt;
#wrist proposal submission (check with Trey?)&lt;br /&gt;
#support 5 phd students&#039; + trevor&#039;s progress&lt;br /&gt;
#write a plan for HCI modeling work&lt;br /&gt;
#minimize professional service&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== [[User:Steven Gomez|Steve]] ===&lt;br /&gt;
# Staying on track for candidacy&lt;br /&gt;
## Complete programming comp (late January)&lt;br /&gt;
## Complete research comp proposal and presentation to committee (mid April)&lt;br /&gt;
## Do well in courses&lt;br /&gt;
# Research goals&lt;br /&gt;
## Explore current research in HCI related to creativity, and user interaction modeling&lt;br /&gt;
## Identify significant, well-scoped research project in this area for the research comp proposal&lt;br /&gt;
## Develop research skills, including paper reading/analysis and learning to communicate effectively&lt;br /&gt;
# Other academic goals&lt;br /&gt;
## Work on collaboration skills (finding and communicating with colleagues in or outside of CS)&lt;br /&gt;
## Work on time management and project planning&lt;br /&gt;
## Learn what working with DHL is like, his expectations, etc.&lt;br /&gt;
## Plan for the summer&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== [[User:Trevor O&#039;Brien|Trevor]] ===&lt;br /&gt;
&lt;br /&gt;
# I3D poster &amp;amp; demo&lt;br /&gt;
## Revised abstract: January 29&lt;br /&gt;
## Conference: February 19th (poster complete by February 17)&lt;br /&gt;
# Vis Papers - Iterate often&lt;br /&gt;
## Abstract: March 21&lt;br /&gt;
## Full paper: March 31&lt;br /&gt;
### Gene visualization paper&lt;br /&gt;
### Confocal microscopy paper &lt;br /&gt;
# Genome Research paper &lt;br /&gt;
# Grad TA for CS224&lt;br /&gt;
# Paper with Paul Kulesa&lt;br /&gt;
## Define goals contributions from Vis perspective&lt;br /&gt;
# Look for themes between work with Paul, Trey, and maybe Ben&lt;br /&gt;
## Coordinate spaces? (Tensor invariances?)&lt;br /&gt;
## Morphometrics? (Non-dimensionalization)&lt;br /&gt;
## Other feature detection?&lt;br /&gt;
# Organize code, papers, tools, other resources to be backed up, handed off&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Wenjin ===&lt;br /&gt;
# Submit to MICCAI (March 11th) + good collaboration with Matt&lt;br /&gt;
# Prepare histology data - do homework about the right path to choose, acquire, and prepare the tissue&lt;br /&gt;
# Derive and test optimal double-PGSE imaging on Brown 3T scanner&lt;br /&gt;
# Propose by 10/15&lt;br /&gt;
# Prepare for MRM/TMI journal submission&lt;br /&gt;
&lt;br /&gt;
== Current Plans and Goals (Fall &#039;09) ==&lt;br /&gt;
&lt;br /&gt;
=== Çağatay ===&lt;br /&gt;
# Incorporate feedback from the committee into the[[:Image:Çağatay&#039;s_thesis_ideas.pdf | proposal]]&lt;br /&gt;
# Start working realizing the finalized proposal. &lt;br /&gt;
# Submit the histogram embedding work to ISMRM. &lt;br /&gt;
# Submit the surface deformation work to SIGGRAPH.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== [[User:Andy Forsberg|Andy]] ===&lt;br /&gt;
# mri/wrist&lt;br /&gt;
## tools&lt;br /&gt;
### registration, classification, distance-field calculation, bone proximity calc.&lt;br /&gt;
### graphical visualization/verification?&lt;br /&gt;
## modeling?&lt;br /&gt;
# $G (nightly tests, architecture, outside test-case = ADVISER)&lt;br /&gt;
# future funding candidates&lt;br /&gt;
## volume data visualization/analysis&lt;br /&gt;
## flow visualization w/ leopold/GK&lt;br /&gt;
## other?&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== [[User:Brad Berg|Brad]] ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Projects&lt;br /&gt;
&lt;br /&gt;
* Support the ongoing projects including collaborators.  Active projects are wrist, brainapp, adviser, and protein.&lt;br /&gt;
&lt;br /&gt;
* Assist Radu to integrate a test and any recent code.&lt;br /&gt;
&lt;br /&gt;
* Contribute to the design of the new cave.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Infrastructure&lt;br /&gt;
&lt;br /&gt;
* Continue to write Wiki entries as needed.&lt;br /&gt;
&lt;br /&gt;
* Continue setting up external software for students to use. Current imported packages are:  blitz, cg, g3d, qt, and xerces&lt;br /&gt;
&lt;br /&gt;
* Extend make files for local installs and kits for source and binary distributions.&lt;br /&gt;
&lt;br /&gt;
* Continue to make improvements to the make files so they are easier to use and to provide Windows support.&lt;br /&gt;
&lt;br /&gt;
* Upgrade migrated Linux code to work with gcc 4.3.&lt;br /&gt;
&lt;br /&gt;
* Continue to integrate any new tests written by students into nightly test runs.&lt;br /&gt;
&lt;br /&gt;
* Integrate the new version of the Nag libraries.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Knowledge&lt;br /&gt;
&lt;br /&gt;
* Learn more about the cave; particularly software development.&lt;br /&gt;
&lt;br /&gt;
* Meet (SciVis talk) with students to address any integration issues.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Çağatay ===&lt;br /&gt;
# Incorporate feedback from the committee into the[[:Image:Çağatay&#039;s_thesis_ideas.pdf | proposal]]&lt;br /&gt;
# Start working realizing the finalized proposal. &lt;br /&gt;
# Submit the histogram embedding work to ISMRM. &lt;br /&gt;
# Submit the surface deformation work to SIGGRAPH.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== David ===&lt;br /&gt;
#figure out software and data dissemination and get implemented with bb&#039;s help [some progress, more next semester]&lt;br /&gt;
#wrist proposal submission [not sure where this went with Trey]&lt;br /&gt;
#harvard stuff moving; read Janeway? [good meeting in Boston]&lt;br /&gt;
#support 6 phd students&#039; progress [all proposals done!]&lt;br /&gt;
#write a plan for HCI modeling work (draft by 10/23, rev by 11/20) [not enough structure]&lt;br /&gt;
#minimize professional service [less successful than hoped]&lt;br /&gt;
#vis2011 sited, early committee defined after Vis by 10/16 [contract signed, delaying committee]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Eni ===&lt;br /&gt;
&lt;br /&gt;
*submit tract integrity vs. cognitive tests abstract and histograms abstract to ismrm&lt;br /&gt;
*possibly write a paper on the wrist comparison study (old/new subjects) &lt;br /&gt;
*while working on different wrist problems, think of a problem I might want to focus on&lt;br /&gt;
*do well in the courses I&#039;m taking&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== [[User:Jadrian Miles|Jadrian]] ===&lt;br /&gt;
[[:Image:Jadrian Miles PhD Proposal original 2009-06-22.pdf‎|Initial thesis proposal, submitted 2009-06-22]]&lt;br /&gt;
&lt;br /&gt;
# Incorporate committee&#039;s comments into my proposal by 2009-10-15&lt;br /&gt;
#* Revision complete 2009-10-15&lt;br /&gt;
# Make a list of papers to spawn from the proposal by 2009-10-15&lt;br /&gt;
#* {{red|Incomplete}}&lt;br /&gt;
# Decide with dhl on the role of animal models in the proposal&lt;br /&gt;
#* Histological &amp;quot;wetwork&amp;quot; will play an important role in the research; significant planning and collaboration-building took place this semester&lt;br /&gt;
# Finish clustering code sufficient for an initial version of the backsolving system&lt;br /&gt;
#* {{red|Incomplete}}&lt;br /&gt;
# Find or build implementations of a more sophisticated tractography technique (Q-ball or Gordon&#039;s multi-tensor)&lt;br /&gt;
#* DTK &amp;amp;amp; Trackvis installed and working with current data as of 2009-11-04&lt;br /&gt;
# Work with Ed Walsh, dhl, and wzhou to settle on some HARDI parameters&lt;br /&gt;
#* {{red|Scan parameters have not been decided}} but ongoing work with Steve&#039;s group is teaching us all more about parameter tradeoffs&lt;br /&gt;
# Take one HARDI scan by 2009-11-24&lt;br /&gt;
#* {{red|No new scan was acquired this fall}}, pending a decision about scan parameters&lt;br /&gt;
# Get DifSim (the MCell-based UCSD diffusion simulator) installed and working here&lt;br /&gt;
#* {{red|Not installed}} due to ongoing license issues, but I&#039;m in communication with the developers and confident that it&#039;ll work out&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Radu ===&lt;br /&gt;
# Deploy existing visualization tools by Oct 15 (in Labs and in CVS - Protein-version2, Clustering apps)&lt;br /&gt;
# Migrate BrainApp functionality to the new framework by Nov 1 (help from Cagatay and Eni)&lt;br /&gt;
# Test usefulness of the QT vis framework (on Cagatay); if useful deploy by Nov 1&lt;br /&gt;
# Advance Immgen&lt;br /&gt;
## Write report for next year&lt;br /&gt;
## Daphne-data vis prototype by Nov 1&lt;br /&gt;
## Genome-google maps operation by Oct1&lt;br /&gt;
## Broad display operational&lt;br /&gt;
## Paper on analyzing and disseminating large visualizations?&lt;br /&gt;
# Gather vis tools usage data&lt;br /&gt;
# Proposal&lt;br /&gt;
## Gather, read and summarize cogsci and linked visualization literature&lt;br /&gt;
# 2D interaction on stream-tubes study? Paper?&lt;br /&gt;
# Successful Vis talk&lt;br /&gt;
# Proposal is [http://cs.brown.edu/people/jr/proposal_jr.pdf here]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Trevor ===&lt;br /&gt;
&lt;br /&gt;
#  Research comps!&lt;br /&gt;
#  Review and address EuroVis reviews for cell paper.  &lt;br /&gt;
## Submit to PacVis?&lt;br /&gt;
#  Research comps work --&amp;gt; i3d submission.&lt;br /&gt;
#  Narrow long term focus.&lt;br /&gt;
#  Foster collaborations:&lt;br /&gt;
## Paul Kulesa&lt;br /&gt;
## Trey Crisco&lt;br /&gt;
## Sharon Swartz&lt;br /&gt;
#  Finish course requirements.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Wenjin ===&lt;br /&gt;
&lt;br /&gt;
* Finalize [http://cs.brown.edu/~wzhou/proposal_wzhou.pdf Proposal]: incorporate feedback from committee in NIH format&lt;br /&gt;
* Survive NEUR 1650&lt;br /&gt;
* Analytical model tested on simulation data to accomplish 1-2 of the following (based on current limitations):&lt;br /&gt;
** estimate axon parameter for unknown fiber direction&lt;br /&gt;
** recover small axon radii &amp;lt; 4 micrometer&lt;br /&gt;
** estimation with clinically achievable acquisitions&lt;br /&gt;
** build and evaluate 4-compartment model with water exchange vs. 2-compartment &lt;br /&gt;
* Derive and test optimal imaging parameters on Brown 3T scanner&lt;br /&gt;
* submit to ISMRM (Nov. 10th) or MICCAI in March&lt;br /&gt;
* prepare for MRM/TMI journal submission&lt;br /&gt;
&lt;br /&gt;
=== [[User:Steven Gomez|Steve]] ===&lt;br /&gt;
&lt;br /&gt;
Course work&lt;br /&gt;
* Explore courses that may be relevant to research interests, or may help me think more outside-the-box&lt;br /&gt;
* Use project classes to explore interests in graphics, vis, hci&lt;br /&gt;
&lt;br /&gt;
Research&lt;br /&gt;
* Draft R&amp;amp;R plan for spring semester by 11/15&lt;br /&gt;
* Start thinking about research comp ideas and proposal by 11/15&lt;br /&gt;
* Contribute to the VRL however I can&lt;br /&gt;
* Search through past ideas/projects worth investigating more by 10/1&lt;br /&gt;
** Online raytracing with voronoi diagrams?&lt;br /&gt;
** Interfaces that learn?&lt;br /&gt;
&lt;br /&gt;
Personal&lt;br /&gt;
* Get adjusted to Brown, Providence, graduate school&lt;br /&gt;
** Work on time management, organization&lt;br /&gt;
* Pass programming comp in January&lt;br /&gt;
&lt;br /&gt;
== Past Plans and Goals ==&lt;br /&gt;
* [[/Summer 2009|Summer &#039;09]]&lt;br /&gt;
* [[/Spring 2009|Spring &#039;09]]&lt;br /&gt;
* [[/Fall 2008|Fall &#039;08]]&lt;br /&gt;
* [http://sites.google.com/a/vis.cs.brown.edu/collaboravis/Home/summer-08-group-goals Summer &#039;08]&lt;br /&gt;
&lt;br /&gt;
[[Category:VRL]]&lt;/div&gt;</summary>
		<author><name>Trevor O&#039;Brien</name></author>
	</entry>
	<entry>
		<id>http://vrl.cs.brown.edu/wiki/index.php?title=Plans_and_Goals&amp;diff=3753</id>
		<title>Plans and Goals</title>
		<link rel="alternate" type="text/html" href="http://vrl.cs.brown.edu/wiki/index.php?title=Plans_and_Goals&amp;diff=3753"/>
		<updated>2009-09-14T18:43:05Z</updated>

		<summary type="html">&lt;p&gt;Trevor O&amp;#039;Brien: /* Trevor */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;On this page the members of the [[VRL]] record and refine their goals for the current semester.  This is a living document in which [[dhl]] will provide feedback.  See the bottom of the page for links to past plans &amp;amp; goals documents.&lt;br /&gt;
&lt;br /&gt;
== Current Schedule ==&lt;br /&gt;
Meetings are on Monday.&lt;br /&gt;
&lt;br /&gt;
* 2:00 - [[User:Andrew_Forsberg/Meeting_Notes|asf]]&lt;br /&gt;
* 2:10 - jadrian&lt;br /&gt;
* 2:20 - radu&lt;br /&gt;
* 2:30 - Brad&lt;br /&gt;
* 2:40 - dtr&lt;br /&gt;
* 2:50 - trevor&lt;br /&gt;
* 3:00 - wzhou&lt;br /&gt;
* 3:10 - Eni&lt;br /&gt;
* 3:20 - cad&lt;br /&gt;
* 3:30 - Steve&lt;br /&gt;
&lt;br /&gt;
== Current Plans and Goals (Fall &#039;09) ==&lt;br /&gt;
&lt;br /&gt;
=== [[User:Andy Forsberg|Andy]] ===&lt;br /&gt;
# mri/wrist&lt;br /&gt;
## tools&lt;br /&gt;
### registration, classification, distance-field calculation, bone proximity calc.&lt;br /&gt;
### graphical visualization/verification?&lt;br /&gt;
## modeling?&lt;br /&gt;
# $G (nightly tests, architecture, outside test-case = ADVISER)&lt;br /&gt;
# future funding candidates&lt;br /&gt;
## volume data visualization/analysis&lt;br /&gt;
## flow visualization w/ leopold/GK&lt;br /&gt;
## other?&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== [[User:Brad Berg|Brad]] ===&lt;br /&gt;
&lt;br /&gt;
Projects&lt;br /&gt;
&lt;br /&gt;
* Support the ongoing projects including collaborators.  Active projects are wrist, brainapp, adviser, and protein.&lt;br /&gt;
&lt;br /&gt;
* Assist Radu to integrate a test and any recent code.&lt;br /&gt;
&lt;br /&gt;
* Contribute to the design of the new cave.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Infrastructure&lt;br /&gt;
&lt;br /&gt;
* Continue to write Wiki entries as needed.&lt;br /&gt;
&lt;br /&gt;
* Continue setting up external software for students to use. Current imported packages are:  blitz, cg, g3d, qt, and xerces&lt;br /&gt;
&lt;br /&gt;
* Extend make files for local installs and kits for source and binary distributions.&lt;br /&gt;
&lt;br /&gt;
* Continue to make improvements to the make files so they are easier to use and to provide Windows support.&lt;br /&gt;
&lt;br /&gt;
* Upgrade migrated Linux code to work with gcc 4.3.&lt;br /&gt;
&lt;br /&gt;
* Continue to integrate any new tests written by students into nightly test runs.&lt;br /&gt;
&lt;br /&gt;
* Integrate the new version of the Nag libraries.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Knowledge&lt;br /&gt;
&lt;br /&gt;
* Learn more about the cave; particularly software development.&lt;br /&gt;
&lt;br /&gt;
* Meet (SciVis talk) with students to address any integration issues.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Çağatay ===&lt;br /&gt;
# Incorporate feedback from the committee into the proposal.  &lt;br /&gt;
# Start working realizing the finalized proposal. &lt;br /&gt;
# Submit the histogram embedding work to ISMRM. &lt;br /&gt;
# Submit the surface deformation work to SIGGRAPH.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== David ===&lt;br /&gt;
#improve group infrastructure: sw, data, dissemination, tools (with help from bb, asf)&lt;br /&gt;
#wrist progress; dynamics; proposal submission?&lt;br /&gt;
#harvard stuff moving; read Janeway?&lt;br /&gt;
#four dissertation proposals in progress&lt;br /&gt;
#support PhD progress&lt;br /&gt;
#refine 5-year funding/sabbatical plan – outline some proposals&lt;br /&gt;
#minimize professional service&lt;br /&gt;
#successful Dagstuhl&lt;br /&gt;
#vis2011 sited, early committee defined&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Eni ===&lt;br /&gt;
&lt;br /&gt;
*submit tract integrity vs. cognitive tests abstract and histograms abstract to ismrm&lt;br /&gt;
*possibly write a paper on the wrist comparison study (old/new subjects) &lt;br /&gt;
*while working on different wrist problems, think of a problem I might want to focus on&lt;br /&gt;
*do well in the courses I&#039;m taking&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== [[User:Jadrian Miles|Jadrian]] ===&lt;br /&gt;
# Assemble a thesis committee and submit my proposal to them by 2009-06-15&lt;br /&gt;
# Incorporate committee&#039;s comments into my proposal by 2009-07-15&lt;br /&gt;
# Work with Win and dhl to figure out the b matrices for the new acquisition protocol&lt;br /&gt;
# Get Mark Bastin&#039;s scans processed by 2009-06-30&lt;br /&gt;
# Make a list of papers to spawn from aims A and B of the proposal&lt;br /&gt;
# Finish clustering code and implement a couple other curve similarity measures for comparison&lt;br /&gt;
# Find or build implementations of some more sophisticated tractography techniques&lt;br /&gt;
# Work with Steve&#039;s group to get a HARDI acquisition&lt;br /&gt;
# Start working on aim I of the proposal (diffusion simulation in a detailed microstructure model)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Jian ===&lt;br /&gt;
&lt;br /&gt;
# Papers / work:&lt;br /&gt;
## Finish the camber measurement paper ( first draft of the results section - by May 28)&lt;br /&gt;
## Finish the presence paper (accepted, by May 30)&lt;br /&gt;
## Finish the book chapter (accepted, by May 30)&lt;br /&gt;
## Finish the visualization paper whatever the result will be (by July 31st)&lt;br /&gt;
## Finish the display paper and submit it to TVCG (July 31st)&lt;br /&gt;
## Prepare the VR paper with a student at TJU (due in September, lead)&lt;br /&gt;
## Work on the vision paper (with the student + faculty at TJU) (invited)&lt;br /&gt;
# Career development:&lt;br /&gt;
## write up career goals and learning goals for the next 90 days and the next five years.&lt;br /&gt;
## Direct one student to work on the architecture project (for the VR paper)&lt;br /&gt;
## Direct one student to work on 3D interaction (get him to USM)&lt;br /&gt;
## inform others I will be moving&lt;br /&gt;
## improve time management / learn roles faculty to play&lt;br /&gt;
## Plan ahead for the new post (campus visit, lab space, facilities, collaborators)&lt;br /&gt;
# Travels:&lt;br /&gt;
## (maybe) ISBI (http://www.biomedicalimaging.org)&lt;br /&gt;
## SIGGRAPH (August 3-6)&lt;br /&gt;
## Campus visit (the end of June or the beginning of July)&lt;br /&gt;
## Leave the last week in July&lt;br /&gt;
# Learning:&lt;br /&gt;
## Shape&lt;br /&gt;
## continue to learn visualization + hci issues&lt;br /&gt;
## X3D&lt;br /&gt;
# Code:&lt;br /&gt;
## Work with Brad to get the measurement code accessible / reusable by other people&lt;br /&gt;
## Work with Brad to get other code bases tested before I leave&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Radu ===&lt;br /&gt;
# Deploy existing visualization tools by Oct 15 (in Labs and in CVS - Protein-version2, Clustering apps)&lt;br /&gt;
# Migrate BrainApp functionality to the new framework by Nov 1 (help from Cagatay and Eni)&lt;br /&gt;
# Test usefulness of the QT vis framework (on Cagatay); if useful deploy by Nov 1&lt;br /&gt;
# Advance Immgen&lt;br /&gt;
## Write report for next year&lt;br /&gt;
## Daphne-data vis prototype by Nov 1&lt;br /&gt;
## Genome-google maps operation by Oct1&lt;br /&gt;
## Broad display operational&lt;br /&gt;
## Paper on analyzing and disseminating large visualizations?&lt;br /&gt;
# Gather vis tools usage data&lt;br /&gt;
# Proposal&lt;br /&gt;
## Gather, read and summarize cogsci and linked visualization literature&lt;br /&gt;
# 2D interaction on stream-tubes study? Paper?&lt;br /&gt;
# Successful Vis talk&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
=== Trevor ===&lt;br /&gt;
&lt;br /&gt;
#  Research comps!&lt;br /&gt;
#  Review and address EuroVis reviews for cell paper.  &lt;br /&gt;
## Submit to PacVis?&lt;br /&gt;
#  Research comps work --&amp;gt; i3d submission.&lt;br /&gt;
#  Narrow long term focus.&lt;br /&gt;
#  Foster collaborations:&lt;br /&gt;
## Paul Kulesa&lt;br /&gt;
## Trey Crisco&lt;br /&gt;
## Sharon Swartz&lt;br /&gt;
#  Finish course requirements.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Wenjin ===&lt;br /&gt;
&lt;br /&gt;
* Finalize Proposal: incorporate feedback from committee in NIH format&lt;br /&gt;
* Survive NEUR 1650&lt;br /&gt;
* Analytical model tested on simulation data to accomplish 1-2 of the following (based on current limitations):&lt;br /&gt;
** estimate axon parameter for unknown fiber direction&lt;br /&gt;
** recover small axon radii &amp;lt; 0.4 micrometer&lt;br /&gt;
** estimation with clinically achievable acquisitions&lt;br /&gt;
** build and evaluate 4-compartment model with water exchange vs. 2-compartment &lt;br /&gt;
* Finalize optimal imaging parameters on Brown 3T scanner&lt;br /&gt;
* submit to ISMRM in Nov or MICCAI in March&lt;br /&gt;
* prepare for MRM/TMI journal submission&lt;br /&gt;
&lt;br /&gt;
=== [[User:Steven Gomez|Steve]] ===&lt;br /&gt;
&lt;br /&gt;
Course work&lt;br /&gt;
* Explore courses that may be relevant to research interests, or may help me think more outside-the-box&lt;br /&gt;
* Use project classes to explore interests in graphics, vis, hci&lt;br /&gt;
&lt;br /&gt;
Research&lt;br /&gt;
* Draft R&amp;amp;R plan for spring semester by 11/15&lt;br /&gt;
* Start thinking about research comp ideas and proposal by 11/15&lt;br /&gt;
* Contribute to the VRL however I can&lt;br /&gt;
* Search through past ideas/projects worth investigating more by 10/1&lt;br /&gt;
** Online raytracing with voronoi diagrams?&lt;br /&gt;
** Interfaces that learn?&lt;br /&gt;
&lt;br /&gt;
Personal&lt;br /&gt;
* Get adjusted to Brown, Providence, graduate school&lt;br /&gt;
** Work on time management, organization&lt;br /&gt;
* Pass programming comp in January&lt;br /&gt;
&lt;br /&gt;
== Past Plans and Goals ==&lt;br /&gt;
* [[/Summer 2009|Summer &#039;09]]&lt;br /&gt;
* [[/Spring 2009|Spring &#039;09]]&lt;br /&gt;
* [[/Fall 2008|Fall &#039;08]]&lt;br /&gt;
* [http://sites.google.com/a/vis.cs.brown.edu/collaboravis/Home/summer-08-group-goals Summer &#039;08]&lt;br /&gt;
&lt;br /&gt;
[[Category:VRL]]&lt;/div&gt;</summary>
		<author><name>Trevor O&#039;Brien</name></author>
	</entry>
	<entry>
		<id>http://vrl.cs.brown.edu/wiki/index.php?title=Plans_and_Goals&amp;diff=3396</id>
		<title>Plans and Goals</title>
		<link rel="alternate" type="text/html" href="http://vrl.cs.brown.edu/wiki/index.php?title=Plans_and_Goals&amp;diff=3396"/>
		<updated>2009-05-04T18:15:23Z</updated>

		<summary type="html">&lt;p&gt;Trevor O&amp;#039;Brien: /* Trevor */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;On this page the members of the [[VRL]] record and refine their goals for the current semester.  This is a living document in which [[dhl]] will provide feedback.  See the bottom of the page for links to past plans &amp;amp; goals documents.&lt;br /&gt;
&lt;br /&gt;
== Current Schedule ==&lt;br /&gt;
Meetings are on Monday.&lt;br /&gt;
&lt;br /&gt;
* 2:00 - [[User:Andrew_Forsberg/Meeting_Notes|asf]]&lt;br /&gt;
* 2:10 - jadrian&lt;br /&gt;
* 2:20 - radu&lt;br /&gt;
* 2:30 - Jian&lt;br /&gt;
* 2:40 - dtr&lt;br /&gt;
* 2:50 - trevor&lt;br /&gt;
* 3:00 - wzhou&lt;br /&gt;
* 3:10 - Eni&lt;br /&gt;
* 3:20&lt;br /&gt;
* 3:30 - Brad&lt;br /&gt;
* 3:40 - cad&lt;br /&gt;
* 3:50 - Laura&lt;br /&gt;
&lt;br /&gt;
== Current Plans and Goals ==&lt;br /&gt;
&lt;br /&gt;
=== [[User:Andy Forsberg|Andy]] ===&lt;br /&gt;
# comparison of 3d vector vis methods&lt;br /&gt;
## run subjects, analysis, complete paper, submit to vis&#039;09&lt;br /&gt;
# mri/wrist&lt;br /&gt;
## tools&lt;br /&gt;
### registration, classification, distance-field calculation, bone proximity calc.&lt;br /&gt;
### graphical visualization/verification?&lt;br /&gt;
## modeling?&lt;br /&gt;
# Potentially get involved in protein project, possibly pen UIs&lt;br /&gt;
# $G (nightly tests, architecture, outside test-case = ADVISER)&lt;br /&gt;
# future funding candidates&lt;br /&gt;
## volume data visualization/analysis&lt;br /&gt;
## flow visualization w/ leopold/GK&lt;br /&gt;
## other?&lt;br /&gt;
&lt;br /&gt;
Important dates&lt;br /&gt;
# 2/27 finish flow eval paper (Vis09 abstracts due 3/21, papers due 3/31) http://vis.computer.org/VisWeek2009/vis/&lt;br /&gt;
# 2/27 - 3/1 - I3D in Boston http://graphics.cs.williams.edu/i3d09/index.html&lt;br /&gt;
# 4/15 - SBIM http://sbim09.cse.wustl.edu/pages/importantDates.php&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== [[User:Brad Berg|Brad]] ===&lt;br /&gt;
&lt;br /&gt;
Projects&lt;br /&gt;
&lt;br /&gt;
* Migrate all of the wrist project before Evan leaves.&lt;br /&gt;
&lt;br /&gt;
* Support collaborators for the Protein project.&lt;br /&gt;
&lt;br /&gt;
* Continue to migrate active projects.&lt;br /&gt;
&lt;br /&gt;
* Begin migrating shared libraries.  Some will need to be migrated in conjunction with projects.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Infrastructure&lt;br /&gt;
&lt;br /&gt;
* Write Wiki entries for creating and building projects.&lt;br /&gt;
&lt;br /&gt;
* Identify external software for students to use.  Currently students download software based on their immediate needs.  By providing support for a small number of external packages it will make it possible to distribute their software faster and with less effort.  Students will have better support when they use common external software packages.&lt;br /&gt;
&lt;br /&gt;
* Extend make files for tests, local installs and kits for source and binary distributions.&lt;br /&gt;
&lt;br /&gt;
* Integrate new tests into nightly test runs.  This might involve upgrading the nightly test mechanism.  Tests will need to be written.  In order for students to write tests clear and simple procedures need to be in place.&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
Knowledge&lt;br /&gt;
&lt;br /&gt;
* It might be useful for me to sit in on CSCI 2950J.&lt;br /&gt;
&lt;br /&gt;
* As project migrations complete make documentation available so that new student developers can easily get started.&lt;br /&gt;
&lt;br /&gt;
* Provide support for novice CVS users.  Students should be able to check code in and out of CVS with a minimum of effort.  This will not only make it easier for students to participate, but will also protect the code base.  It is very easy to unintentionally damage files in CVS and the damage might go undetected for some time.  Recovery can be difficult.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Çağatay ===&lt;br /&gt;
# Present the phd thesis proposal.  &lt;br /&gt;
# Submit reeb graph of dt invariants to miccai (done -- simcolor work submitted instead)&lt;br /&gt;
# Submit line-field coloring to vis (done -- two papers submitted, as a result of a fruitful collaboration w/ Radu)&lt;br /&gt;
# Submit surface deformation to a journal.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== David ===&lt;br /&gt;
#cs295J (HCI+COG+VIS) runs smoothly: new research directions, class goals met&lt;br /&gt;
#improve group infrastructure: sw, data, dissemination, tools (with help from bb, asf)&lt;br /&gt;
#proto-papers incubator&lt;br /&gt;
#more brain project deliverables; paper skeletons&lt;br /&gt;
#trey stuff happy [distance pipeline ok, modeling needs attn next semester]&lt;br /&gt;
#joslin stuff happy&lt;br /&gt;
#support group members&#039; goals and growth, particularly impact and products&lt;br /&gt;
#refine 5-year funding/sabbatical plan – write some proposals&lt;br /&gt;
#keep up on dept/Brown service (search, facil, brdd, academic advising, mrf)&lt;br /&gt;
#keep up on professional service&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Eni ===&lt;br /&gt;
&lt;br /&gt;
*publish a full metrics paper&lt;br /&gt;
*start working on the wrist project&lt;br /&gt;
*publish a paper on wrist work&lt;br /&gt;
*improve programming skills&lt;br /&gt;
*possibly get involved in another brain project, once metrics paper is sent out&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== [[User:Jadrian Miles|Jadrian]] ===&lt;br /&gt;
[[User:Jadrian Miles/PhD Plan]] provides more context for my goals and also serves as a working document.&lt;br /&gt;
&lt;br /&gt;
# Develop a research plan that works as a spiral, not a waterfall&lt;br /&gt;
# Present a draft PhD proposal to dhl by 2/2/09&lt;br /&gt;
# Present a draft abstract to dhl by 2/2/09&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Jian ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Deliverables:&lt;br /&gt;
* Devon&#039;s paper by March 31st (vis deadline)&lt;br /&gt;
** full draft by March 12th&lt;br /&gt;
** iterations till the deadline&lt;br /&gt;
* Andy&#039;s paper by March 31st (vis deadline)&lt;br /&gt;
* A book chapter by March 31st (on domain-specific design)&lt;br /&gt;
* The display paper to CG&amp;amp;A by March 31st (CG&amp;amp;A)&lt;br /&gt;
* consider a biology paper (by Apr. 10th?)&lt;br /&gt;
* consider a TVCG paper (on scalable time-varying data visualization and interaction (?on the samsung display? is there any reason to use it?)&lt;br /&gt;
Job:&lt;br /&gt;
* Get a job&lt;br /&gt;
Project:&lt;br /&gt;
* Finish camber measurement&lt;br /&gt;
* Finish visualization method &lt;br /&gt;
* Finish the vis tool&lt;br /&gt;
Proposal:&lt;br /&gt;
* Short-term proposal that has potential to extend my stay&lt;br /&gt;
Community services:&lt;br /&gt;
* Review SIGGRAPH / TVCG papers&lt;br /&gt;
&lt;br /&gt;
=== Laura ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Radu ===&lt;br /&gt;
Phd proposal&lt;br /&gt;
* first rough skeleton draft by Feb 1&lt;br /&gt;
* lit search and revised draft by March 1&lt;br /&gt;
* more lit search and final proposal by April 1&lt;br /&gt;
* presentation by May 1&lt;br /&gt;
Vis submission&lt;br /&gt;
* paper sketch by Feb 1&lt;br /&gt;
* iteration 1 (iteration = coded concepts, evaluation scenario and feedback) by Feb 15&lt;br /&gt;
* iteration 2 by Mar 1&lt;br /&gt;
* first write-up and iteration 3 by Mar 15&lt;br /&gt;
* submission&lt;br /&gt;
Immgen&lt;br /&gt;
*new techniques, interactions and approaches to exploring multi-dimensionality&lt;br /&gt;
* expansion - idea and application brainstorming&lt;br /&gt;
* continue with Bang at Broad (more or less in the background)&lt;br /&gt;
* extract insights from genomic viewer  (more evaluation)&lt;br /&gt;
* Immgen progress report (current + future) - by Feb 1&lt;br /&gt;
* Immgen progress report (current) - by May 15&lt;br /&gt;
TVCG submission&lt;br /&gt;
* tackle revision/resubmission if I get response&lt;br /&gt;
Other conference paper&lt;br /&gt;
* write 2-3 proposals for ideas (by April 15)&lt;br /&gt;
* select one and write paper sketch by May 1&lt;br /&gt;
Other&lt;br /&gt;
* transform the weekly todo in a habit&lt;br /&gt;
* improve multi-tasking/planning abilities&lt;br /&gt;
* more responsive and less ball droping&lt;br /&gt;
* cleaner submissions (of answers, code, writeups etc)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Sidra ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Trevor ===&lt;br /&gt;
&lt;br /&gt;
#  Distortion correction paper. &lt;br /&gt;
## Finalize content and evaluation.&lt;br /&gt;
## Submit to TMI?  Consider where this will have the most impact.&lt;br /&gt;
#  &amp;lt;s&amp;gt;Work toward Vis submission on interaction histories, collaborative scientific visualization.&amp;lt;/s&amp;gt;&lt;br /&gt;
## &amp;lt;s&amp;gt;Explore possible applications.&amp;lt;/s&amp;gt;&lt;br /&gt;
## &amp;lt;s&amp;gt;Develop evaluation criterion.  &amp;lt;/s&amp;gt;&lt;br /&gt;
## &amp;lt;s&amp;gt;Consider software model as a contribution.&amp;lt;/s&amp;gt;&lt;br /&gt;
#  &amp;lt;s&amp;gt;Research comps proposal.  (Interaction histories?)&amp;lt;/s&amp;gt;&lt;br /&gt;
## &amp;lt;s&amp;gt;Draft complete by mid-February. (by February I mean April)&amp;lt;/s&amp;gt;&lt;br /&gt;
## &amp;lt;s&amp;gt;Practice talk at SciVis meeting February 24th.&amp;lt;/s&amp;gt;&lt;br /&gt;
#  &amp;lt;s&amp;gt;Evaluate eye-tracking systems available at Brown.&amp;lt;/s&amp;gt;&lt;br /&gt;
## &amp;lt;s&amp;gt;Develop webcam-based eye-tracking?&amp;lt;/s&amp;gt;&lt;br /&gt;
#  &amp;lt;s&amp;gt;Continue to explore and evaluate intern opportunities.&amp;lt;/s&amp;gt;&lt;br /&gt;
#  &amp;lt;s&amp;gt;Get through classes.&amp;lt;/s&amp;gt;&lt;br /&gt;
## &amp;lt;s&amp;gt;CS224, CS295-J, Reading and Research.&amp;lt;/s&amp;gt;&lt;br /&gt;
#  Improve time management.&lt;br /&gt;
#  &amp;lt;s&amp;gt;Improve writing.&amp;lt;/s&amp;gt;&lt;br /&gt;
## &amp;lt;s&amp;gt;Explore opportunities for short submissions.&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Wenjin ===&lt;br /&gt;
&lt;br /&gt;
Ph.D. Proposal Draft&lt;br /&gt;
* Abstract ready 2/23&lt;br /&gt;
* Specific contributions 3/9&lt;br /&gt;
* Preliminary Studies 3/16&lt;br /&gt;
* Research Design and Methods 4/6&lt;br /&gt;
* Background and Significance 4/20&lt;br /&gt;
* full draft 5/4&lt;br /&gt;
&lt;br /&gt;
Improve Axon Modeling and Validation with Histology, submit to MICCAI &lt;br /&gt;
* Improve axon modeling&lt;br /&gt;
* Validation with Macaque Histology Data&lt;br /&gt;
&lt;br /&gt;
ISMRM conference&lt;br /&gt;
* deliver a good presentation and poster&lt;br /&gt;
* connect with people and seek for collaboration&lt;br /&gt;
* gather inspiring project ideas&lt;br /&gt;
&lt;br /&gt;
Aim for MRM journal submission&lt;br /&gt;
* Histology validation stuff&lt;br /&gt;
* Improvement on modeling&lt;br /&gt;
&lt;br /&gt;
Prepare to get teaching experience in the fall&lt;br /&gt;
&lt;br /&gt;
=== Wudan ===&lt;br /&gt;
&lt;br /&gt;
== Past Plans and Goals ==&lt;br /&gt;
* [[/Fall 2008|Fall &#039;08]]&lt;br /&gt;
* [http://sites.google.com/a/vis.cs.brown.edu/collaboravis/Home/summer-08-group-goals Summer &#039;08]&lt;br /&gt;
&lt;br /&gt;
[[Category:VRL]]&lt;/div&gt;</summary>
		<author><name>Trevor O&#039;Brien</name></author>
	</entry>
	<entry>
		<id>http://vrl.cs.brown.edu/wiki/index.php?title=CS295J/Final_contributions&amp;diff=3369</id>
		<title>CS295J/Final contributions</title>
		<link rel="alternate" type="text/html" href="http://vrl.cs.brown.edu/wiki/index.php?title=CS295J/Final_contributions&amp;diff=3369"/>
		<updated>2009-05-01T16:25:38Z</updated>

		<summary type="html">&lt;p&gt;Trevor O&amp;#039;Brien: /* Semantic-level Interaction Chunking */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Specific Contributions =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[I have removed almost everything that does not describe itself as a contribution.  If your part is missing, a revision is in order and you can find what the former version on the page linked below (David)]&lt;br /&gt;
&lt;br /&gt;
[[CS295J/Thursday 2pm version of final contribution|Thursday 2pm version of final contribution]]&lt;br /&gt;
&lt;br /&gt;
== Workflow, Multi-tasking and Interruptions ==&lt;br /&gt;
* Owner: [[User:Andrew Bragdon | Andrew Bragdon]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aims&#039;&#039;&#039;&lt;br /&gt;
* Develop a Theory of Multi-tasking Workflow and the Impact of Interruptions&lt;br /&gt;
* Build a Meta-work Assistance Tool&lt;br /&gt;
:# We will perform a series of ecologically-valid studies to compare user performance between a state of the art/popular task management system (control group) and our meta-work assistance tool (experimental group) &amp;lt;span style=&amp;quot;color: gray;&amp;quot;&amp;gt;[Didn&#039;t your study show that there is nothing close to a killer app in this department? - Steven]&amp;lt;/span&amp;gt; [By &amp;quot;state of the art&amp;quot; I mean a popular, well-recognized system (or systems), such as Outlook, that are used by large numbers of people.]&lt;br /&gt;
* Evaluate the Module-based Model of HCI by using it to predict the outcome of the above-mentioned evaluation; then compare with empirical results&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Contributions&#039;&#039;&#039;&lt;br /&gt;
* Theory of Multi-tasking Workflow and the Impact of Interruptions&lt;br /&gt;
:# We will undertake detailed studies to help understand the following questions:&lt;br /&gt;
::# How does the size of a user&#039;s working set impact interruption resumption time?&lt;br /&gt;
::# How does the size of a user&#039;s working set, when used for rapid multi-tasking, impact performance metrics?&lt;br /&gt;
::# How does a user interface which supports multiple simultaneous working sets benefit interruption resumption time?&lt;br /&gt;
:* Internal dependencies: none&lt;br /&gt;
* Empirical Evaluation of Meta-work Assistance Tool in an Ecologically-valid Context&lt;br /&gt;
:* Internal dependencies: Completion of a testable meta-work tool&lt;br /&gt;
* Baseline Comparison Between Module-based Model of HCI and Core Multi-tasking Study&lt;br /&gt;
:# We will compare the results of the above-mentioned study in multi-tasking against results predicted by the module-based model of HCI in this proposal; this will give us an important baseline comparison, particularly given that multi-tasking and interruption involve higher brain functioning and are therefore likely difficult to predict&lt;br /&gt;
:* Internal dependencies: Dependent on core study completion, as well as most of the rest of the proposal being completed to the point of being testable&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Demonstration (we might consider calling these deliverables)&#039;&#039;&#039;&lt;br /&gt;
* A predictive, quantiative model of controlled task performance and interruption resumption time for varying sized working sets&lt;br /&gt;
* An ecologically valid evaluation which shows that the completed meta-work assistance tool outperforms a state of the art system such as Outlook&lt;br /&gt;
* A comparison between the result predicted by the module-based model of HCI and the evaluation mentioned above; accompanied by a detailed analysis of factors contributing to the result&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;External Dependencies&#039;&#039;&#039;&lt;br /&gt;
* Dependent on most of the rest of the proposal being completed to the point of being usable to predict the outcome of the meta-work tool evaluation&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Background and Related Work&#039;&#039;&#039;&lt;br /&gt;
* Salvucci et al&#039;s integrated theory of multi-tasking continuum integrates concurrent and sequential task performance&lt;br /&gt;
* Gloria Mark&#039;s research group has conducted a number of empirical studies into multi-tasking and interruption&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Preliminary Work&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [[Study of Meta-work Tools and Strategies of 7 Information Workers]]&lt;br /&gt;
:* Results suggest there is not a single &amp;quot;ideal&amp;quot; meta-work tool today, motivating our proposal to build a new meta-work support tool based in part on a scientific theory of multi-tasking and interruptions.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Reviews&#039;&#039;&#039;&lt;br /&gt;
* Not in the expected format -- split into appropriate parts and label them as in the other sections (David)&lt;br /&gt;
&lt;br /&gt;
== Recording User-Interaction Primitives ==&lt;br /&gt;
&lt;br /&gt;
* Owner: [[User:Trevor O&#039;Brien | Trevor O&#039;Brien]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aims&#039;&#039;&#039;&lt;br /&gt;
* Develop system for logging low-level user-interactions within existing applications.  By low-level interactions, we refer to those interactions for which a quantitative, predictive, GOMS-like model may be generated.&amp;lt;span style=&amp;quot;color: gray;&amp;quot;&amp;gt;[How do you propose to get around the problem Andrew brought up of accurately linking this low-level data to the interface/program&#039;s state at the moment it occurred? - Steven]&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt;[Low-level interactions will need to be logged along with a markup-language-style state description of the application itself.  This would either require access to the source code, or a detailed interface description from the interface designer that would allow for complete simulation of the application.]&amp;lt;/span&amp;gt;&lt;br /&gt;
* At the same scale of granularity, integrate explicit interface-interactions with multimodal-sensing data.  i.e. pupil-tracking, muscle-activity monitoring, auditory recognition, EEG data, and facial and posture-focused video. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Contributions&#039;&#039;&#039;&lt;br /&gt;
* Extensible, multi-modal, HCI framework for recording rich interaction-history data in existing applications.&amp;lt;span style=&amp;quot;color: gray;&amp;quot;&amp;gt;[Perhaps something should be said about sectioning this data off into modules - i.e. compiling all e-mail writing recordings to analyze separately from e-mail sorting recordings in order to facilitate analysis. - Steven]&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt;[I believe this is addressed in the &amp;quot;semantic-level chunking&amp;quot; section, given below.]&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Demonstration&#039;&#039;&#039;&lt;br /&gt;
* Techniques for pupil-tracking, auditory-recognition, and muscle-activity monitoring will be evaluated with respect to accuracy, sampling rate, and computational cost in a series of quantitative studies.  &amp;lt;span style=&amp;quot;color: gray;&amp;quot;&amp;gt;[Is there an explicit, quantifiable demonstration you can propose?  Such some kind of conclusive comparison between automated capture techniques and manual techniques?  Or maybe a demonstration of some kind of methodical, but still low-level, procedure for clustering related interaction primitives? [[User:E J Kalafarski|E J Kalafarski]] 15:02, 29 April 2009 (UTC)]&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt;[Things like pupil-tracking can be quantitatively evaluated through users tests.  For instance, we could instruct users to shift the focus of their eyes from one on-screen object to another as quickly as possible some fixed number of times. We could then compare the results from our system to determine accuracy and speed, and by varying the size and distance of the target objects, we could obtain richer data for analysis.  With respect to clustering low-level interactions, I believe that issue is addressed in the following section.]&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color: gray;&amp;quot;&amp;gt;[Should this take into account the need to match recordings to interface state? - Steven]&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt;[Possibly, if we go down the simulation route.  If we&#039;re actually logging all of the events from within the source code itself, I believe the demonstration of syncing low-level interaction with application-state is self-evident.]&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dependencies&#039;&#039;&#039;&lt;br /&gt;
* Hardware for pupil-tracking and muscle activity monitoring.  Commercial software packages for such software may be required.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Background and Related Work&#039;&#039;&#039;&lt;br /&gt;
* The utility of interaction histories with respect to assessing interface design has been demonstrated in &amp;lt;ref name = bob&amp;gt; [http://www.cs.brown.edu/people/trevor/Papers/Heer-2008-GraphicalHistories.pdf Graphical Histories for Visualization: Supporting Analysis, Communication, and Evaluation] (InfoVis 2008) &amp;lt;/ref&amp;gt;. &amp;lt;span style=&amp;quot;color: gray;&amp;quot;&amp;gt;Can you briefly summarize the utility with one sentence? Or is that what the next bullet does? (Jon)&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt;[In the instance of this work, utility was demonstrated with respect to automatically generating presentations from data explorations, and providing quantitative interface-usage analysis that aided future decisions for interface designers.  i.e., this operations was performed a lot, and this one was not; therefore we should focus on making the first more efficient, perhaps at the expense of the second.  The results of the work are fairly basic, but they do demonstrate that logging histories is a useful practice for a number of reasons.]&amp;lt;/span&amp;gt;&lt;br /&gt;
* In addition, data management histories have been shown effective in the visualization community in &amp;lt;ref&amp;gt; [http://www.cs.brown.edu/people/trevor/Papers/Callahan-2006-MED.pdf Callahan-2006-MED] &amp;lt;/ref&amp;gt;  &amp;lt;ref&amp;gt; [http://www.cs.brown.edu/people/trevor/Papers/Callahan-2006-VVM.pdf Callahan-2006-VVM] &amp;lt;/ref&amp;gt; &amp;lt;ref&amp;gt; [http://www.cs.brown.edu/people/trevor/Papers/Bavoil-2005-VEI.pdf Bavoil-2005-VEI]&amp;lt;/ref&amp;gt;, providing visualizations by analogy &amp;lt;ref&amp;gt; [http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&amp;amp;arnumber=4376187&amp;amp;isnumber=4376125 Querying and Creating Visualizations by Analogy] &amp;lt;/ref&amp;gt; and offering automated suggestions &amp;lt;ref&amp;gt; [http://www.cs.utah.edu/~juliana/pub/tvcg-recommendation2008.pdf VisComplete: Automating Suggestions from Visualization Pipelines] &amp;lt;/ref&amp;gt;, which we expect to generalize to user interaction history.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;review&#039;&#039;&#039;&#039;&lt;br /&gt;
* This is recording everything possible during an interaction. It is necessary to do for our project. (Gideon)&lt;br /&gt;
* Two thumbs up. - Steven&lt;br /&gt;
&lt;br /&gt;
== Semantic-level Interaction Chunking ==&lt;br /&gt;
&lt;br /&gt;
* Owner: [[User:Trevor O&#039;Brien | Trevor O&#039;Brien]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aims&#039;&#039;&#039;&lt;br /&gt;
* Develop techniques for &#039;&#039;chunking&#039;&#039; low-level interaction primitives into &#039;&#039;semantic-level&#039;&#039; interactions, given an application&#039;s functionality and data-context.  (And de-chunking? Invertible mapping needed?)&lt;br /&gt;
* Perform user-study evaluation to validate chunking methods.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Contributions&#039;&#039;&#039;&lt;br /&gt;
* Design and user-study evaluation of semantic-chunking techniques for interaction.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Demonstration&#039;&#039;&#039;&lt;br /&gt;
* These techniques will be validated quantitatively with respect to efficiency and user error rate on a set of timed-tasks over a series of case studies.  In addition, qualitative feedback on user satisfaction will be incorporated in the evaluation of our methods.  &amp;lt;span style=&amp;quot;color: gray;&amp;quot;&amp;gt;[As above, how will this be validated quantitatively?  Comparing two methodologies for manual chunking?  What would these differing methodologies be? [[User:E J Kalafarski|E J Kalafarski]] 15:06, 29 April 2009 (UTC)]&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt;[I don&#039;t intend for these techniques to be performed manually.  Application-specific rules for chunking will be created manually, most likely by the interface designer, but those rules will be applied automatically to filter low-level primitives and application-states into semantic-level interactions.  The success of such methods could be evaluated by having automatically-generated semantic-level histories compared to those manually created by a user.  Of course, there&#039;s no guarantee that what a user manually creates is any good, so I think it would be more effective to have a quantitative study of user performance in which timed-tasks are completed with and without the ability to review and revisit semantic-level histories.  The test without any history at all would serve as a baseline, and then performance with histories created using different chunking rules would speak to the effectiveness of different strategies for chunking.]&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dependencies&#039;&#039;&#039;&lt;br /&gt;
* Software framework for collecting user interactions.&amp;lt;span style=&amp;quot;color: gray;&amp;quot;&amp;gt;[I&#039;d like to see this fleshed out in a theoretical manner. - Steven]&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt;[I believe the previous section speaks to this question, but perhaps not with enough detail.  It seems appropriate to have this discussion in class.]&amp;lt;/span&amp;gt;&lt;br /&gt;
* Formal description of interface functionality.&lt;br /&gt;
* Description of data objects that can be manipulated through interaction.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;review&#039;&#039;&#039;&lt;br /&gt;
* With what level of accuracy can this be performed. I like the idea, its worthy of a nice project in and of itself. (Gideon)  &amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt;[This is a great question.  It really depends on what&#039;s meant by accuracy.  If the only level of semantics we want is that defined by the interface-designer, then it&#039;s not really an interesting question.  As we begin to talk about semantics with respect to what the user &#039;&#039;perceives&#039;&#039; or what the user&#039;s &#039;&#039;intent&#039;&#039; might be, it becomes more interesting, and the term accuracy becomes more ambiguous.  I suppose accuracy could be tested by having users verbally speak their intent as they use an interface, and compare their descriptions with the output of the system, but I think that might be a messy study.  Interesting to think about.]&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: gray;&amp;quot;&amp;gt;Can you include something about the broader impact of this contribution? (Jon)&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt;[I think the broader impact here is offering interface designers tools to analyze interaction at a high enough level that they can begin to observe user&#039;s intent with an interface, and potentially infer overarching user-goals.  If these tools prove effective, and could be implemented in real-time, there&#039;s a wealth of possibility in adaptive interfaces.  In addition, the semantic-level interaction history construct has the potential to provide meaningful training data for machine-learning algorithms that could probabilistically model user-action and be used to offer suggested interactions.]&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Reconciling Usability Heuristics with Cognitive Theory ==&lt;br /&gt;
* Owner: [[User:E J Kalafarski|E J Kalafarski]] 14:56, 28 April 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Contribution&#039;&#039;&#039;: A framework for the unification of established heuristic usability guidelines and accepted cognitive principles.  We propose a matrix pairing cognitive principles and heuristic guidelines into specific interface improvement recommendations.&lt;br /&gt;
&lt;br /&gt;
[David: I&#039;m having trouble parsing this contribution.  How do you weight a framework?  Also, I&#039;d like to have a little more sense of how this might fit into the bigger picture.  The assignment didn&#039;t ask for that, but is there some way to provide some of that context?]&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: gray;&amp;quot;&amp;gt;[I agree that the wording is is a little confusing. The framework is not weighted, but rather it weights the different guidelines/principles. It might also be worth explaining how this is a useful contribution, e.g. does it allow for more accurate interface evaluation? -Eric]&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt;[Language cleaned up.  While I still think it is important to give more &amp;quot;weight&amp;quot; to cognitive/heuristic principle pairs that agree more strongly than others and output more useful recommendations, I believe I&#039;ve pitched it wrong and made it too prominent an attribute of this module.  I&#039;ve adjusted. [[User:E J Kalafarski|E J Kalafarski]] 15:34, 1 May 2009 (UTC)]&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Demonstration&#039;&#039;&#039;: Three groups of experts anecdotally apply cognitive principles, heuristic usability principles, and a combination of the two.&lt;br /&gt;
* A human &amp;quot;cognition expert,&amp;quot; given a constrained, limited-functionality interface, develops an independent evaluative value for each interface element based on accepted cognitive principles.&lt;br /&gt;
* A human &amp;quot;usability expert&amp;quot; develops an independent evaluative value for each interface element based on accepted heuristic guidelines.&lt;br /&gt;
* A third expert applies several recommendations from a matrix of cogntive/heuristic principle pairs.&lt;br /&gt;
* User testing demonstrates the assumed efficacy and applicability of the principle pairs versus separate application of cognitive and heuristic guidelines.&lt;br /&gt;
* Matrix can be improved incrementally by applying &amp;quot;weight&amp;quot; to each cell of the matrix, increasing its influence on final output recommendations, based on the measurable success of this study.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: gray;&amp;quot;&amp;gt;[There is still the question of how these weights are determined. Is this the job of the third expert? Or is the third expert given these weights, and he just determines how to apply them? -Eric]&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt;[Added more explanatory description of methodology as a bullet under Demo.  [[User:E J Kalafarski|E J Kalafarski]] 15:49, 1 May 2009 (UTC)]&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dependency&#039;&#039;&#039;: A set of established cognitive principles, selected with an eye toward heuristic analogues.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dependency&#039;&#039;&#039;: A set of established heuristic design guidelines, selected with an eye toward cognitive analogues.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;review&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* This seems like the 2d matrix? Is this implemented as a module? (Gideon) &amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt;[Yes. [[User:E J Kalafarski|E J Kalafarski]] 15:49, 1 May 2009 (UTC)]&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Gideon&#039;s comment brings up an important point - in what form will the weights be presented? - Steven &amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt;[Values which contribute to the &amp;quot;influence&amp;quot; of each recommendation. [[User:E J Kalafarski|E J Kalafarski]] 15:49, 1 May 2009 (UTC)]&amp;lt;/span&amp;gt;&lt;br /&gt;
* Could be more explicit about whether the experts are simulated agents or real people (Jon)&lt;br /&gt;
&lt;br /&gt;
== Evaluation for Recommendation and Incremental Improvement ==&lt;br /&gt;
* Owner: [[User:E J Kalafarski|E J Kalafarski]] 14:56, 28 April 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Contributions&#039;&#039;&#039;: Using a set of interface evaluation modules for analysis, we demonstrate the proposed efficiency and accuracy of a method for aggregating these interface suggestions.  In this preliminary demonstration, we limit the field to a strictly-defined interface and 2–3 CPM principles (e.g. Fitts&#039; Law and Affordance).  Unified recommendations are generated for application to the interface for incremental improvement in usability.&lt;br /&gt;
&lt;br /&gt;
[David: I&#039;m a little lost.  Can you make this long sentence into a couple shorter simpler ones?  I think I can imagine what you are getting at, but I&#039;m not sure.]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Demonstration&#039;&#039;&#039;: A limited but strictly-controlled study to demonstrate the efficacy and efficiency of automated aggregation of interface evaluation versus independent, analysis.  Shows not total replacement, but a gain in speed of evaluation comparable to the loss of control and feature.&lt;br /&gt;
* Given a carefully-constrained interface, perhaps with as few as two buttons and a minimalist feature set, expert interface designer given the individual results of several basic evaluation modules makes recommendations and suggestions to the design of the interface.&lt;br /&gt;
* Aggregation meta-module conducts similar survey of module outputs, outputting recommendations and suggestions for improvement of given interface.&lt;br /&gt;
* Separate independent body of experts then implements the two sets of suggestions and performs user study on the resultant interfaces, analyzing usability change and comparing it to the time and resources committed by the evaluation expert and the aggregation module, respectively.&lt;br /&gt;
&lt;br /&gt;
[David: nice demonstration!]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dependency&#039;&#039;&#039;: Module for the analysis of Fitts&#039; Law as it applies to the individual elements of a given interface.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dependency&#039;&#039;&#039;: Module for the analysis of a Affordance as it applies to the individual elements of a given interface.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dependency&#039;&#039;&#039;: Framework for the input of a given interface to individual modules, and standardization of the output of said modules.&lt;br /&gt;
&lt;br /&gt;
[David: I think this also has, as a dependency, some kind of framework for the modules.  &amp;quot;narrow but comprehensive&amp;quot; sounds challenging.  ]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;review&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* I see this as being the &amp;quot;black box&amp;quot; for our architecture? If so, good. Wouldn&#039;t the dependencies be any/all modules? (Gideon) &amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt;[I limited the scope of this initial demonstration. [[User:E J Kalafarski|E J Kalafarski]] 15:46, 1 May 2009 (UTC)]&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color: gray;&amp;quot;&amp;gt;[I think this is the same as my contribution, and that we should merge them together. You&#039;ve covered some things that I didn&#039;t, such as a more detailed demonstration of how our framework is better than a human interface designer&#039;s evaluation. You also gave a demonstration of comparing recommendations, while I only covered evaluations. -Eric]&amp;lt;/span&amp;gt;&lt;br /&gt;
* I think this contribution and mine (the CPM-GOMS improvement) will need to be reconciled into a single unit. - Steven&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt;[Is it feasible to combine all three of these contributions? [[User:E J Kalafarski|E J Kalafarski]] 15:47, 1 May 2009 (UTC)]&amp;lt;/span&amp;gt;&lt;br /&gt;
* Interesting to note that this could describe the overarching architecture but it depends upon components of the architecture to work.  Would it depend on any other modules? (Jon) &amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt;[Yes, several modules are listed as dependencies. [[User:E J Kalafarski|E J Kalafarski]] 15:46, 1 May 2009 (UTC)]&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Evaluation Metrics ==&lt;br /&gt;
Owner: [[User:Gideon Goldin | Gideon Goldin]]&lt;br /&gt;
&lt;br /&gt;
:*Architecture Outputs&lt;br /&gt;
::* Time (time to complete task)&lt;br /&gt;
:::# In user studies, this module predicted time-to-completion more accurately than the standard CPM-GOMS model.&lt;br /&gt;
:::* Dependencies&lt;br /&gt;
:::# CPM-GOMS Module with proposed cognitive load extension&lt;br /&gt;
::* Cognitive Load&lt;br /&gt;
:::# User studies were conducted during which participants brain&#039;s were scanned with EEG to measure activation levels.&lt;br /&gt;
:::# Self-report measures were obtained describing the amount of concentration/effort required on the part of the user.&lt;br /&gt;
:::# The literature base provided an accurate assessment of cognitive load in the tasks involved.&lt;br /&gt;
:::# Facial recognition allows us to approximate spans of high-load (e.g., furled brow)&lt;br /&gt;
:::* Dependencies&lt;br /&gt;
::::# CPM-GOMS Module with cognitive load extension&lt;br /&gt;
::::# Facial Gesture Recognition Module&lt;br /&gt;
::::# Self-Report Measure&lt;br /&gt;
::::# Database of load per cognitive tasks&lt;br /&gt;
::* Frustration&lt;br /&gt;
:::# Frustration is measured by asking participants to respond on the self-report scale.&lt;br /&gt;
:::# Facial recognition allows us to approximate spans of frustration (e.g., frowning, sighing, furled brow)&lt;br /&gt;
:::# Galvanic Skin Response allows detection of emotional arousal&lt;br /&gt;
:::# Heart rate monitoring allows detection of emotional arousal&lt;br /&gt;
:::* Dependencies&lt;br /&gt;
::::# Facial Gesture Recognition Module&lt;br /&gt;
::::# Galvanic Skin Response input&lt;br /&gt;
::::# Heart rate response input&lt;br /&gt;
::::# Interface Efficiency Module&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;review&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Parallel Framework for Evaluation Modules ==&lt;br /&gt;
* Owner: [[User:Adam Darlow | Adam Darlow]], [[User:Eric Sodomka | Eric Sodomka]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This section will describe in more detail the inputs, outputs and architecture that were presented in the introduction.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Contribution:&#039;&#039;&#039; Create a framework that provides better interface evaluations than currently existing techniques, and a module weighting system that provides better evaluations than any of its modules taken in isolation.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Demonstration:&#039;&#039;&#039; Run a series of user studies and compare users&#039; performance to expected performance, as given by the following interface evaluation methods:&lt;br /&gt;
# Traditional, manual interface evaluation &lt;br /&gt;
#* As a baseline.&lt;br /&gt;
# Using our system with a single module&lt;br /&gt;
#* &amp;quot;Are any of our individual modules better than currently existing methods of interface evaluation?&amp;quot;.&lt;br /&gt;
# Using our system with multiple modules, but have aggregator give a fixed, equal weighting to each module&lt;br /&gt;
#* As a baseline for our aggregator: want to show that the value of adding the dynamic weighting.&lt;br /&gt;
# Using our system with multiple modules, and allow the aggregator to adjust weightings for each module, but have each module get a single weighting for all dimensions (time, fatigue, etc.)&lt;br /&gt;
#* For validating the use of a dynamic weighting system.&lt;br /&gt;
# Using our system with multiple modules, and allow the aggregator to adjust weightings for each module, and allow the module to give different weightings to every dimension of the module (time, fatigue, etc.) &lt;br /&gt;
#* For validating the use of weighting across multiple utility dimensions.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dependencies:&#039;&#039;&#039; Requires a good set of modules to plug into the framework.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;review&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* What exactly are the differences between this and EJ&#039;s earlier contribution? I think that if they are the same, this one is a bit more clear, IMHO. (Gideon)&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: gray;&amp;quot;&amp;gt;[I have a similar question to Gideon&#039;s.  My hunch is that this defines a sort of &amp;quot;namespace&amp;quot; for the modules themselves, while the other contribution (the one you guys assigned to me) is more explicitly the aggregator of these outputs.  Correct me if I&#039;m wrong.  But if that&#039;s the case, the two contributions might need to be validated similarly/together. [[User:E J Kalafarski|E J Kalafarski]] 15:17, 29 April 2009 (UTC)]&amp;lt;/span&amp;gt;&lt;br /&gt;
* I feel like this structure&#039;s clarity may come at expense of specificity, I&#039;d like to know more than that it&#039;s parallel. - Steven&lt;br /&gt;
* Very thorough demonstration(s)! (Jon)&lt;br /&gt;
* I think that the contribution is much more clearly stated here -- I would argue for integrating them together. (Andrew)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Sample Modules ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Fitts&#039;s Law ===&lt;br /&gt;
* Owner: [[User:Jon Ericson | Jon Ericson]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aims&#039;&#039;&#039;&lt;br /&gt;
*Provides an estimate of the required time to complete various tasks that have been decomposed into formalized sequences of interactions with interface elements, and will provide evaluations and recommendations for optimizing the time required to complete those tasks using the interface.&lt;br /&gt;
*Integrate this module into our novel cognitive framework for interface evaluation.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Contributions&#039;&#039;&#039;&lt;br /&gt;
* [Not sure here.  Is this really novel?]  &amp;lt;span style=&amp;quot;color: gray;&amp;quot;&amp;gt;[I like it.  I think it&#039;s necessary.  I think we demonstrated in class that this has not been formalized and standardized already. [[User:E J Kalafarski|E J Kalafarski]] 15:22, 29 April 2009 (UTC)]&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Demonstrations&#039;&#039;&#039;&lt;br /&gt;
*We will demonstrate the feasibility of this module by generating a formal description of an interface for scientific visualization, a formal description of a task to perform with the interface, and we will correlate the estimated time to complete the task based on Fitt&#039;s law with the actual time required based on several user traces.  &amp;lt;span style=&amp;quot;color: gray;&amp;quot;&amp;gt;[Check. [[User:E J Kalafarski|E J Kalafarski]] 15:22, 29 April 2009 (UTC)]&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dependencies&#039;&#039;&#039;&lt;br /&gt;
*Requires a formal description of the interface with graph nodes representing clickable interface elements and graph edges representing the physical (on-screen) distance between adjacent nodes. &amp;lt;span style=&amp;quot;color: gray;&amp;quot;&amp;gt;[Is this graph format you&#039;re suggesting part of the proposal, or is the &amp;quot;language&amp;quot; itself a dependency from literature? [[User:E J Kalafarski|E J Kalafarski]] 15:22, 29 April 2009 (UTC)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Module Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Inputs &amp;lt;span style=&amp;quot;color: gray;&amp;quot;&amp;gt;[In theory could the non-semantic inputs be automatically read from the interface? - Steven]&amp;lt;/span&amp;gt;&lt;br /&gt;
**A formal description of the interface and its elements (e.g. buttons).&lt;br /&gt;
**A formal description of a particular task and the possible paths through a subset of interface elements that permit the user to accomplish that task.&lt;br /&gt;
**The physical distances between interface elements along those paths.&lt;br /&gt;
**The width of those elements along the most likely axes of motion.&lt;br /&gt;
**Device (e.g. mouse) characteristics including start/stop time and the inherent speed limitations of the device.&lt;br /&gt;
&lt;br /&gt;
*Output&lt;br /&gt;
**The module will then use the Shannon formulation of Fitt&#039;s Law to compute the average time needed to complete the task along those paths.&lt;br /&gt;
&lt;br /&gt;
=== Affordances ===&lt;br /&gt;
* Owner: [[User:Jon Ericson | Jon Ericson]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aims&#039;&#039;&#039;&lt;br /&gt;
*To provide interface evaluations and recommendations based on a measure of the extent to which the user perceives the relevant affordances of the interface when performing specified tasks.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Contributions&#039;&#039;&#039;&lt;br /&gt;
*A quantitative measure of the extent to which an interface suggests to the user the actions that it is capable of performing.&lt;br /&gt;
*A quantitative, indirect measure of the extent to which an interface facilitates (or hinders) the use of fast perceptual mechanisms.&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: gray;&amp;quot;&amp;gt;[Again, I&#039;m a fan.  I don&#039;t think this has been formalized already. [[User:E J Kalafarski|E J Kalafarski]] 15:24, 29 April 2009 (UTC)]&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Demonstrations&#039;&#039;&#039;&lt;br /&gt;
*We will demonstrate the feasibility of this module through the following experiment:&lt;br /&gt;
**Specify a task for a user to perform with scientific visualization software.&lt;br /&gt;
**There should be several different ways to complete the task (paths through the space of possible interface actions).&lt;br /&gt;
**Some of these paths will be more direct than others.&lt;br /&gt;
**We will then measure the number of task-relevant affordances that were perceived and acted upon by analyzing the user trace, and the time required to complete the task.&lt;br /&gt;
**Use the formula: (affordances perceived) / [(relevant affordances present) * (time to complete task)].&lt;br /&gt;
**Correlate the resulting scores with verbal reports on naturalness and ease-of-use for the interface.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dependencies&#039;&#039;&#039;&lt;br /&gt;
*Requires a method for capturing user traces that include formalized records of interface elements used for a particular, pre-specified task or set of tasks.&lt;br /&gt;
*Providing suggestions/recommendations will require interaction with other modules that analyze the perceptual salience of interface elements.&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: gray;&amp;quot;&amp;gt;[Some kind of formalized list or arbitrary classification of affordances might be necessary to limit the scope of this contribution. [[User:E J Kalafarski|E J Kalafarski]] 15:24, 29 April 2009 (UTC)]&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description of the Module&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Module Inputs&#039;&#039;&lt;br /&gt;
**Formalized descriptions of...&lt;br /&gt;
***Interface elements&lt;br /&gt;
***Their associated actions&lt;br /&gt;
***The functions of those actions&lt;br /&gt;
***A particular task&lt;br /&gt;
***User traces for that task &amp;lt;span style=&amp;quot;color: gray;&amp;quot;&amp;gt;[Could this module benefit from eye-tracking? - Steven]&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Processing&lt;br /&gt;
**Inputs (1-4) are then used to generate a &amp;quot;user-independent&amp;quot; space of possible functions that the interface is capable of performing with respect to a given task -- what the interface &amp;quot;affords&amp;quot; the user.  From this set of possible interactions, our model will then determine the subset of optimal paths for performing a particular task.  The user trace (5) is then used to determine what functions actually were performed in the course of a given task of interest and this information is then compared to the optimal path data to determine the extent to which affordances of the interface are present but not perceived.  &lt;br /&gt;
&lt;br /&gt;
*Output&lt;br /&gt;
**The output of this module is a simple ratio of (affordances perceived) / [(relevant affordances present) * (time to complete task)] which provides a quantitative measure of the extent to which the interface is &amp;quot;natural&amp;quot; to use for a particular task.&lt;/div&gt;</summary>
		<author><name>Trevor O&#039;Brien</name></author>
	</entry>
	<entry>
		<id>http://vrl.cs.brown.edu/wiki/index.php?title=CS295J/Final_contributions&amp;diff=3364</id>
		<title>CS295J/Final contributions</title>
		<link rel="alternate" type="text/html" href="http://vrl.cs.brown.edu/wiki/index.php?title=CS295J/Final_contributions&amp;diff=3364"/>
		<updated>2009-05-01T15:08:15Z</updated>

		<summary type="html">&lt;p&gt;Trevor O&amp;#039;Brien: /* Recording User-Interaction Primitives */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Specific Contributions =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[I have removed almost everything that does not describe itself as a contribution.  If your part is missing, a revision is in order and you can find what the former version on the page linked below (David)]&lt;br /&gt;
&lt;br /&gt;
[[CS295J/Thursday 2pm version of final contribution|Thursday 2pm version of final contribution]]&lt;br /&gt;
&lt;br /&gt;
== Workflow, Multi-tasking and Interruptions ==&lt;br /&gt;
* Owner: [[User:Andrew Bragdon | Andrew Bragdon]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aims&#039;&#039;&#039;&lt;br /&gt;
* Develop a Theory of Multi-tasking Workflow and the Impact of Interruptions&lt;br /&gt;
* Build a Meta-work Assistance Tool&lt;br /&gt;
:# We will perform a series of ecologically-valid studies to compare user performance between a state of the art/popular task management system (control group) and our meta-work assistance tool (experimental group) &amp;lt;span style=&amp;quot;color: gray;&amp;quot;&amp;gt;[Didn&#039;t your study show that there is nothing close to a killer app in this department? - Steven]&amp;lt;/span&amp;gt; [By &amp;quot;state of the art&amp;quot; I mean a popular, well-recognized system (or systems), such as Outlook, that are used by large numbers of people.]&lt;br /&gt;
* Evaluate the Module-based Model of HCI by using it to predict the outcome of the above-mentioned evaluation; then compare with empirical results&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Contributions&#039;&#039;&#039;&lt;br /&gt;
* Theory of Multi-tasking Workflow and the Impact of Interruptions&lt;br /&gt;
:# We will undertake detailed studies to help understand the following questions:&lt;br /&gt;
::# How does the size of a user&#039;s working set impact interruption resumption time?&lt;br /&gt;
::# How does the size of a user&#039;s working set, when used for rapid multi-tasking, impact performance metrics?&lt;br /&gt;
::# How does a user interface which supports multiple simultaneous working sets benefit interruption resumption time?&lt;br /&gt;
:* Internal dependencies: none&lt;br /&gt;
* Empirical Evaluation of Meta-work Assistance Tool in an Ecologically-valid Context&lt;br /&gt;
:* Internal dependencies: Completion of a testable meta-work tool&lt;br /&gt;
* Baseline Comparison Between Module-based Model of HCI and Core Multi-tasking Study&lt;br /&gt;
:# We will compare the results of the above-mentioned study in multi-tasking against results predicted by the module-based model of HCI in this proposal; this will give us an important baseline comparison, particularly given that multi-tasking and interruption involve higher brain functioning and are therefore likely difficult to predict&lt;br /&gt;
:* Internal dependencies: Dependent on core study completion, as well as most of the rest of the proposal being completed to the point of being testable&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Demonstration (we might consider calling these deliverables)&#039;&#039;&#039;&lt;br /&gt;
* A predictive, quantiative model of controlled task performance and interruption resumption time for varying sized working sets&lt;br /&gt;
* An ecologically valid evaluation which shows that the completed meta-work assistance tool outperforms a state of the art system such as Outlook&lt;br /&gt;
* A comparison between the result predicted by the module-based model of HCI and the evaluation mentioned above; accompanied by a detailed analysis of factors contributing to the result&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;External Dependencies&#039;&#039;&#039;&lt;br /&gt;
* Dependent on most of the rest of the proposal being completed to the point of being usable to predict the outcome of the meta-work tool evaluation&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Background and Related Work&#039;&#039;&#039;&lt;br /&gt;
* Salvucci et al&#039;s integrated theory of multi-tasking continuum integrates concurrent and sequential task performance&lt;br /&gt;
* Gloria Mark&#039;s research group has conducted a number of empirical studies into multi-tasking and interruption&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Preliminary Work&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [[Study of Meta-work Tools and Strategies of 7 Information Workers]]&lt;br /&gt;
:* Results suggest there is not a single &amp;quot;ideal&amp;quot; meta-work tool today, motivating our proposal to build a new meta-work support tool based in part on a scientific theory of multi-tasking and interruptions.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Reviews&#039;&#039;&#039;&lt;br /&gt;
* Not in the expected format -- split into appropriate parts and label them as in the other sections (David)&lt;br /&gt;
&lt;br /&gt;
== Recording User-Interaction Primitives ==&lt;br /&gt;
&lt;br /&gt;
* Owner: [[User:Trevor O&#039;Brien | Trevor O&#039;Brien]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aims&#039;&#039;&#039;&lt;br /&gt;
* Develop system for logging low-level user-interactions within existing applications.  By low-level interactions, we refer to those interactions for which a quantitative, predictive, GOMS-like model may be generated.&amp;lt;span style=&amp;quot;color: gray;&amp;quot;&amp;gt;[How do you propose to get around the problem Andrew brought up of accurately linking this low-level data to the interface/program&#039;s state at the moment it occurred? - Steven]&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt;[Low-level interactions will need to be logged along with a markup-language-style state description of the application itself.  This would either require access to the source code, or a detailed interface description from the interface designer that would allow for complete simulation of the application.]&amp;lt;/span&amp;gt;&lt;br /&gt;
* At the same scale of granularity, integrate explicit interface-interactions with multimodal-sensing data.  i.e. pupil-tracking, muscle-activity monitoring, auditory recognition, EEG data, and facial and posture-focused video. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Contributions&#039;&#039;&#039;&lt;br /&gt;
* Extensible, multi-modal, HCI framework for recording rich interaction-history data in existing applications.&amp;lt;span style=&amp;quot;color: gray;&amp;quot;&amp;gt;[Perhaps something should be said about sectioning this data off into modules - i.e. compiling all e-mail writing recordings to analyze separately from e-mail sorting recordings in order to facilitate analysis. - Steven]&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt;[I believe this is addressed in the &amp;quot;semantic-level chunking&amp;quot; section, given below.]&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Demonstration&#039;&#039;&#039;&lt;br /&gt;
* Techniques for pupil-tracking, auditory-recognition, and muscle-activity monitoring will be evaluated with respect to accuracy, sampling rate, and computational cost in a series of quantitative studies.  &amp;lt;span style=&amp;quot;color: gray;&amp;quot;&amp;gt;[Is there an explicit, quantifiable demonstration you can propose?  Such some kind of conclusive comparison between automated capture techniques and manual techniques?  Or maybe a demonstration of some kind of methodical, but still low-level, procedure for clustering related interaction primitives? [[User:E J Kalafarski|E J Kalafarski]] 15:02, 29 April 2009 (UTC)]&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt;[Things like pupil-tracking can be quantitatively evaluated through users tests.  For instance, we could instruct users to shift the focus of their eyes from one on-screen object to another as quickly as possible some fixed number of times. We could then compare the results from our system to determine accuracy and speed, and by varying the size and distance of the target objects, we could obtain richer data for analysis.  With respect to clustering low-level interactions, I believe that issue is addressed in the following section.]&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color: gray;&amp;quot;&amp;gt;[Should this take into account the need to match recordings to interface state? - Steven]&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt;[Possibly, if we go down the simulation route.  If we&#039;re actually logging all of the events from within the source code itself, I believe the demonstration of syncing low-level interaction with application-state is self-evident.]&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dependencies&#039;&#039;&#039;&lt;br /&gt;
* Hardware for pupil-tracking and muscle activity monitoring.  Commercial software packages for such software may be required.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Background and Related Work&#039;&#039;&#039;&lt;br /&gt;
* The utility of interaction histories with respect to assessing interface design has been demonstrated in &amp;lt;ref name = bob&amp;gt; [http://www.cs.brown.edu/people/trevor/Papers/Heer-2008-GraphicalHistories.pdf Graphical Histories for Visualization: Supporting Analysis, Communication, and Evaluation] (InfoVis 2008) &amp;lt;/ref&amp;gt;. &amp;lt;span style=&amp;quot;color: gray;&amp;quot;&amp;gt;Can you briefly summarize the utility with one sentence? Or is that what the next bullet does? (Jon)&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color: blue;&amp;quot;&amp;gt;[In the instance of this work, utility was demonstrated with respect to automatically generating presentations from data explorations, and providing quantitative interface-usage analysis that aided future decisions for interface designers.  i.e., this operations was performed a lot, and this one was not; therefore we should focus on making the first more efficient, perhaps at the expense of the second.  The results of the work are fairly basic, but they do demonstrate that logging histories is a useful practice for a number of reasons.]&amp;lt;/span&amp;gt;&lt;br /&gt;
* In addition, data management histories have been shown effective in the visualization community in &amp;lt;ref&amp;gt; [http://www.cs.brown.edu/people/trevor/Papers/Callahan-2006-MED.pdf Callahan-2006-MED] &amp;lt;/ref&amp;gt;  &amp;lt;ref&amp;gt; [http://www.cs.brown.edu/people/trevor/Papers/Callahan-2006-VVM.pdf Callahan-2006-VVM] &amp;lt;/ref&amp;gt; &amp;lt;ref&amp;gt; [http://www.cs.brown.edu/people/trevor/Papers/Bavoil-2005-VEI.pdf Bavoil-2005-VEI]&amp;lt;/ref&amp;gt;, providing visualizations by analogy &amp;lt;ref&amp;gt; [http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&amp;amp;arnumber=4376187&amp;amp;isnumber=4376125 Querying and Creating Visualizations by Analogy] &amp;lt;/ref&amp;gt; and offering automated suggestions &amp;lt;ref&amp;gt; [http://www.cs.utah.edu/~juliana/pub/tvcg-recommendation2008.pdf VisComplete: Automating Suggestions from Visualization Pipelines] &amp;lt;/ref&amp;gt;, which we expect to generalize to user interaction history.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;review&#039;&#039;&#039;&#039;&lt;br /&gt;
* This is recording everything possible during an interaction. It is necessary to do for our project. (Gideon)&lt;br /&gt;
* Two thumbs up. - Steven&lt;br /&gt;
&lt;br /&gt;
== Semantic-level Interaction Chunking ==&lt;br /&gt;
&lt;br /&gt;
* Owner: [[User:Trevor O&#039;Brien | Trevor O&#039;Brien]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aims&#039;&#039;&#039;&lt;br /&gt;
* Develop techniques for &#039;&#039;chunking&#039;&#039; low-level interaction primitives into &#039;&#039;semantic-level&#039;&#039; interactions, given an application&#039;s functionality and data-context.  (And de-chunking? Invertible mapping needed?)&lt;br /&gt;
* Perform user-study evaluation to validate chunking methods.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Contributions&#039;&#039;&#039;&lt;br /&gt;
* Design and user-study evaluation of semantic-chunking techniques for interaction.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Demonstration&#039;&#039;&#039;&lt;br /&gt;
* These techniques will be validated quantitatively with respect to efficiency and user error rate on a set of timed-tasks over a series of case studies.  In addition, qualitative feedback on user satisfaction will be incorporated in the evaluation of our methods.  &amp;lt;span style=&amp;quot;color: gray;&amp;quot;&amp;gt;[As above, how will this be validated quantitatively?  Comparing two methodologies for manual chunking?  What would these differing methodologies be? [[User:E J Kalafarski|E J Kalafarski]] 15:06, 29 April 2009 (UTC)]&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dependencies&#039;&#039;&#039;&lt;br /&gt;
* Software framework for collecting user interactions.&amp;lt;span style=&amp;quot;color: gray;&amp;quot;&amp;gt;[I&#039;d like to see this fleshed out in a theoretical manner. - Steven]&amp;lt;/span&amp;gt;&lt;br /&gt;
* Formal description of interface functionality.&lt;br /&gt;
* Description of data objects that can be manipulated through interaction.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;review&#039;&#039;&#039;&lt;br /&gt;
* With what level of accuracy can this be performed. I like the idea, its worthy of a nice project in and of itself. (Gideon)&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: gray;&amp;quot;&amp;gt;Can you include something about the broader impact of this contribution? (Jon)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Reconciling Usability Heuristics with Cognitive Theory ==&lt;br /&gt;
* Owner: [[User:E J Kalafarski|E J Kalafarski]] 14:56, 28 April 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Contribution&#039;&#039;&#039;: A weighted framework for the unification of established heuristic usability guidelines and accepted cognitive principles.&lt;br /&gt;
&lt;br /&gt;
[Andrew: Better word choice needed; technical terms that you are inventing should be defined -- for example, what is a &amp;quot;matricized analogue&amp;quot;?  According to Wikipedia, matricization is defined as tensor unfolding - no doubt this is not what you intendend.  Reviewers will not be gentle on points such as this, as they go to credibility.]&lt;br /&gt;
&lt;br /&gt;
[David: I&#039;m having trouble parsing this contribution.  How do you weight a framework?  Also, I&#039;d like to have a little more sense of how this might fit into the bigger picture.  The assignment didn&#039;t ask for that, but is there some way to provide some of that context?]&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: gray;&amp;quot;&amp;gt;[I agree that the wording is is a little confusing. The framework is not weighted, but rather it weights the different guidelines/principles. It might also be worth explaining how this is a useful contribution, e.g. does it allow for more accurate interface evaluation? -Eric]&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Demonstration&#039;&#039;&#039;: Three groups of experts anecdotally apply cognitive principles, heuristic usability principles, and a combination of the two.&lt;br /&gt;
* A &amp;quot;cognition expert,&amp;quot; given a constrained, limited-functionality interface, develops an independent evaluative value for each interface element based on accepted cognitive principles.&lt;br /&gt;
* A &amp;quot;usability expert&amp;quot; develops an independent evaluative value for each interface element based on accepted heuristic guidelines.&lt;br /&gt;
* A third expert applies several unified cognitive analogues from a matrix of weighted cognitive and &amp;lt;span style=&amp;quot;color: gray;&amp;quot;&amp;gt;[...HCI design principles? -Eric]&amp;lt;/span&amp;gt;&lt;br /&gt;
* User testing demonstrates the assumed efficacy and applicability of the matricized analogues versus independent application of analogued principles.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: gray;&amp;quot;&amp;gt;[There is still the question of how these weights are determined. Is this the job of the third expert? Or is the third expert given these weights, and he just determines how to apply them? -Eric]&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dependency&#039;&#039;&#039;: A set of established cognitive principles, selected with an eye toward heuristic analogues.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dependency&#039;&#039;&#039;: A set of established heuristic design guidelines, selected with an eye toward cognitive analogues.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;review&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* This seems like the 2d matrix? Is this implemented as a module? (Gideon)&lt;br /&gt;
* Gideon&#039;s comment brings up an important point - in what form will the weights be presented? - Steven&lt;br /&gt;
* Could be more explicit about whether the experts are simulated agents or real people (Jon)&lt;br /&gt;
&lt;br /&gt;
== Evaluation for Recommendation and Incremental Improvement ==&lt;br /&gt;
* Owner: [[User:E J Kalafarski|E J Kalafarski]] 14:56, 28 April 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Contributions&#039;&#039;&#039;: Using a limited set of interface evaluation modules for analysis, we demonstrate, in a narrow and controlled manner, the proposed efficiency and accuracy of a method of aggregating individual interface suggestions based on accepted CPM principles (e.g. Fitts&#039; Law and Affordance) and applying them to the incremental improvement of the interface.&lt;br /&gt;
&lt;br /&gt;
[David: I&#039;m a little lost.  Can you make this long sentence into a couple shorter simpler ones?  I think I can imagine what you are getting at, but I&#039;m not sure.]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Demonstration&#039;&#039;&#039;: A narrow but comprehensive study to demonstrate the efficacy and efficiency of automated aggregation of interface evaluation versus independent, analysis.  Shows not total replacement, but a gain in speed of evaluation comparable to the loss of control and feature.&lt;br /&gt;
* Given a carefully-constrained interface, perhaps with as few as two buttons and a minimalist feature set, expert interface designer given the individual results of several basic evaluation modules makes recommendations and suggestions to the design of the interface.&lt;br /&gt;
* Aggregation meta-module conducts similar survey of module outputs, outputting recommendations and suggestions for improvement of given interface.&lt;br /&gt;
* Separate independent body of experts then implements the two sets of suggestions and performs user study on the resultant interfaces, analyzing usability change and comparing it to the time and resources committed by the evaluation expert and the aggregation module, respectively.&lt;br /&gt;
&lt;br /&gt;
[David: nice demonstration!]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dependency&#039;&#039;&#039;: Module for the analysis of Fitts&#039; Law as it applies to the individual elements of a given interface.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dependency&#039;&#039;&#039;: Module for the analysis of a Affordance as it applies to the individual elements of a given interface.&lt;br /&gt;
&lt;br /&gt;
[David: I think this also has, as a dependency, some kind of framework for the modules.  &amp;quot;narrow but comprehensive&amp;quot; sounds challenging.  ]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;review&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* I see this as being the &amp;quot;black box&amp;quot; for our architecture? If so, good. Wouldn&#039;t the dependencies be any/all modules? (Gideon)&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color: gray;&amp;quot;&amp;gt;[I think this is the same as my contribution, and that we should merge them together. You&#039;ve covered some things that I didn&#039;t, such as a more detailed demonstration of how our framework is better than a human interface designer&#039;s evaluation. You also gave a demonstration of comparing recommendations, while I only covered evaluations. -Eric]&amp;lt;/span&amp;gt;&lt;br /&gt;
* I think this contribution and mine (the CPM-GOMS improvement) will need to be reconciled into a single unit. - Steven&lt;br /&gt;
* Interesting to note that this could describe the overarching architecture but it depends upon components of the architecture to work.  Would it depend on any other modules? (Jon)&lt;br /&gt;
&lt;br /&gt;
== Evaluation Metrics ==&lt;br /&gt;
Owner: [[User:Gideon Goldin | Gideon Goldin]]&lt;br /&gt;
&lt;br /&gt;
:*Architecture Outputs&lt;br /&gt;
::* Time (time to complete task)&lt;br /&gt;
:::# In user studies, this module predicted time-to-completion more accurately than the standard CPM-GOMS model.&lt;br /&gt;
:::* Dependencies&lt;br /&gt;
:::# CPM-GOMS Module with proposed cognitive load extension&lt;br /&gt;
::* Cognitive Load&lt;br /&gt;
:::# User studies were conducted during which participants brain&#039;s were scanned with EEG to measure activation levels.&lt;br /&gt;
:::# Self-report measures were obtained describing the amount of concentration/effort required on the part of the user.&lt;br /&gt;
:::# The literature base provided an accurate assessment of cognitive load in the tasks involved.&lt;br /&gt;
:::# Facial recognition allows us to approximate spans of high-load (e.g., furled brow)&lt;br /&gt;
:::* Dependencies&lt;br /&gt;
::::# CPM-GOMS Module with cognitive load extension&lt;br /&gt;
::::# Facial Gesture Recognition Module&lt;br /&gt;
::::# Self-Report Measure&lt;br /&gt;
::::# Database of load per cognitive tasks&lt;br /&gt;
::* Frustration&lt;br /&gt;
:::# Frustration is measured by asking participants to respond on the self-report scale.&lt;br /&gt;
:::# Facial recognition allows us to approximate spans of frustration (e.g., frowning, sighing, furled brow)&lt;br /&gt;
:::# Galvanic Skin Response allows detection of emotional arousal&lt;br /&gt;
:::# Heart rate monitoring allows detection of emotional arousal&lt;br /&gt;
:::* Dependencies&lt;br /&gt;
::::# Facial Gesture Recognition Module&lt;br /&gt;
::::# Galvanic Skin Response input&lt;br /&gt;
::::# Heart rate response input&lt;br /&gt;
::::# Interface Efficiency Module&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;review&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Parallel Framework for Evaluation Modules ==&lt;br /&gt;
* Owner: [[User:Adam Darlow | Adam Darlow]], [[User:Eric Sodomka | Eric Sodomka]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This section will describe in more detail the inputs, outputs and architecture that were presented in the introduction.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Contribution:&#039;&#039;&#039; Create a framework that provides better interface evaluations than currently existing techniques, and a module weighting system that provides better evaluations than any of its modules taken in isolation.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Demonstration:&#039;&#039;&#039; Run a series of user studies and compare users&#039; performance to expected performance, as given by the following interface evaluation methods:&lt;br /&gt;
# Traditional, manual interface evaluation &lt;br /&gt;
#* As a baseline.&lt;br /&gt;
# Using our system with a single module&lt;br /&gt;
#* &amp;quot;Are any of our individual modules better than currently existing methods of interface evaluation?&amp;quot;.&lt;br /&gt;
# Using our system with multiple modules, but have aggregator give a fixed, equal weighting to each module&lt;br /&gt;
#* As a baseline for our aggregator: want to show that the value of adding the dynamic weighting.&lt;br /&gt;
# Using our system with multiple modules, and allow the aggregator to adjust weightings for each module, but have each module get a single weighting for all dimensions (time, fatigue, etc.)&lt;br /&gt;
#* For validating the use of a dynamic weighting system.&lt;br /&gt;
# Using our system with multiple modules, and allow the aggregator to adjust weightings for each module, and allow the module to give different weightings to every dimension of the module (time, fatigue, etc.) &lt;br /&gt;
#* For validating the use of weighting across multiple utility dimensions.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dependencies:&#039;&#039;&#039; Requires a good set of modules to plug into the framework.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;review&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* What exactly are the differences between this and EJ&#039;s earlier contribution? I think that if they are the same, this one is a bit more clear, IMHO. (Gideon)&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: gray;&amp;quot;&amp;gt;[I have a similar question to Gideon&#039;s.  My hunch is that this defines a sort of &amp;quot;namespace&amp;quot; for the modules themselves, while the other contribution (the one you guys assigned to me) is more explicitly the aggregator of these outputs.  Correct me if I&#039;m wrong.  But if that&#039;s the case, the two contributions might need to be validated similarly/together. [[User:E J Kalafarski|E J Kalafarski]] 15:17, 29 April 2009 (UTC)]&amp;lt;/span&amp;gt;&lt;br /&gt;
* I feel like this structure&#039;s clarity may come at expense of specificity, I&#039;d like to know more than that it&#039;s parallel. - Steven&lt;br /&gt;
* Very thorough demonstration(s)! (Jon)&lt;br /&gt;
* I think that the contribution is much more clearly stated here -- I would argue for integrating them together. (Andrew)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Sample Modules ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Fitts&#039;s Law ===&lt;br /&gt;
* Owner: [[User:Jon Ericson | Jon Ericson]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aims&#039;&#039;&#039;&lt;br /&gt;
*Provides an estimate of the required time to complete various tasks that have been decomposed into formalized sequences of interactions with interface elements, and will provide evaluations and recommendations for optimizing the time required to complete those tasks using the interface.&lt;br /&gt;
*Integrate this module into our novel cognitive framework for interface evaluation.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Contributions&#039;&#039;&#039;&lt;br /&gt;
* [Not sure here.  Is this really novel?]  &amp;lt;span style=&amp;quot;color: gray;&amp;quot;&amp;gt;[I like it.  I think it&#039;s necessary.  I think we demonstrated in class that this has not been formalized and standardized already. [[User:E J Kalafarski|E J Kalafarski]] 15:22, 29 April 2009 (UTC)]&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Demonstrations&#039;&#039;&#039;&lt;br /&gt;
*We will demonstrate the feasibility of this module by generating a formal description of an interface for scientific visualization, a formal description of a task to perform with the interface, and we will correlate the estimated time to complete the task based on Fitt&#039;s law with the actual time required based on several user traces.  &amp;lt;span style=&amp;quot;color: gray;&amp;quot;&amp;gt;[Check. [[User:E J Kalafarski|E J Kalafarski]] 15:22, 29 April 2009 (UTC)]&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dependencies&#039;&#039;&#039;&lt;br /&gt;
*Requires a formal description of the interface with graph nodes representing clickable interface elements and graph edges representing the physical (on-screen) distance between adjacent nodes. &amp;lt;span style=&amp;quot;color: gray;&amp;quot;&amp;gt;[Is this graph format you&#039;re suggesting part of the proposal, or is the &amp;quot;language&amp;quot; itself a dependency from literature? [[User:E J Kalafarski|E J Kalafarski]] 15:22, 29 April 2009 (UTC)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Module Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Inputs &amp;lt;span style=&amp;quot;color: gray;&amp;quot;&amp;gt;[In theory could the non-semantic inputs be automatically read from the interface? - Steven]&amp;lt;/span&amp;gt;&lt;br /&gt;
**A formal description of the interface and its elements (e.g. buttons).&lt;br /&gt;
**A formal description of a particular task and the possible paths through a subset of interface elements that permit the user to accomplish that task.&lt;br /&gt;
**The physical distances between interface elements along those paths.&lt;br /&gt;
**The width of those elements along the most likely axes of motion.&lt;br /&gt;
**Device (e.g. mouse) characteristics including start/stop time and the inherent speed limitations of the device.&lt;br /&gt;
&lt;br /&gt;
*Output&lt;br /&gt;
**The module will then use the Shannon formulation of Fitt&#039;s Law to compute the average time needed to complete the task along those paths.&lt;br /&gt;
&lt;br /&gt;
=== Affordances ===&lt;br /&gt;
* Owner: [[User:Jon Ericson | Jon Ericson]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aims&#039;&#039;&#039;&lt;br /&gt;
*To provide interface evaluations and recommendations based on a measure of the extent to which the user perceives the relevant affordances of the interface when performing specified tasks.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Contributions&#039;&#039;&#039;&lt;br /&gt;
*A quantitative measure of the extent to which an interface suggests to the user the actions that it is capable of performing.&lt;br /&gt;
*A quantitative, indirect measure of the extent to which an interface facilitates (or hinders) the use of fast perceptual mechanisms.&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: gray;&amp;quot;&amp;gt;[Again, I&#039;m a fan.  I don&#039;t think this has been formalized already. [[User:E J Kalafarski|E J Kalafarski]] 15:24, 29 April 2009 (UTC)]&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Demonstrations&#039;&#039;&#039;&lt;br /&gt;
*We will demonstrate the feasibility of this module through the following experiment:&lt;br /&gt;
**Specify a task for a user to perform with scientific visualization software.&lt;br /&gt;
**There should be several different ways to complete the task (paths through the space of possible interface actions).&lt;br /&gt;
**Some of these paths will be more direct than others.&lt;br /&gt;
**We will then measure the number of task-relevant affordances that were perceived and acted upon by analyzing the user trace, and the time required to complete the task.&lt;br /&gt;
**Use the formula: (affordances perceived) / [(relevant affordances present) * (time to complete task)].&lt;br /&gt;
**Correlate the resulting scores with verbal reports on naturalness and ease-of-use for the interface.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dependencies&#039;&#039;&#039;&lt;br /&gt;
*Requires a method for capturing user traces that include formalized records of interface elements used for a particular, pre-specified task or set of tasks.&lt;br /&gt;
*Providing suggestions/recommendations will require interaction with other modules that analyze the perceptual salience of interface elements.&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: gray;&amp;quot;&amp;gt;[Some kind of formalized list or arbitrary classification of affordances might be necessary to limit the scope of this contribution. [[User:E J Kalafarski|E J Kalafarski]] 15:24, 29 April 2009 (UTC)]&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description of the Module&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Module Inputs&#039;&#039;&lt;br /&gt;
**Formalized descriptions of...&lt;br /&gt;
***Interface elements&lt;br /&gt;
***Their associated actions&lt;br /&gt;
***The functions of those actions&lt;br /&gt;
***A particular task&lt;br /&gt;
***User traces for that task &amp;lt;span style=&amp;quot;color: gray;&amp;quot;&amp;gt;[Could this module benefit from eye-tracking? - Steven]&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Processing&lt;br /&gt;
**Inputs (1-4) are then used to generate a &amp;quot;user-independent&amp;quot; space of possible functions that the interface is capable of performing with respect to a given task -- what the interface &amp;quot;affords&amp;quot; the user.  From this set of possible interactions, our model will then determine the subset of optimal paths for performing a particular task.  The user trace (5) is then used to determine what functions actually were performed in the course of a given task of interest and this information is then compared to the optimal path data to determine the extent to which affordances of the interface are present but not perceived.  &lt;br /&gt;
&lt;br /&gt;
*Output&lt;br /&gt;
**The output of this module is a simple ratio of (affordances perceived) / [(relevant affordances present) * (time to complete task)] which provides a quantitative measure of the extent to which the interface is &amp;quot;natural&amp;quot; to use for a particular task.&lt;/div&gt;</summary>
		<author><name>Trevor O&#039;Brien</name></author>
	</entry>
	<entry>
		<id>http://vrl.cs.brown.edu/wiki/index.php?title=CS295J/Final_contributions&amp;diff=3239</id>
		<title>CS295J/Final contributions</title>
		<link rel="alternate" type="text/html" href="http://vrl.cs.brown.edu/wiki/index.php?title=CS295J/Final_contributions&amp;diff=3239"/>
		<updated>2009-04-28T20:18:50Z</updated>

		<summary type="html">&lt;p&gt;Trevor O&amp;#039;Brien: /* Semantic-level Interaction Chunking */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Specific Aims and Contributions (to be separated later) =&lt;br /&gt;
&lt;br /&gt;
[David: I have removed some unattributed stuff that wasn&#039;t in the format described in assignment 13.  If that was in error, go back to an earlier version to recover the text, attribute it, and put in the correct format.]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Recording User-Interaction Primitives ==&lt;br /&gt;
&lt;br /&gt;
* Owner: [[User:Trevor O&#039;Brien | Trevor O&#039;Brien]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aims&#039;&#039;&#039;&lt;br /&gt;
* Develop system for logging low-level user-interactions within existing applications.  By low-level interactions, we refer to those interactions for which a quantitative, predictive, GOMS-like model may be generated.&lt;br /&gt;
* At the same scale of granularity, integrate explicit interface-interactions with multimodal-sensing data.  i.e. pupil-tracking, muscle-activity monitoring, auditory recognition, EEG data, and facial and posture-focused video. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Contributions&#039;&#039;&#039;&lt;br /&gt;
* Extensible, multi-modal, HCI framework for recording rich interaction-history data in existing applications.  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Demonstration&#039;&#039;&#039;&lt;br /&gt;
* Techniques for pupil-tracking, auditory-recognition, and muscle-activity monitoring will be evaluated with respect to accuracy, sampling rate, and computational cost in a series of quantitative studies.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dependencies&#039;&#039;&#039;&lt;br /&gt;
* Hardware for pupil-tracking and muscle activity monitoring.  Commercial software packages for such software may be required.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Background and Related Work&#039;&#039;&#039;&lt;br /&gt;
* The utility of interaction histories with respect to assessing interface design has been demonstrated in &amp;lt;ref name = bob&amp;gt; [http://www.cs.brown.edu/people/trevor/Papers/Heer-2008-GraphicalHistories.pdf Graphical Histories for Visualization: Supporting Analysis, Communication, and Evaluation] (InfoVis 2008) &amp;lt;/ref&amp;gt;.&lt;br /&gt;
* In addition, data management histories have been shown effective in the visualization community in &amp;lt;ref&amp;gt; [http://www.cs.brown.edu/people/trevor/Papers/Callahan-2006-MED.pdf Callahan-2006-MED] &amp;lt;/ref&amp;gt;  &amp;lt;ref&amp;gt; [http://www.cs.brown.edu/people/trevor/Papers/Callahan-2006-VVM.pdf Callahan-2006-VVM] &amp;lt;/ref&amp;gt; &amp;lt;ref&amp;gt; [http://www.cs.brown.edu/people/trevor/Papers/Bavoil-2005-VEI.pdf Bavoil-2005-VEI]&amp;lt;/ref&amp;gt;, providing visualizations by analogy &amp;lt;ref&amp;gt; [http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&amp;amp;arnumber=4376187&amp;amp;isnumber=4376125 Querying and Creating Visualizations by Analogy] &amp;lt;/ref&amp;gt; and offering automated suggestions &amp;lt;ref&amp;gt; [http://www.cs.utah.edu/~juliana/pub/tvcg-recommendation2008.pdf VisComplete: Automating Suggestions from Visualization Pipelines] &amp;lt;/ref&amp;gt;, which we expect to generalize to user interaction history.&lt;br /&gt;
&lt;br /&gt;
== Semantic-level Interaction Chunking ==&lt;br /&gt;
&lt;br /&gt;
* Owner: [[User:Trevor O&#039;Brien | Trevor O&#039;Brien]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aims&#039;&#039;&#039;&lt;br /&gt;
* Develop techniques for &#039;&#039;chunking&#039;&#039; low-level interaction primitives into &#039;&#039;semantic-level&#039;&#039; interactions, given an application&#039;s functionality and data-context.  (And de-chunking? Invertible mapping needed?)&lt;br /&gt;
* Perform user-study evaluation to validate chunking methods.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Contributions&#039;&#039;&#039;&lt;br /&gt;
* Design and user-study evaluation of semantic-chunking techniques for interaction.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Demonstration&#039;&#039;&#039;&lt;br /&gt;
* These techniques will be validated quantitatively with respect to efficiency and user error rate on a set of timed-tasks over a series of case studies.  In addition, qualitative feedback on user satisfaction will be incorporated in the evaluation of our methods.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dependencies&#039;&#039;&#039;&lt;br /&gt;
* Software framework for collecting user interactions.&lt;br /&gt;
* Formal description of interface functionality.&lt;br /&gt;
* Description of data objects that can be manipulated through interaction.&lt;br /&gt;
&lt;br /&gt;
== Reconciling Usability Heuristics with Cognitive Theory ==&lt;br /&gt;
* Owner: [[User:E J Kalafarski|E J Kalafarski]] 14:56, 28 April 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Contribution&#039;&#039;&#039;: A weighted framework for the unification of established heuristic usability guidelines and accepted cognitive principles.&lt;br /&gt;
&lt;br /&gt;
[David: I&#039;m having trouble parsing this contribution.  How do you weight a framework?  Also, I&#039;d like to have a little more sense of how this might fit into the bigger picture.  The assignment didn&#039;t ask for that, but is there some way to provide some of that context?]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Demonstration&#039;&#039;&#039;: Three groups of experts anecdotally apply cognitive principles, heuristic usability principles, and a combination of the two.&lt;br /&gt;
* A &amp;quot;cognition expert,&amp;quot; given a constrained, limited-functionality interface, develops an independent evaluative value for each interface element based on accepted cognitive principles.&lt;br /&gt;
* A &amp;quot;usability expert&amp;quot; develops an independent evaluative value for each interface element based on accepted heuristic guidelines.&lt;br /&gt;
* A third expert applies several unified cognitive analogues from a matrix of weighted cognitive and &lt;br /&gt;
* User testing demonstrates the assumed efficacy and applicability of the matricized analogues versus independent application of analogued principles.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dependency&#039;&#039;&#039;: A set of established cognitive principles, selected with an eye toward heuristic analogues.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dependency&#039;&#039;&#039;: A set of established heuristic design guidelines, selected with an eye toward cognitive analogues.&lt;br /&gt;
&lt;br /&gt;
== Evaluation for Recommendation and Incremental Improvement ==&lt;br /&gt;
* Owner: [[User:E J Kalafarski|E J Kalafarski]] 14:56, 28 April 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Contributions&#039;&#039;&#039;: Using a limited set of interface evaluation modules for analysis, we demonstrate, in a narrow and controlled manner, the proposed efficiency and accuracy of a method of aggregating individual interface suggestions based on accepted CPM principles (e.g. Fitts&#039; Law and Affordance) and applying them to the incremental improvement of the interface.&lt;br /&gt;
&lt;br /&gt;
[David: I&#039;m a little lost.  Can you make this long sentence into a couple shorter simpler ones?  I think I can imagine what you are getting at, but I&#039;m not sure.]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Demonstration&#039;&#039;&#039;: A narrow but comprehensive study to demonstrate the efficacy and efficiency of automated aggregation of interface evaluation versus independent, analysis.  Shows not total replacement, but a gain in speed of evaluation comparable to the loss of control and feature.&lt;br /&gt;
* Given a carefully-constrained interface, perhaps with as few as two buttons and a minimalist feature set, expert interface designer given the individual results of several basic evaluation modules makes recommendations and suggestions to the design of the interface.&lt;br /&gt;
* Aggregation meta-module conducts similar survey of module outputs, outputting recommendations and suggestions for improvement of given interface.&lt;br /&gt;
* Separate independent body of experts then implements the two sets of suggestions and performs user study on the resultant interfaces, analyzing usability change and comparing it to the time and resources committed by the evaluation expert and the aggregation module, respectively.&lt;br /&gt;
&lt;br /&gt;
[David: nice demonstration!]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dependency&#039;&#039;&#039;: Module for the analysis of Fitts&#039; Law as it applies to the individual elements of a given interface.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dependency&#039;&#039;&#039;: Module for the analysis of a Affordance as it applies to the individual elements of a given interface.&lt;br /&gt;
&lt;br /&gt;
[David: I think this also has, as a dependency, some kind of framework for the modules.  &amp;quot;narrow but comprehensive&amp;quot; sounds challenging.  ]&lt;br /&gt;
&lt;br /&gt;
== Evaluation Metrics ==&lt;br /&gt;
Owner: [[User:Gideon Goldin | Gideon Goldin]]&lt;br /&gt;
&lt;br /&gt;
:*Architecture Outputs&lt;br /&gt;
::* Time (time to complete task)&lt;br /&gt;
:::# Performs as well or better than CPM-GOMS, demonstrated with user tasks&lt;br /&gt;
:::* Dependencies&lt;br /&gt;
:::# CPM-GOMS Module with cognitive load extension&lt;br /&gt;
::* Cognitive Load&lt;br /&gt;
:::# Predicts cognitive load during tasks, demonstrated with user tasks&lt;br /&gt;
:::* Dependencies&lt;br /&gt;
::::# CPM-GOMS Module with cognitive load extension&lt;br /&gt;
::::# Facial Gesture Recognition Module&lt;br /&gt;
::* Frustration&lt;br /&gt;
:::# Accurately predicts users&#039; frustration levels, demonstrated with user tasks&lt;br /&gt;
:::* Dependencies&lt;br /&gt;
::::# Facial Gesture Recognition Module&lt;br /&gt;
::::# Galvanic Skin Response Module&lt;br /&gt;
::::# Interface Efficiency Module&lt;br /&gt;
::* Aesthetic Appeal&lt;br /&gt;
:::# Analyzes if the interface is aesthetically unpleasing, demonstrated with user tasks&lt;br /&gt;
:::* Dependencies&lt;br /&gt;
::::# Aesthetics Module &lt;br /&gt;
::* Simplicity&lt;br /&gt;
:::# Analyzes how simple the interface is, demonstrated with user tasks&lt;br /&gt;
:::* Dependencies&lt;br /&gt;
::::# Interface Efficiency Module&lt;br /&gt;
&lt;br /&gt;
== Parallel Framework for Evaluation Modules ==&lt;br /&gt;
* Owner: [[User:Adam Darlow | Adam Darlow]], [[User:Eric Sodomka | Eric Sodomka]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This section will describe in more detail the inputs, outputs and architecture that were presented in the introduction.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Contributions ====&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Create a framework that provides better interface evaluations than currently existing techniques, and a module weighting system that provides better evaluations than any of its modules taken in isolation.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Demonstrate by running user studies and comparing this performance to expected performance, as given by the following interface evaluation methods:&lt;br /&gt;
*# Traditional, manual interface evaluation &lt;br /&gt;
*#* As a baseline.&lt;br /&gt;
*# Using our system with a single module&lt;br /&gt;
*#* &amp;quot;Are any of our individual modules better than currently existing methods of interface evaluation?&amp;quot;.&lt;br /&gt;
*# Using our system with multiple modules, but have aggregator give a fixed, equal weighting to each module&lt;br /&gt;
*#* As a baseline for our aggregator: want to show that the value of adding the dynamic weighting.&lt;br /&gt;
*# Using our system with multiple modules, and allow the aggregator to adjust weightings for each module, but have each module get a single weighting for all dimensions (time, fatigue, etc.)&lt;br /&gt;
*#* For validating the use of a dynamic weighting system.&lt;br /&gt;
*# Using our system with multiple modules, and allow the aggregator to adjust weightings for each module, and allow the module to give different weightings to every dimension of the module (time, fatigue, etc.) &lt;br /&gt;
*#* For validating the use of weighting across multiple utility dimensions.&lt;br /&gt;
*Dependencies: Having a good set of modules to plug into the framework.&lt;br /&gt;
&lt;br /&gt;
[David: I have removed details of framework that seemed beyond contribs/demos/dependencies]&lt;br /&gt;
&lt;br /&gt;
== Evaluation and Recommendation via Modules ==&lt;br /&gt;
* Owner: [[User:E J Kalafarski | E J Kalafarski]]&lt;br /&gt;
&lt;br /&gt;
A &amp;quot;meta-module&amp;quot; called the aggregator will be responsible for assembling and formatting the output of all other modules into a structure that is both extensible and immediately usable, by both an automated designer or a human designer.&lt;br /&gt;
&lt;br /&gt;
===Requirements===&lt;br /&gt;
The aggregator&#039;s functionality, then, is defined by its &#039;&#039;&#039;inputs&#039;&#039;&#039;, the outputs of the other modules, and the desired &#039;&#039;&#039;output&#039;&#039;&#039; of the system as a whole, per its position in the architecture.  Its purpose is largely formatting and reconciliation of the products of the multitudinous (and extensible) modules.  The output of the aggregator must meet several requirements: first, to generate a set of human-readable suggestions for the improvement of the given interface; second, to generate a machine-readable, but also analyzable, evaluation of the various characteristics of the interface and accompanying user traces.&lt;br /&gt;
&lt;br /&gt;
From these specifications, it is logical to assume that a common language or format will be required for the output of individual modules.  We propose an XML-based file format, allowing: (1) a section for the standardized identification of problem areas, applicable rules, and proposed improvements, generalized by the individual module and mapped to a single element, or group of elements, in the original interface specification; (2) a section for specification of generalizable &amp;quot;utility&amp;quot; functions, allowing a module to specify how much a measurable quantity of utility is positively or negatively affected by properties of the input interface; (3) new, user-definable sections for evaluations of the given interface not covered by the first two sections.  The first two sections are capable of conveying the vast majority of module outputs predicted at this time, but the XML can extensibly allow modules to pass on whatever information may become prominent in the future.&lt;br /&gt;
&lt;br /&gt;
===Specification===&lt;br /&gt;
 &amp;lt;module id=&amp;quot;Fitts-Law&amp;quot;&amp;gt;&lt;br /&gt;
 	&amp;lt;interface-elements&amp;gt;&lt;br /&gt;
 		&amp;lt;element&amp;gt;&lt;br /&gt;
 			&amp;lt;desc&amp;gt;submit button&amp;lt;/desc&amp;gt;&lt;br /&gt;
 			&amp;lt;problem&amp;gt;&lt;br /&gt;
 				&amp;lt;desc&amp;gt;size&amp;lt;/desc&amp;gt;&lt;br /&gt;
 				&amp;lt;suggestion&amp;gt;width *= 2&amp;lt;/suggestion&amp;gt;&lt;br /&gt;
 				&amp;lt;suggestion&amp;gt;height *= 2&amp;lt;/suggestion&amp;gt;&lt;br /&gt;
 				&amp;lt;human-suggestion&amp;gt;Increase size relative to other elements&amp;lt;/human-suggestion&amp;gt;&lt;br /&gt;
 			&amp;lt;/problem&amp;gt;&lt;br /&gt;
 		&amp;lt;/element&amp;gt;&lt;br /&gt;
 	&amp;lt;/interface-elements&amp;gt;&lt;br /&gt;
 	&amp;lt;utility&amp;gt;&lt;br /&gt;
 		&amp;lt;dimension&amp;gt;&lt;br /&gt;
 			&amp;lt;desc&amp;gt;time&amp;lt;/desc&amp;gt;&lt;br /&gt;
 			&amp;lt;value&amp;gt;0:15:35&amp;lt;/value&amp;gt;&lt;br /&gt;
 		&amp;lt;/dimension&amp;gt;&lt;br /&gt;
 		&amp;lt;dimension&amp;gt;&lt;br /&gt;
 			&amp;lt;desc&amp;gt;frustration&amp;lt;/desc&amp;gt;&lt;br /&gt;
 			&amp;lt;value&amp;gt;pulling hair out&amp;lt;/value&amp;gt;&lt;br /&gt;
 		&amp;lt;/dimension&amp;gt;&lt;br /&gt;
 		&amp;lt;dimension&amp;gt;&lt;br /&gt;
 			&amp;lt;desc&amp;gt;efficiency&amp;lt;/desc&amp;gt;&lt;br /&gt;
 			&amp;lt;value&amp;gt;13.2s/KPM task&amp;lt;/value&amp;gt;&lt;br /&gt;
 			&amp;lt;value&amp;gt;0.56m/CPM task&amp;lt;/value&amp;gt;&lt;br /&gt;
 		&amp;lt;/dimension&amp;gt;&lt;br /&gt;
 	&amp;lt;/utility&amp;gt;&lt;br /&gt;
 	&amp;lt;tasks&amp;gt;&lt;br /&gt;
 		&amp;lt;task&amp;gt;&lt;br /&gt;
 			&amp;lt;desc&amp;gt;complete form&amp;lt;/desc&amp;gt;&lt;br /&gt;
 		&amp;lt;/task&amp;gt;&lt;br /&gt;
 		&amp;lt;task&amp;gt;&lt;br /&gt;
 			&amp;lt;desc&amp;gt;lookup SSN&amp;lt;/desc&amp;gt;&lt;br /&gt;
 		&amp;lt;/task&amp;gt;&lt;br /&gt;
 		&amp;lt;task&amp;gt;&lt;br /&gt;
 			&amp;lt;desc&amp;gt;format phone number&amp;lt;/desc&amp;gt;&lt;br /&gt;
 		&amp;lt;/task&amp;gt;&lt;br /&gt;
 	&amp;lt;/tasks&amp;gt;&lt;br /&gt;
 &amp;lt;/module&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Logic===&lt;br /&gt;
This file provided by each module is then the input for the aggregator.  The aggregator&#039;s most straightforward function is the compilation of the &amp;quot;problem areas,&amp;quot; assembling them and noting problem areas and suggestions that are recommended by more than one module, and weighting them accordingly in its final report.  These weightings can begin in an equal state, but the aggregator should be capable of learning iteratively which modules&#039; results are most relevant to the user and update weightings accordingly.  This may need to be accomplished with manual tuning, or a machine-learning algorithm capable of determining which modules most often agree with others.&lt;br /&gt;
&lt;br /&gt;
Secondly, the aggregator compiles the utility functions provided by the module specs.  This, again, is a summation of similarly-described values from the various modules.&lt;br /&gt;
&lt;br /&gt;
When confronted with user-defined sections of the XML spec, the aggregator is primarily responsible for compiling them and sending them along to the output of the machine.  Even if the aggregator does not recognize a section or property of the evaluative spec, if it sees the property reported by more than one module it should be capable of aggregating these intelligently.  In future versions of the spec, it should be possible for a module to provide instructions for the aggregator on how to handle unrecognized sections of the XML.&lt;br /&gt;
&lt;br /&gt;
From these compilations, then, the aggregator should be capable of outputting both aggregated human-readable suggestions on interface improvements for a human designer, as well as a comprehensive evaluation of the interface&#039;s effectiveness at the given task traces.  Again, this is dependent on the specification of the system as a whole, but is likely to include measures and comparisons, graphings of task versus utility, and quantitative measures of an element&#039;s effectiveness.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This section is necessarily defined by the output of the individual modules (which I already expect to be of varied and arbitrary structure) and the desired output of the machine as a whole.  It will likely need to be revised heavily after other modules and the &amp;quot;Parellel Framework&amp;quot; section are defined.&#039;&#039; [[User:E J Kalafarski|E J Kalafarski]] 12:34, 24 April 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This section describes the aggregator, which takes the output of multiple independent modules and aggregates the results to provide (1) an evaluation and (2) recommendations for the user interface. We should explain how the aggregator weights the output of different modules (this could be based on historical performance of each module, or perhaps based on E.J.&#039;s cognitive/HCI guidelines).&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Sample Modules ==&lt;br /&gt;
&lt;br /&gt;
=== CPM-GOMS ===&lt;br /&gt;
* Owners: [[User:Steven Ellis | Steven Ellis]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This module will provide interface evaluations and suggestions based on a CPM-GOMS model of cognition for the given interface. It will provide a quantitative, predictive, cognition-based parameterization of usability. From empirically collected data, user trajectories through the model (critical paths) will be examined, highlighting bottlenecks within the interface, and offering suggested alterations to the interface to induce more optimal user trajectories.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
I’m hoping to have some input on this section, because it seems to be the crux of the “black box” into which we take the inputs of interface description, user traces, etc. and get our outputs (time, recommendations, etc.).  I know at least a few people have pretty strong thoughts on the matter and we ought to discuss the final structure.&lt;br /&gt;
&lt;br /&gt;
That said – my proposal for the module:&lt;br /&gt;
*In my opinion the concept of the Model Human Processor (at least as applied in CPM) is outdated – it’s too economic/overly parsimonious in its conception of human activity.  I think we need to create a structure which accounts for more realistic conditions of HCI including multitasking, aspects of distributed cognition (and other relevant uses of tools – as far as I can tell CPM doesn’t take into account any sort of productivity aids), executive control processes of attention, etc.  ACT-R appears to take steps towards this but we would probably need to look at their algorithms to know for sure.&lt;br /&gt;
*Critical paths will continue to play an important role – we should in fact emphasize that part of this tool’s purpose will be a description not only of ways in which the interface should be modified to best fit a critical path, but also ways in which the user’s ought to be instructed in their use of the path.  This feedback mechanism could be bidirectional – if the model’s predictions of the user’s goals are incorrect, the critical path determined will also be incorrect and the interface inherently suboptimal.  The user could be prompted with a tooltip explaining in brief why and how the interface has changed, along with options to revert, select other configurations (euphemized by goals), and to view a short video detailing how to properly use the interface.&lt;br /&gt;
*Call me crazy but, if we assume designers will be willing to code a model of their interfaces into our ACT-R-esque language, could we allow that model to be fairly transparent to the user, who could use a gui to input their goals to find an analogue in the program which would subsequently rearrange its interface to fit the user’s needs?  Even if not useful to the users, such dynamic modeling could really help designers (IMO)&lt;br /&gt;
*I think the model should do its best to accept models written for ACT-R and whatever other cognitive models there are out there – gives us the best chance of early adoption&lt;br /&gt;
*I would particularly appreciate input on the number/complexity/type of inputs we’ll be using, as well as the same qualities for the output.&lt;br /&gt;
&lt;br /&gt;
=== HCI Guidelines ===&lt;br /&gt;
* Owner: [[User:E J Kalafarski | E J Kalafarski]]&lt;br /&gt;
&lt;br /&gt;
Schneiderman&#039;s Eight Golden Rules and Jakob Nielsen&#039;s Ten Heuristics are perhaps the most famous and well-regarded heuristic design guidelines to emerge over the last twenty years.  Although the explicit theoretical basis for such heuristics is controversial and not well-explored, the empirical success of these guidelines is established and accepted.  This module will parse out up to three or four common (that is, intersecting) principles from these accepted guidelines and apply them to the input interface.&lt;br /&gt;
&lt;br /&gt;
As an example, we identify an analogous principle that appears in Schneiderman (&amp;quot;Reduce short-term memory load&amp;quot;)&amp;lt;ref&amp;gt;http://faculty.washington.edu/jtenenbg/courses/360/f04/sessions/schneidermanGoldenRules.html&amp;lt;/ref&amp;gt; and Nielsen (&amp;quot;Recognition rather than recall/Minimize the user&#039;s memory load&amp;quot;)&amp;lt;ref&amp;gt;http://www.useit.com/papers/heuristic/heuristic_list.html&amp;lt;/ref&amp;gt;.  The input interface is then evaluated for the consideration of the principle, based on an explicit formal description of the interface, such as XAML or XUL.  The module attempts to determine how effectively the interface demonstrates the principle.  When analyzing an interface for several principles that may be conflicting or opposing in a given context, the module makes use of a hard-coded but iterative (and evolving) weighting of these principles, based on (1) how often they appear in the training set of accepted sets of guidelines, (2) how analogues a heuristic principle is to a cognitive principle in a parallel training set, and (3) how effective the principle&#039;s associated suggestion is found to be using a feedback mechanism.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inputs&#039;&#039;&#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
# A formal description of the interface and its elements (e.g. buttons).&lt;br /&gt;
# A formal description of a particular task and the possible paths through a subset of interface elements that permit the user to accomplish that task.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Output&#039;&#039;&#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
Standard XML-formatted file containing problem areas of the input interface, suggestions for each problem area based on principles that were found to have a strong application to a problem element and the problem itself, and a human-readable generated analysis of the element&#039;s affinity for the principle.  Quantitative outputs will not be possible based on heuristic guidelines, and the &amp;quot;utility&amp;quot; section of this module&#039;s output is likely to be blank.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This section could include an example or two of established design guidelines that could easily be implemented as modules.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Fitts&#039;s Law ===&lt;br /&gt;
* Owner: [[User:Jon Ericson | Jon Ericson]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This module provides an estimate of the required time to complete various tasks that have been decomposed into formalized sequences of interactions with interface elements, and will provide evaluations and recommendations for optimizing the time required to complete those tasks using the interface.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1. A formal description of the interface and its elements (e.g. buttons).&lt;br /&gt;
&lt;br /&gt;
2. A formal description of a particular task and the possible paths through a subset of interface elements that permit the user to accomplish that task.&lt;br /&gt;
&lt;br /&gt;
3. The physical distances between interface elements along those paths.&lt;br /&gt;
&lt;br /&gt;
4. The width of those elements along the most likely axes of motion.&lt;br /&gt;
&lt;br /&gt;
5. Device (e.g. mouse) characteristics including start/stop time and the inherent speed limitations of the device.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Output&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The module will then use the Shannon formulation of Fitt&#039;s Law to compute the average time needed to complete the task along those paths.&lt;br /&gt;
&lt;br /&gt;
=== Affordances ===&lt;br /&gt;
* Owner: [[User:Jon Ericson | Jon Ericson]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This simple module will provide interface evaluations and recommendations based on a measure of the extent to which the user perceives the relevant affordances of the interface when performing a number of specified tasks.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inputs&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Formalized descriptions of...&lt;br /&gt;
&lt;br /&gt;
1. Interface elements&lt;br /&gt;
&lt;br /&gt;
2. Their associated actions&lt;br /&gt;
&lt;br /&gt;
3. The functions of those actions&lt;br /&gt;
&lt;br /&gt;
4. A particular task&lt;br /&gt;
&lt;br /&gt;
5. User traces for that task.  &lt;br /&gt;
&lt;br /&gt;
Inputs (1-4) are then used to generate a &amp;quot;user-independent&amp;quot; space of possible functions that the interface is capable of performing with respect to a given task -- what the interface &amp;quot;affords&amp;quot; the user.  From this set of possible interactions, our model will then determine the subset of optimal paths for performing a particular task.  The user trace (5) is then used to determine what functions actually were performed in the course of a given task of interest and this information is then compared to the optimal path data to determine the extent to which affordances of the interface are present but not perceived.  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Output&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The output of this module is a simple ratio of (affordances perceived) / [(relevant affordances present) * (time to complete task)] which provides a quantitative measure of the extent to which the interface is &amp;quot;natural&amp;quot; to use for a particular task.&lt;br /&gt;
&lt;br /&gt;
=== Workflow, Multi-tasking and Interruptions ===&lt;br /&gt;
* Owner: [[User:Andrew Bragdon | Andrew Bragdon]]&lt;br /&gt;
&lt;br /&gt;
[David: I think that the work proposed here is interesting, but I&#039;m not sure that it is organized by &amp;quot;contribution&amp;quot;.  Try labeling the contributions and the demonstrations explicitly.  A &amp;quot;tool&amp;quot; is usually not a contribution -- an evaluation of the tool could be.  If this distinction isn&#039;t clear, let&#039;s talk.  For these particular contributions, phrasing and integrating them is a challenge because some of the contributions are demonstrations of other contributions...]&lt;br /&gt;
&lt;br /&gt;
::* Scientific Study of Multi-tasking Workflow and the Impact of Interruptions&lt;br /&gt;
:::# We will undertake detailed studies to help understand the following questions:&lt;br /&gt;
::::# How does the size of a user&#039;s working set impact interruption resumption time?&lt;br /&gt;
::::# How does the size of a user&#039;s working set, when used for rapid multi-tasking, impact performance metrics?&lt;br /&gt;
::::# How does a user interface which supports multiple simultaneous working sets benefit interruption resumption time?&lt;br /&gt;
:::* No Dependencies&lt;br /&gt;
::* Meta-work Assistance Tool&lt;br /&gt;
:::# We will perform a series of ecologically-valid studies to compare user performance between a state of the art task management system (control group) and our meta-work assistance tool (experimental group)&lt;br /&gt;
:::* Dependent on core study completion, as some of the specific design decisions will be driven by the results of this study.  However, it is worth pointing out that this separate contribution can be researched in parallel to the core study.&lt;br /&gt;
::* Baseline Comparison Between Module-based Model of HCI and Core Multi-tasking Study&lt;br /&gt;
:::# We will compare the results of the above-mentioned study in multi-tasking against results predicted by the module-based model of HCI in this proposal; this will give us an important baseline comparison, particularly given that multi-tasking and interruption involve higher brain functioning and are therefore likely difficult to predict&lt;br /&gt;
:::* Dependent on core study completion, as well as most of the rest of the proposal being completed to the point of being testable&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Text for Assignment 12:&lt;br /&gt;
&lt;br /&gt;
Add text here about how this can be used to evaluate automatic framework&lt;br /&gt;
&lt;br /&gt;
There are, at least, two levels at which users work ([http://portal.acm.org/citation.cfm?id=985692.985707&amp;amp;coll=portal&amp;amp;dl=ACM&amp;amp;CFID=20781736&amp;amp;CFTOKEN=83176621 Gonzales, et al., 2004]).  Users accomplish individual low-level tasks which are part of larger &#039;&#039;working spheres&#039;&#039;; for example, an office worker might send several emails, create several Post-It (TM) note reminders, and then edit a word document, each of these smaller tasks being part of a single larger working sphere of &amp;quot;adding a new section to the website.&amp;quot;  Thus, it is important to understand this larger workflow context - which often involves extensive levels of multi-tasking, as well as switching between a variety of computing devices and traditional tools, such as notebooks.  In this study it was found that the information workers surveyed typically switch individual tasks every 2 minutes and have many simultaneous working spheres which they switch between, on average every 12 minutes.  This frenzied pace of switching tasks and switching working spheres suggests that users will not be using a single application or device for a long period of time, and that affordances to support this characteristic pattern of information work are important.&lt;br /&gt;
&lt;br /&gt;
The purpose of this module is to integrate existing work on multi-tasking, interruption and higher-level workflow into a framework which can predict user recovery times from interruptions.  Specifically, the goals of this framework will be to:&lt;br /&gt;
&lt;br /&gt;
* Understand the role of the larger workflow context in user interfaces&lt;br /&gt;
* Understand the impact of interruptions on user workflow&lt;br /&gt;
* Understand how to design software which fits into the larger working spheres in which information work takes place&lt;br /&gt;
&lt;br /&gt;
It is important to point out that because workflow and multi-tasking rely heavily on higher-level brain functioning, it is unrealistic within the scope of this grant to propose a system which can predict user performance given a description of a set of arbitrary software programs.  Therefore, we believe this module will function much more in a qualitative role to provide context to the rest of the model.  Specifically, our findings related to interruption and multi-tasking will advance the basic research question of &amp;quot;how do you users react to interruptions when using working sets of varying sizes?&amp;quot;.  This core HCI contribution will help to inform the rest of the outputs of the model in a qualitative manner.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
N/A&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Outputs&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
N/A&lt;br /&gt;
&lt;br /&gt;
=== Working Memory Load ===&lt;br /&gt;
* Owner: [[User:Gideon Goldin | Gideon Goldin]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This module measures how much information the user needs to retain in memory while interacting with the interface and makes suggestions for improvements.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Models&lt;br /&gt;
** Beddeley&#039;s Model of Working Memory&amp;lt;ref&amp;gt;http://en.wikipedia.org/wiki/Baddeley%27s_model_of_working_memory&amp;lt;/ref&amp;gt;&lt;br /&gt;
*** Episodic Buffer&lt;br /&gt;
** George Miller&#039;s &amp;quot;The magic number 7 plus or minus 2&amp;quot;&amp;lt;ref&amp;gt;http://en.wikipedia.org/wiki/The_Magical_Number_Seven,_Plus_or_Minus_Two&amp;lt;/ref&amp;gt;&lt;br /&gt;
** The magic number 4&amp;lt;ref&amp;gt;Cowan, N. (2001). The magical number 4 in short-term memory: A reconsideration of mental storage capacity. Behavioral and Brain Sciences, 24, 87-185.&amp;lt;/ref&amp;gt;&lt;br /&gt;
* Chunking&amp;lt;ref&amp;gt;http://en.wikipedia.org/wiki/Chunking_(psychology)&amp;lt;/ref&amp;gt;&lt;br /&gt;
* Priming&amp;lt;ref&amp;gt;http://en.wikipedia.org/wiki/Priming_(psychology)&amp;lt;/ref&amp;gt;&lt;br /&gt;
* Subitizing and Counting&amp;lt;ref&amp;gt;http://en.wikipedia.org/wiki/Subitizing&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
* Visual Stimuli&lt;br /&gt;
* Audio Stimuli&lt;br /&gt;
&#039;&#039;&#039;Outputs&#039;&#039;&#039;&lt;br /&gt;
* Remembered percepts&lt;br /&gt;
* Half-Life of percepts&lt;br /&gt;
&lt;br /&gt;
=== Automaticity of Interaction ===&lt;br /&gt;
* Owner: [[User:Gideon Goldin | Gideon Goldin]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Measures how easily the interaction with the interface becomes automatic with experience and makes suggestions for improvements.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Learning&amp;lt;ref&amp;gt;http://en.wikipedia.org/wiki/Learning#Mathematical_models_of_learning&amp;lt;/ref&amp;gt;&lt;br /&gt;
** Logan&#039;s instance theory of automatization&amp;lt;ref&amp;gt;http://74.125.95.132/search?q=cache:IZ-Zccsu3SEJ:psych.wisc.edu/ugstudies/psych733/logan_1988.pdf+logan+isntance+teory&amp;amp;cd=1&amp;amp;hl=en&amp;amp;ct=clnk&amp;amp;gl=us&amp;amp;client=firefox-a&amp;lt;/ref&amp;gt;&lt;br /&gt;
* Fluency&lt;br /&gt;
** As meta-cognitive information &amp;lt;ref&amp;gt;http://www.sciencedirect.com/science?_ob=ArticleURL&amp;amp;_udi=B6VH9-4SM7PFK-4&amp;amp;_user=10&amp;amp;_rdoc=1&amp;amp;_fmt=&amp;amp;_orig=search&amp;amp;_sort=d&amp;amp;view=c&amp;amp;_acct=C000050221&amp;amp;_version=1&amp;amp;_urlVersion=0&amp;amp;_userid=10&amp;amp;md5=10cd279fa80958981fcc3c06684c09af&amp;lt;/ref&amp;gt;&lt;br /&gt;
** As a cognitive &#039;&#039;heuristic&#039;&#039;&amp;lt;ref&amp;gt;http://en.wikipedia.org/wiki/Fluency_heuristic&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
* Interface&lt;br /&gt;
* User goals&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Outputs&#039;&#039;&#039;&lt;br /&gt;
* Learning curve&lt;br /&gt;
&lt;br /&gt;
=== Anti-Pattern Conflict Resolution ===&lt;br /&gt;
* Owner: [[User: Ian Spector | Ian Spector]]&lt;br /&gt;
&lt;br /&gt;
Interface design patterns are defined as reusable elements which provide solutions to common problems. For instance, we expect that an arrow in the top left corner of a window which points to the left, when clicked upon, will take the user to a previous screen. Furthermore, we expect that buttons in the top left corner of a window will in some way relate to navigation. &lt;br /&gt;
&lt;br /&gt;
An anti-pattern is a design pattern which breaks standard design convention, creating more problems than it solves. An example of an anti-pattern would be if in place of the &#039;back&#039; button on your web browser, there would be a &#039;view history&#039; button.&lt;br /&gt;
&lt;br /&gt;
The purpose of this module would be to analyze an interface to see if any anti-patterns exist, identify where they are in the interface, and then suggest alternatives.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
*Formal interface description&lt;br /&gt;
*Tasks which can be performed within the interface&lt;br /&gt;
*A library of standard design patterns&lt;br /&gt;
*Outputs from the &#039;Affordances&#039; module&lt;br /&gt;
*Uncommon / Custom additional pattern library (optional)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Outputs&#039;&#039;&#039;&lt;br /&gt;
*Identification of interface elements whose placement or function are contrary to the pattern library&lt;br /&gt;
*Recommendations for alternative functionality or placement of such elements.&lt;br /&gt;
&lt;br /&gt;
== Integration into the Design Process ==&lt;br /&gt;
* Owner: [[User:Ian Spector | Ian Spector]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This section outlines the process of designing an interface and at what stages our proposal fits in and how.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The interface design process is critical to the creation of a quality end product. The process of creating an interface can also be used as a model for analyzing a finished one.&lt;br /&gt;
&lt;br /&gt;
There are a number of different philosophies on how to best design software and in turn, interface. Currently, agile development using an incremental process such as [http://en.wikipedia.org/wiki/SCRUM Scrum] has become a well known and generally practiced procedure.&lt;br /&gt;
&lt;br /&gt;
The steps to create interfaces varies significantly from text to text, although the [http://http://cfg.cit.cornell.edu/design/process.html Common Front Group at Cornell] has succinctly been able to reduce this variety into six simple steps:&lt;br /&gt;
	&lt;br /&gt;
*Requirement Sketching&lt;br /&gt;
*Conceptual Design&lt;br /&gt;
*Logical Design&lt;br /&gt;
*Physical Design&lt;br /&gt;
*Construction&lt;br /&gt;
*Usability Testing&lt;br /&gt;
&lt;br /&gt;
This can be broken down further into just information architecture design followed by physical design and testing.&lt;br /&gt;
&lt;br /&gt;
As far as this proposal is concerned in the context of interface design, the goal of our proposal is to improve what is involved with later end of the middle two portions: logical and physical design. Prior to feeding an interface to the system we are proposing, designers should have already created a baseline model for review that should exhibit the majority, if not all, of the functionality listed in the interface requirements. Once this initial interface has been created, our system will aid in rapidly iterating through the physical design process. The ultimate end products are then subject to human usability testing.&lt;/div&gt;</summary>
		<author><name>Trevor O&#039;Brien</name></author>
	</entry>
	<entry>
		<id>http://vrl.cs.brown.edu/wiki/index.php?title=CS295J/Final_contributions&amp;diff=3238</id>
		<title>CS295J/Final contributions</title>
		<link rel="alternate" type="text/html" href="http://vrl.cs.brown.edu/wiki/index.php?title=CS295J/Final_contributions&amp;diff=3238"/>
		<updated>2009-04-28T20:16:53Z</updated>

		<summary type="html">&lt;p&gt;Trevor O&amp;#039;Brien: /* Recording User-Interaction Primitives */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Specific Aims and Contributions (to be separated later) =&lt;br /&gt;
&lt;br /&gt;
[David: I have removed some unattributed stuff that wasn&#039;t in the format described in assignment 13.  If that was in error, go back to an earlier version to recover the text, attribute it, and put in the correct format.]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Recording User-Interaction Primitives ==&lt;br /&gt;
&lt;br /&gt;
* Owner: [[User:Trevor O&#039;Brien | Trevor O&#039;Brien]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aims&#039;&#039;&#039;&lt;br /&gt;
* Develop system for logging low-level user-interactions within existing applications.  By low-level interactions, we refer to those interactions for which a quantitative, predictive, GOMS-like model may be generated.&lt;br /&gt;
* At the same scale of granularity, integrate explicit interface-interactions with multimodal-sensing data.  i.e. pupil-tracking, muscle-activity monitoring, auditory recognition, EEG data, and facial and posture-focused video. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Contributions&#039;&#039;&#039;&lt;br /&gt;
* Extensible, multi-modal, HCI framework for recording rich interaction-history data in existing applications.  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Demonstration&#039;&#039;&#039;&lt;br /&gt;
* Techniques for pupil-tracking, auditory-recognition, and muscle-activity monitoring will be evaluated with respect to accuracy, sampling rate, and computational cost in a series of quantitative studies.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dependencies&#039;&#039;&#039;&lt;br /&gt;
* Hardware for pupil-tracking and muscle activity monitoring.  Commercial software packages for such software may be required.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Background and Related Work&#039;&#039;&#039;&lt;br /&gt;
* The utility of interaction histories with respect to assessing interface design has been demonstrated in &amp;lt;ref name = bob&amp;gt; [http://www.cs.brown.edu/people/trevor/Papers/Heer-2008-GraphicalHistories.pdf Graphical Histories for Visualization: Supporting Analysis, Communication, and Evaluation] (InfoVis 2008) &amp;lt;/ref&amp;gt;.&lt;br /&gt;
* In addition, data management histories have been shown effective in the visualization community in &amp;lt;ref&amp;gt; [http://www.cs.brown.edu/people/trevor/Papers/Callahan-2006-MED.pdf Callahan-2006-MED] &amp;lt;/ref&amp;gt;  &amp;lt;ref&amp;gt; [http://www.cs.brown.edu/people/trevor/Papers/Callahan-2006-VVM.pdf Callahan-2006-VVM] &amp;lt;/ref&amp;gt; &amp;lt;ref&amp;gt; [http://www.cs.brown.edu/people/trevor/Papers/Bavoil-2005-VEI.pdf Bavoil-2005-VEI]&amp;lt;/ref&amp;gt;, providing visualizations by analogy &amp;lt;ref&amp;gt; [http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&amp;amp;arnumber=4376187&amp;amp;isnumber=4376125 Querying and Creating Visualizations by Analogy] &amp;lt;/ref&amp;gt; and offering automated suggestions &amp;lt;ref&amp;gt; [http://www.cs.utah.edu/~juliana/pub/tvcg-recommendation2008.pdf VisComplete: Automating Suggestions from Visualization Pipelines] &amp;lt;/ref&amp;gt;, which we expect to generalize to user interaction history.&lt;br /&gt;
&lt;br /&gt;
== Semantic-level Interaction Chunking ==&lt;br /&gt;
[David: This section doesn&#039;t list demonstrations or dependencies. It also has aims, significance, and background, which were not part of assignment 13. Can it be re-phrased to better match the assignment?]&lt;br /&gt;
&lt;br /&gt;
* Owner: [[User:Trevor O&#039;Brien | Trevor O&#039;Brien]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aims&#039;&#039;&#039;&lt;br /&gt;
* Develop techniques for &#039;&#039;chunking&#039;&#039; low-level interaction primitives into &#039;&#039;semantic-level&#039;&#039; interactions, given an application&#039;s functionality and data-context.  (And de-chunking? Invertible mapping needed?)&lt;br /&gt;
* Perform user-study evaluation to validate chunking methods.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Contributions&#039;&#039;&#039;&lt;br /&gt;
* Design and user-study evaluation of semantic-chunking techniques for interaction.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Demonstration&#039;&#039;&#039;&lt;br /&gt;
* These techniques will be validated quantitatively with respect to efficiency and user error rate on a set of timed-tasks over a series of case studies.  In addition, qualitative feedback on user satisfaction will be incorporated in the evaluation of our methods.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dependencies&#039;&#039;&#039;&lt;br /&gt;
* Software framework for collecting user interactions.&lt;br /&gt;
* Formal description of interface functionality.&lt;br /&gt;
* Description of data objects that can be manipulated through interaction.&lt;br /&gt;
&lt;br /&gt;
== Reconciling Usability Heuristics with Cognitive Theory ==&lt;br /&gt;
* Owner: [[User:E J Kalafarski|E J Kalafarski]] 14:56, 28 April 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Contribution&#039;&#039;&#039;: A weighted framework for the unification of established heuristic usability guidelines and accepted cognitive principles.&lt;br /&gt;
&lt;br /&gt;
[David: I&#039;m having trouble parsing this contribution.  How do you weight a framework?  Also, I&#039;d like to have a little more sense of how this might fit into the bigger picture.  The assignment didn&#039;t ask for that, but is there some way to provide some of that context?]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Demonstration&#039;&#039;&#039;: Three groups of experts anecdotally apply cognitive principles, heuristic usability principles, and a combination of the two.&lt;br /&gt;
* A &amp;quot;cognition expert,&amp;quot; given a constrained, limited-functionality interface, develops an independent evaluative value for each interface element based on accepted cognitive principles.&lt;br /&gt;
* A &amp;quot;usability expert&amp;quot; develops an independent evaluative value for each interface element based on accepted heuristic guidelines.&lt;br /&gt;
* A third expert applies several unified cognitive analogues from a matrix of weighted cognitive and &lt;br /&gt;
* User testing demonstrates the assumed efficacy and applicability of the matricized analogues versus independent application of analogued principles.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dependency&#039;&#039;&#039;: A set of established cognitive principles, selected with an eye toward heuristic analogues.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dependency&#039;&#039;&#039;: A set of established heuristic design guidelines, selected with an eye toward cognitive analogues.&lt;br /&gt;
&lt;br /&gt;
== Evaluation for Recommendation and Incremental Improvement ==&lt;br /&gt;
* Owner: [[User:E J Kalafarski|E J Kalafarski]] 14:56, 28 April 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Contributions&#039;&#039;&#039;: Using a limited set of interface evaluation modules for analysis, we demonstrate, in a narrow and controlled manner, the proposed efficiency and accuracy of a method of aggregating individual interface suggestions based on accepted CPM principles (e.g. Fitts&#039; Law and Affordance) and applying them to the incremental improvement of the interface.&lt;br /&gt;
&lt;br /&gt;
[David: I&#039;m a little lost.  Can you make this long sentence into a couple shorter simpler ones?  I think I can imagine what you are getting at, but I&#039;m not sure.]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Demonstration&#039;&#039;&#039;: A narrow but comprehensive study to demonstrate the efficacy and efficiency of automated aggregation of interface evaluation versus independent, analysis.  Shows not total replacement, but a gain in speed of evaluation comparable to the loss of control and feature.&lt;br /&gt;
* Given a carefully-constrained interface, perhaps with as few as two buttons and a minimalist feature set, expert interface designer given the individual results of several basic evaluation modules makes recommendations and suggestions to the design of the interface.&lt;br /&gt;
* Aggregation meta-module conducts similar survey of module outputs, outputting recommendations and suggestions for improvement of given interface.&lt;br /&gt;
* Separate independent body of experts then implements the two sets of suggestions and performs user study on the resultant interfaces, analyzing usability change and comparing it to the time and resources committed by the evaluation expert and the aggregation module, respectively.&lt;br /&gt;
&lt;br /&gt;
[David: nice demonstration!]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dependency&#039;&#039;&#039;: Module for the analysis of Fitts&#039; Law as it applies to the individual elements of a given interface.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dependency&#039;&#039;&#039;: Module for the analysis of a Affordance as it applies to the individual elements of a given interface.&lt;br /&gt;
&lt;br /&gt;
[David: I think this also has, as a dependency, some kind of framework for the modules.  &amp;quot;narrow but comprehensive&amp;quot; sounds challenging.  ]&lt;br /&gt;
&lt;br /&gt;
== Evaluation Metrics ==&lt;br /&gt;
Owner: [[User:Gideon Goldin | Gideon Goldin]]&lt;br /&gt;
&lt;br /&gt;
:*Architecture Outputs&lt;br /&gt;
::* Time (time to complete task)&lt;br /&gt;
:::# Performs as well or better than CPM-GOMS, demonstrated with user tasks&lt;br /&gt;
:::* Dependencies&lt;br /&gt;
:::# CPM-GOMS Module with cognitive load extension&lt;br /&gt;
::* Cognitive Load&lt;br /&gt;
:::# Predicts cognitive load during tasks, demonstrated with user tasks&lt;br /&gt;
:::* Dependencies&lt;br /&gt;
::::# CPM-GOMS Module with cognitive load extension&lt;br /&gt;
::::# Facial Gesture Recognition Module&lt;br /&gt;
::* Frustration&lt;br /&gt;
:::# Accurately predicts users&#039; frustration levels, demonstrated with user tasks&lt;br /&gt;
:::* Dependencies&lt;br /&gt;
::::# Facial Gesture Recognition Module&lt;br /&gt;
::::# Galvanic Skin Response Module&lt;br /&gt;
::::# Interface Efficiency Module&lt;br /&gt;
::* Aesthetic Appeal&lt;br /&gt;
:::# Analyzes if the interface is aesthetically unpleasing, demonstrated with user tasks&lt;br /&gt;
:::* Dependencies&lt;br /&gt;
::::# Aesthetics Module &lt;br /&gt;
::* Simplicity&lt;br /&gt;
:::# Analyzes how simple the interface is, demonstrated with user tasks&lt;br /&gt;
:::* Dependencies&lt;br /&gt;
::::# Interface Efficiency Module&lt;br /&gt;
&lt;br /&gt;
== Parallel Framework for Evaluation Modules ==&lt;br /&gt;
* Owner: [[User:Adam Darlow | Adam Darlow]], [[User:Eric Sodomka | Eric Sodomka]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This section will describe in more detail the inputs, outputs and architecture that were presented in the introduction.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Contributions ====&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Create a framework that provides better interface evaluations than currently existing techniques, and a module weighting system that provides better evaluations than any of its modules taken in isolation.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Demonstrate by running user studies and comparing this performance to expected performance, as given by the following interface evaluation methods:&lt;br /&gt;
*# Traditional, manual interface evaluation &lt;br /&gt;
*#* As a baseline.&lt;br /&gt;
*# Using our system with a single module&lt;br /&gt;
*#* &amp;quot;Are any of our individual modules better than currently existing methods of interface evaluation?&amp;quot;.&lt;br /&gt;
*# Using our system with multiple modules, but have aggregator give a fixed, equal weighting to each module&lt;br /&gt;
*#* As a baseline for our aggregator: want to show that the value of adding the dynamic weighting.&lt;br /&gt;
*# Using our system with multiple modules, and allow the aggregator to adjust weightings for each module, but have each module get a single weighting for all dimensions (time, fatigue, etc.)&lt;br /&gt;
*#* For validating the use of a dynamic weighting system.&lt;br /&gt;
*# Using our system with multiple modules, and allow the aggregator to adjust weightings for each module, and allow the module to give different weightings to every dimension of the module (time, fatigue, etc.) &lt;br /&gt;
*#* For validating the use of weighting across multiple utility dimensions.&lt;br /&gt;
*Dependencies: Having a good set of modules to plug into the framework.&lt;br /&gt;
&lt;br /&gt;
[David: I have removed details of framework that seemed beyond contribs/demos/dependencies]&lt;br /&gt;
&lt;br /&gt;
== Evaluation and Recommendation via Modules ==&lt;br /&gt;
* Owner: [[User:E J Kalafarski | E J Kalafarski]]&lt;br /&gt;
&lt;br /&gt;
A &amp;quot;meta-module&amp;quot; called the aggregator will be responsible for assembling and formatting the output of all other modules into a structure that is both extensible and immediately usable, by both an automated designer or a human designer.&lt;br /&gt;
&lt;br /&gt;
===Requirements===&lt;br /&gt;
The aggregator&#039;s functionality, then, is defined by its &#039;&#039;&#039;inputs&#039;&#039;&#039;, the outputs of the other modules, and the desired &#039;&#039;&#039;output&#039;&#039;&#039; of the system as a whole, per its position in the architecture.  Its purpose is largely formatting and reconciliation of the products of the multitudinous (and extensible) modules.  The output of the aggregator must meet several requirements: first, to generate a set of human-readable suggestions for the improvement of the given interface; second, to generate a machine-readable, but also analyzable, evaluation of the various characteristics of the interface and accompanying user traces.&lt;br /&gt;
&lt;br /&gt;
From these specifications, it is logical to assume that a common language or format will be required for the output of individual modules.  We propose an XML-based file format, allowing: (1) a section for the standardized identification of problem areas, applicable rules, and proposed improvements, generalized by the individual module and mapped to a single element, or group of elements, in the original interface specification; (2) a section for specification of generalizable &amp;quot;utility&amp;quot; functions, allowing a module to specify how much a measurable quantity of utility is positively or negatively affected by properties of the input interface; (3) new, user-definable sections for evaluations of the given interface not covered by the first two sections.  The first two sections are capable of conveying the vast majority of module outputs predicted at this time, but the XML can extensibly allow modules to pass on whatever information may become prominent in the future.&lt;br /&gt;
&lt;br /&gt;
===Specification===&lt;br /&gt;
 &amp;lt;module id=&amp;quot;Fitts-Law&amp;quot;&amp;gt;&lt;br /&gt;
 	&amp;lt;interface-elements&amp;gt;&lt;br /&gt;
 		&amp;lt;element&amp;gt;&lt;br /&gt;
 			&amp;lt;desc&amp;gt;submit button&amp;lt;/desc&amp;gt;&lt;br /&gt;
 			&amp;lt;problem&amp;gt;&lt;br /&gt;
 				&amp;lt;desc&amp;gt;size&amp;lt;/desc&amp;gt;&lt;br /&gt;
 				&amp;lt;suggestion&amp;gt;width *= 2&amp;lt;/suggestion&amp;gt;&lt;br /&gt;
 				&amp;lt;suggestion&amp;gt;height *= 2&amp;lt;/suggestion&amp;gt;&lt;br /&gt;
 				&amp;lt;human-suggestion&amp;gt;Increase size relative to other elements&amp;lt;/human-suggestion&amp;gt;&lt;br /&gt;
 			&amp;lt;/problem&amp;gt;&lt;br /&gt;
 		&amp;lt;/element&amp;gt;&lt;br /&gt;
 	&amp;lt;/interface-elements&amp;gt;&lt;br /&gt;
 	&amp;lt;utility&amp;gt;&lt;br /&gt;
 		&amp;lt;dimension&amp;gt;&lt;br /&gt;
 			&amp;lt;desc&amp;gt;time&amp;lt;/desc&amp;gt;&lt;br /&gt;
 			&amp;lt;value&amp;gt;0:15:35&amp;lt;/value&amp;gt;&lt;br /&gt;
 		&amp;lt;/dimension&amp;gt;&lt;br /&gt;
 		&amp;lt;dimension&amp;gt;&lt;br /&gt;
 			&amp;lt;desc&amp;gt;frustration&amp;lt;/desc&amp;gt;&lt;br /&gt;
 			&amp;lt;value&amp;gt;pulling hair out&amp;lt;/value&amp;gt;&lt;br /&gt;
 		&amp;lt;/dimension&amp;gt;&lt;br /&gt;
 		&amp;lt;dimension&amp;gt;&lt;br /&gt;
 			&amp;lt;desc&amp;gt;efficiency&amp;lt;/desc&amp;gt;&lt;br /&gt;
 			&amp;lt;value&amp;gt;13.2s/KPM task&amp;lt;/value&amp;gt;&lt;br /&gt;
 			&amp;lt;value&amp;gt;0.56m/CPM task&amp;lt;/value&amp;gt;&lt;br /&gt;
 		&amp;lt;/dimension&amp;gt;&lt;br /&gt;
 	&amp;lt;/utility&amp;gt;&lt;br /&gt;
 	&amp;lt;tasks&amp;gt;&lt;br /&gt;
 		&amp;lt;task&amp;gt;&lt;br /&gt;
 			&amp;lt;desc&amp;gt;complete form&amp;lt;/desc&amp;gt;&lt;br /&gt;
 		&amp;lt;/task&amp;gt;&lt;br /&gt;
 		&amp;lt;task&amp;gt;&lt;br /&gt;
 			&amp;lt;desc&amp;gt;lookup SSN&amp;lt;/desc&amp;gt;&lt;br /&gt;
 		&amp;lt;/task&amp;gt;&lt;br /&gt;
 		&amp;lt;task&amp;gt;&lt;br /&gt;
 			&amp;lt;desc&amp;gt;format phone number&amp;lt;/desc&amp;gt;&lt;br /&gt;
 		&amp;lt;/task&amp;gt;&lt;br /&gt;
 	&amp;lt;/tasks&amp;gt;&lt;br /&gt;
 &amp;lt;/module&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Logic===&lt;br /&gt;
This file provided by each module is then the input for the aggregator.  The aggregator&#039;s most straightforward function is the compilation of the &amp;quot;problem areas,&amp;quot; assembling them and noting problem areas and suggestions that are recommended by more than one module, and weighting them accordingly in its final report.  These weightings can begin in an equal state, but the aggregator should be capable of learning iteratively which modules&#039; results are most relevant to the user and update weightings accordingly.  This may need to be accomplished with manual tuning, or a machine-learning algorithm capable of determining which modules most often agree with others.&lt;br /&gt;
&lt;br /&gt;
Secondly, the aggregator compiles the utility functions provided by the module specs.  This, again, is a summation of similarly-described values from the various modules.&lt;br /&gt;
&lt;br /&gt;
When confronted with user-defined sections of the XML spec, the aggregator is primarily responsible for compiling them and sending them along to the output of the machine.  Even if the aggregator does not recognize a section or property of the evaluative spec, if it sees the property reported by more than one module it should be capable of aggregating these intelligently.  In future versions of the spec, it should be possible for a module to provide instructions for the aggregator on how to handle unrecognized sections of the XML.&lt;br /&gt;
&lt;br /&gt;
From these compilations, then, the aggregator should be capable of outputting both aggregated human-readable suggestions on interface improvements for a human designer, as well as a comprehensive evaluation of the interface&#039;s effectiveness at the given task traces.  Again, this is dependent on the specification of the system as a whole, but is likely to include measures and comparisons, graphings of task versus utility, and quantitative measures of an element&#039;s effectiveness.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This section is necessarily defined by the output of the individual modules (which I already expect to be of varied and arbitrary structure) and the desired output of the machine as a whole.  It will likely need to be revised heavily after other modules and the &amp;quot;Parellel Framework&amp;quot; section are defined.&#039;&#039; [[User:E J Kalafarski|E J Kalafarski]] 12:34, 24 April 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This section describes the aggregator, which takes the output of multiple independent modules and aggregates the results to provide (1) an evaluation and (2) recommendations for the user interface. We should explain how the aggregator weights the output of different modules (this could be based on historical performance of each module, or perhaps based on E.J.&#039;s cognitive/HCI guidelines).&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Sample Modules ==&lt;br /&gt;
&lt;br /&gt;
=== CPM-GOMS ===&lt;br /&gt;
* Owners: [[User:Steven Ellis | Steven Ellis]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This module will provide interface evaluations and suggestions based on a CPM-GOMS model of cognition for the given interface. It will provide a quantitative, predictive, cognition-based parameterization of usability. From empirically collected data, user trajectories through the model (critical paths) will be examined, highlighting bottlenecks within the interface, and offering suggested alterations to the interface to induce more optimal user trajectories.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
I’m hoping to have some input on this section, because it seems to be the crux of the “black box” into which we take the inputs of interface description, user traces, etc. and get our outputs (time, recommendations, etc.).  I know at least a few people have pretty strong thoughts on the matter and we ought to discuss the final structure.&lt;br /&gt;
&lt;br /&gt;
That said – my proposal for the module:&lt;br /&gt;
*In my opinion the concept of the Model Human Processor (at least as applied in CPM) is outdated – it’s too economic/overly parsimonious in its conception of human activity.  I think we need to create a structure which accounts for more realistic conditions of HCI including multitasking, aspects of distributed cognition (and other relevant uses of tools – as far as I can tell CPM doesn’t take into account any sort of productivity aids), executive control processes of attention, etc.  ACT-R appears to take steps towards this but we would probably need to look at their algorithms to know for sure.&lt;br /&gt;
*Critical paths will continue to play an important role – we should in fact emphasize that part of this tool’s purpose will be a description not only of ways in which the interface should be modified to best fit a critical path, but also ways in which the user’s ought to be instructed in their use of the path.  This feedback mechanism could be bidirectional – if the model’s predictions of the user’s goals are incorrect, the critical path determined will also be incorrect and the interface inherently suboptimal.  The user could be prompted with a tooltip explaining in brief why and how the interface has changed, along with options to revert, select other configurations (euphemized by goals), and to view a short video detailing how to properly use the interface.&lt;br /&gt;
*Call me crazy but, if we assume designers will be willing to code a model of their interfaces into our ACT-R-esque language, could we allow that model to be fairly transparent to the user, who could use a gui to input their goals to find an analogue in the program which would subsequently rearrange its interface to fit the user’s needs?  Even if not useful to the users, such dynamic modeling could really help designers (IMO)&lt;br /&gt;
*I think the model should do its best to accept models written for ACT-R and whatever other cognitive models there are out there – gives us the best chance of early adoption&lt;br /&gt;
*I would particularly appreciate input on the number/complexity/type of inputs we’ll be using, as well as the same qualities for the output.&lt;br /&gt;
&lt;br /&gt;
=== HCI Guidelines ===&lt;br /&gt;
* Owner: [[User:E J Kalafarski | E J Kalafarski]]&lt;br /&gt;
&lt;br /&gt;
Schneiderman&#039;s Eight Golden Rules and Jakob Nielsen&#039;s Ten Heuristics are perhaps the most famous and well-regarded heuristic design guidelines to emerge over the last twenty years.  Although the explicit theoretical basis for such heuristics is controversial and not well-explored, the empirical success of these guidelines is established and accepted.  This module will parse out up to three or four common (that is, intersecting) principles from these accepted guidelines and apply them to the input interface.&lt;br /&gt;
&lt;br /&gt;
As an example, we identify an analogous principle that appears in Schneiderman (&amp;quot;Reduce short-term memory load&amp;quot;)&amp;lt;ref&amp;gt;http://faculty.washington.edu/jtenenbg/courses/360/f04/sessions/schneidermanGoldenRules.html&amp;lt;/ref&amp;gt; and Nielsen (&amp;quot;Recognition rather than recall/Minimize the user&#039;s memory load&amp;quot;)&amp;lt;ref&amp;gt;http://www.useit.com/papers/heuristic/heuristic_list.html&amp;lt;/ref&amp;gt;.  The input interface is then evaluated for the consideration of the principle, based on an explicit formal description of the interface, such as XAML or XUL.  The module attempts to determine how effectively the interface demonstrates the principle.  When analyzing an interface for several principles that may be conflicting or opposing in a given context, the module makes use of a hard-coded but iterative (and evolving) weighting of these principles, based on (1) how often they appear in the training set of accepted sets of guidelines, (2) how analogues a heuristic principle is to a cognitive principle in a parallel training set, and (3) how effective the principle&#039;s associated suggestion is found to be using a feedback mechanism.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inputs&#039;&#039;&#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
# A formal description of the interface and its elements (e.g. buttons).&lt;br /&gt;
# A formal description of a particular task and the possible paths through a subset of interface elements that permit the user to accomplish that task.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Output&#039;&#039;&#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
Standard XML-formatted file containing problem areas of the input interface, suggestions for each problem area based on principles that were found to have a strong application to a problem element and the problem itself, and a human-readable generated analysis of the element&#039;s affinity for the principle.  Quantitative outputs will not be possible based on heuristic guidelines, and the &amp;quot;utility&amp;quot; section of this module&#039;s output is likely to be blank.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This section could include an example or two of established design guidelines that could easily be implemented as modules.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Fitts&#039;s Law ===&lt;br /&gt;
* Owner: [[User:Jon Ericson | Jon Ericson]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This module provides an estimate of the required time to complete various tasks that have been decomposed into formalized sequences of interactions with interface elements, and will provide evaluations and recommendations for optimizing the time required to complete those tasks using the interface.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1. A formal description of the interface and its elements (e.g. buttons).&lt;br /&gt;
&lt;br /&gt;
2. A formal description of a particular task and the possible paths through a subset of interface elements that permit the user to accomplish that task.&lt;br /&gt;
&lt;br /&gt;
3. The physical distances between interface elements along those paths.&lt;br /&gt;
&lt;br /&gt;
4. The width of those elements along the most likely axes of motion.&lt;br /&gt;
&lt;br /&gt;
5. Device (e.g. mouse) characteristics including start/stop time and the inherent speed limitations of the device.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Output&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The module will then use the Shannon formulation of Fitt&#039;s Law to compute the average time needed to complete the task along those paths.&lt;br /&gt;
&lt;br /&gt;
=== Affordances ===&lt;br /&gt;
* Owner: [[User:Jon Ericson | Jon Ericson]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This simple module will provide interface evaluations and recommendations based on a measure of the extent to which the user perceives the relevant affordances of the interface when performing a number of specified tasks.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inputs&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Formalized descriptions of...&lt;br /&gt;
&lt;br /&gt;
1. Interface elements&lt;br /&gt;
&lt;br /&gt;
2. Their associated actions&lt;br /&gt;
&lt;br /&gt;
3. The functions of those actions&lt;br /&gt;
&lt;br /&gt;
4. A particular task&lt;br /&gt;
&lt;br /&gt;
5. User traces for that task.  &lt;br /&gt;
&lt;br /&gt;
Inputs (1-4) are then used to generate a &amp;quot;user-independent&amp;quot; space of possible functions that the interface is capable of performing with respect to a given task -- what the interface &amp;quot;affords&amp;quot; the user.  From this set of possible interactions, our model will then determine the subset of optimal paths for performing a particular task.  The user trace (5) is then used to determine what functions actually were performed in the course of a given task of interest and this information is then compared to the optimal path data to determine the extent to which affordances of the interface are present but not perceived.  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Output&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The output of this module is a simple ratio of (affordances perceived) / [(relevant affordances present) * (time to complete task)] which provides a quantitative measure of the extent to which the interface is &amp;quot;natural&amp;quot; to use for a particular task.&lt;br /&gt;
&lt;br /&gt;
=== Workflow, Multi-tasking and Interruptions ===&lt;br /&gt;
* Owner: [[User:Andrew Bragdon | Andrew Bragdon]]&lt;br /&gt;
&lt;br /&gt;
[David: I think that the work proposed here is interesting, but I&#039;m not sure that it is organized by &amp;quot;contribution&amp;quot;.  Try labeling the contributions and the demonstrations explicitly.  A &amp;quot;tool&amp;quot; is usually not a contribution -- an evaluation of the tool could be.  If this distinction isn&#039;t clear, let&#039;s talk.  For these particular contributions, phrasing and integrating them is a challenge because some of the contributions are demonstrations of other contributions...]&lt;br /&gt;
&lt;br /&gt;
::* Scientific Study of Multi-tasking Workflow and the Impact of Interruptions&lt;br /&gt;
:::# We will undertake detailed studies to help understand the following questions:&lt;br /&gt;
::::# How does the size of a user&#039;s working set impact interruption resumption time?&lt;br /&gt;
::::# How does the size of a user&#039;s working set, when used for rapid multi-tasking, impact performance metrics?&lt;br /&gt;
::::# How does a user interface which supports multiple simultaneous working sets benefit interruption resumption time?&lt;br /&gt;
:::* No Dependencies&lt;br /&gt;
::* Meta-work Assistance Tool&lt;br /&gt;
:::# We will perform a series of ecologically-valid studies to compare user performance between a state of the art task management system (control group) and our meta-work assistance tool (experimental group)&lt;br /&gt;
:::* Dependent on core study completion, as some of the specific design decisions will be driven by the results of this study.  However, it is worth pointing out that this separate contribution can be researched in parallel to the core study.&lt;br /&gt;
::* Baseline Comparison Between Module-based Model of HCI and Core Multi-tasking Study&lt;br /&gt;
:::# We will compare the results of the above-mentioned study in multi-tasking against results predicted by the module-based model of HCI in this proposal; this will give us an important baseline comparison, particularly given that multi-tasking and interruption involve higher brain functioning and are therefore likely difficult to predict&lt;br /&gt;
:::* Dependent on core study completion, as well as most of the rest of the proposal being completed to the point of being testable&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Text for Assignment 12:&lt;br /&gt;
&lt;br /&gt;
Add text here about how this can be used to evaluate automatic framework&lt;br /&gt;
&lt;br /&gt;
There are, at least, two levels at which users work ([http://portal.acm.org/citation.cfm?id=985692.985707&amp;amp;coll=portal&amp;amp;dl=ACM&amp;amp;CFID=20781736&amp;amp;CFTOKEN=83176621 Gonzales, et al., 2004]).  Users accomplish individual low-level tasks which are part of larger &#039;&#039;working spheres&#039;&#039;; for example, an office worker might send several emails, create several Post-It (TM) note reminders, and then edit a word document, each of these smaller tasks being part of a single larger working sphere of &amp;quot;adding a new section to the website.&amp;quot;  Thus, it is important to understand this larger workflow context - which often involves extensive levels of multi-tasking, as well as switching between a variety of computing devices and traditional tools, such as notebooks.  In this study it was found that the information workers surveyed typically switch individual tasks every 2 minutes and have many simultaneous working spheres which they switch between, on average every 12 minutes.  This frenzied pace of switching tasks and switching working spheres suggests that users will not be using a single application or device for a long period of time, and that affordances to support this characteristic pattern of information work are important.&lt;br /&gt;
&lt;br /&gt;
The purpose of this module is to integrate existing work on multi-tasking, interruption and higher-level workflow into a framework which can predict user recovery times from interruptions.  Specifically, the goals of this framework will be to:&lt;br /&gt;
&lt;br /&gt;
* Understand the role of the larger workflow context in user interfaces&lt;br /&gt;
* Understand the impact of interruptions on user workflow&lt;br /&gt;
* Understand how to design software which fits into the larger working spheres in which information work takes place&lt;br /&gt;
&lt;br /&gt;
It is important to point out that because workflow and multi-tasking rely heavily on higher-level brain functioning, it is unrealistic within the scope of this grant to propose a system which can predict user performance given a description of a set of arbitrary software programs.  Therefore, we believe this module will function much more in a qualitative role to provide context to the rest of the model.  Specifically, our findings related to interruption and multi-tasking will advance the basic research question of &amp;quot;how do you users react to interruptions when using working sets of varying sizes?&amp;quot;.  This core HCI contribution will help to inform the rest of the outputs of the model in a qualitative manner.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
N/A&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Outputs&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
N/A&lt;br /&gt;
&lt;br /&gt;
=== Working Memory Load ===&lt;br /&gt;
* Owner: [[User:Gideon Goldin | Gideon Goldin]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This module measures how much information the user needs to retain in memory while interacting with the interface and makes suggestions for improvements.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Models&lt;br /&gt;
** Beddeley&#039;s Model of Working Memory&amp;lt;ref&amp;gt;http://en.wikipedia.org/wiki/Baddeley%27s_model_of_working_memory&amp;lt;/ref&amp;gt;&lt;br /&gt;
*** Episodic Buffer&lt;br /&gt;
** George Miller&#039;s &amp;quot;The magic number 7 plus or minus 2&amp;quot;&amp;lt;ref&amp;gt;http://en.wikipedia.org/wiki/The_Magical_Number_Seven,_Plus_or_Minus_Two&amp;lt;/ref&amp;gt;&lt;br /&gt;
** The magic number 4&amp;lt;ref&amp;gt;Cowan, N. (2001). The magical number 4 in short-term memory: A reconsideration of mental storage capacity. Behavioral and Brain Sciences, 24, 87-185.&amp;lt;/ref&amp;gt;&lt;br /&gt;
* Chunking&amp;lt;ref&amp;gt;http://en.wikipedia.org/wiki/Chunking_(psychology)&amp;lt;/ref&amp;gt;&lt;br /&gt;
* Priming&amp;lt;ref&amp;gt;http://en.wikipedia.org/wiki/Priming_(psychology)&amp;lt;/ref&amp;gt;&lt;br /&gt;
* Subitizing and Counting&amp;lt;ref&amp;gt;http://en.wikipedia.org/wiki/Subitizing&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
* Visual Stimuli&lt;br /&gt;
* Audio Stimuli&lt;br /&gt;
&#039;&#039;&#039;Outputs&#039;&#039;&#039;&lt;br /&gt;
* Remembered percepts&lt;br /&gt;
* Half-Life of percepts&lt;br /&gt;
&lt;br /&gt;
=== Automaticity of Interaction ===&lt;br /&gt;
* Owner: [[User:Gideon Goldin | Gideon Goldin]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Measures how easily the interaction with the interface becomes automatic with experience and makes suggestions for improvements.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Learning&amp;lt;ref&amp;gt;http://en.wikipedia.org/wiki/Learning#Mathematical_models_of_learning&amp;lt;/ref&amp;gt;&lt;br /&gt;
** Logan&#039;s instance theory of automatization&amp;lt;ref&amp;gt;http://74.125.95.132/search?q=cache:IZ-Zccsu3SEJ:psych.wisc.edu/ugstudies/psych733/logan_1988.pdf+logan+isntance+teory&amp;amp;cd=1&amp;amp;hl=en&amp;amp;ct=clnk&amp;amp;gl=us&amp;amp;client=firefox-a&amp;lt;/ref&amp;gt;&lt;br /&gt;
* Fluency&lt;br /&gt;
** As meta-cognitive information &amp;lt;ref&amp;gt;http://www.sciencedirect.com/science?_ob=ArticleURL&amp;amp;_udi=B6VH9-4SM7PFK-4&amp;amp;_user=10&amp;amp;_rdoc=1&amp;amp;_fmt=&amp;amp;_orig=search&amp;amp;_sort=d&amp;amp;view=c&amp;amp;_acct=C000050221&amp;amp;_version=1&amp;amp;_urlVersion=0&amp;amp;_userid=10&amp;amp;md5=10cd279fa80958981fcc3c06684c09af&amp;lt;/ref&amp;gt;&lt;br /&gt;
** As a cognitive &#039;&#039;heuristic&#039;&#039;&amp;lt;ref&amp;gt;http://en.wikipedia.org/wiki/Fluency_heuristic&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
* Interface&lt;br /&gt;
* User goals&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Outputs&#039;&#039;&#039;&lt;br /&gt;
* Learning curve&lt;br /&gt;
&lt;br /&gt;
=== Anti-Pattern Conflict Resolution ===&lt;br /&gt;
* Owner: [[User: Ian Spector | Ian Spector]]&lt;br /&gt;
&lt;br /&gt;
Interface design patterns are defined as reusable elements which provide solutions to common problems. For instance, we expect that an arrow in the top left corner of a window which points to the left, when clicked upon, will take the user to a previous screen. Furthermore, we expect that buttons in the top left corner of a window will in some way relate to navigation. &lt;br /&gt;
&lt;br /&gt;
An anti-pattern is a design pattern which breaks standard design convention, creating more problems than it solves. An example of an anti-pattern would be if in place of the &#039;back&#039; button on your web browser, there would be a &#039;view history&#039; button.&lt;br /&gt;
&lt;br /&gt;
The purpose of this module would be to analyze an interface to see if any anti-patterns exist, identify where they are in the interface, and then suggest alternatives.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
*Formal interface description&lt;br /&gt;
*Tasks which can be performed within the interface&lt;br /&gt;
*A library of standard design patterns&lt;br /&gt;
*Outputs from the &#039;Affordances&#039; module&lt;br /&gt;
*Uncommon / Custom additional pattern library (optional)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Outputs&#039;&#039;&#039;&lt;br /&gt;
*Identification of interface elements whose placement or function are contrary to the pattern library&lt;br /&gt;
*Recommendations for alternative functionality or placement of such elements.&lt;br /&gt;
&lt;br /&gt;
== Integration into the Design Process ==&lt;br /&gt;
* Owner: [[User:Ian Spector | Ian Spector]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This section outlines the process of designing an interface and at what stages our proposal fits in and how.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The interface design process is critical to the creation of a quality end product. The process of creating an interface can also be used as a model for analyzing a finished one.&lt;br /&gt;
&lt;br /&gt;
There are a number of different philosophies on how to best design software and in turn, interface. Currently, agile development using an incremental process such as [http://en.wikipedia.org/wiki/SCRUM Scrum] has become a well known and generally practiced procedure.&lt;br /&gt;
&lt;br /&gt;
The steps to create interfaces varies significantly from text to text, although the [http://http://cfg.cit.cornell.edu/design/process.html Common Front Group at Cornell] has succinctly been able to reduce this variety into six simple steps:&lt;br /&gt;
	&lt;br /&gt;
*Requirement Sketching&lt;br /&gt;
*Conceptual Design&lt;br /&gt;
*Logical Design&lt;br /&gt;
*Physical Design&lt;br /&gt;
*Construction&lt;br /&gt;
*Usability Testing&lt;br /&gt;
&lt;br /&gt;
This can be broken down further into just information architecture design followed by physical design and testing.&lt;br /&gt;
&lt;br /&gt;
As far as this proposal is concerned in the context of interface design, the goal of our proposal is to improve what is involved with later end of the middle two portions: logical and physical design. Prior to feeding an interface to the system we are proposing, designers should have already created a baseline model for review that should exhibit the majority, if not all, of the functionality listed in the interface requirements. Once this initial interface has been created, our system will aid in rapidly iterating through the physical design process. The ultimate end products are then subject to human usability testing.&lt;/div&gt;</summary>
		<author><name>Trevor O&#039;Brien</name></author>
	</entry>
	<entry>
		<id>http://vrl.cs.brown.edu/wiki/index.php?title=CS295J/Final_contributions&amp;diff=3237</id>
		<title>CS295J/Final contributions</title>
		<link rel="alternate" type="text/html" href="http://vrl.cs.brown.edu/wiki/index.php?title=CS295J/Final_contributions&amp;diff=3237"/>
		<updated>2009-04-28T20:10:21Z</updated>

		<summary type="html">&lt;p&gt;Trevor O&amp;#039;Brien: /* Semantic-level Interaction Chunking */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Specific Aims and Contributions (to be separated later) =&lt;br /&gt;
&lt;br /&gt;
[David: I have removed some unattributed stuff that wasn&#039;t in the format described in assignment 13.  If that was in error, go back to an earlier version to recover the text, attribute it, and put in the correct format.]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Recording User-Interaction Primitives ==&lt;br /&gt;
&lt;br /&gt;
[David: This section doesn&#039;t list demonstrations or dependencies.  It also has aims, significance, and background, which were not part of assignment 13.  Can it be re-phrased to better match the assignment?]&lt;br /&gt;
&lt;br /&gt;
* Owner: [[User:Trevor O&#039;Brien | Trevor O&#039;Brien]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aims&#039;&#039;&#039;&lt;br /&gt;
* Develop system for logging low-level user-interactions within existing applications.  By low-level interactions, we refer to those interactions for which a quantitative, predictive, GOMS-like model may be generated.&lt;br /&gt;
* At the same scale of granularity, integrate explicit interface-interactions with multimodal-sensing data.  i.e. pupil-tracking, muscle-activity monitoring, auditory recognition, EEG data, and facial and posture-focused video. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Contributions&#039;&#039;&#039;&lt;br /&gt;
* Extensible, multimodal, HCI framework for recording rich interaction-history data in existing applications.  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Significance&#039;&#039;&#039;&lt;br /&gt;
* Provide rich history data to serve as the basis for novel quantitative interface evaluation.&lt;br /&gt;
* Aid expert HCI and visual designers in traditional design processes.&lt;br /&gt;
* Provide data for automated machine-learning strategies applied to interaction.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Background and Related Work&#039;&#039;&#039;&lt;br /&gt;
* The utility of interaction histories with respect to assessing interface design has been demonstrated in &amp;lt;ref name = bob&amp;gt; [http://www.cs.brown.edu/people/trevor/Papers/Heer-2008-GraphicalHistories.pdf Graphical Histories for Visualization: Supporting Analysis, Communication, and Evaluation] (InfoVis 2008) &amp;lt;/ref&amp;gt;.&lt;br /&gt;
* In addition, data management histories have been shown effective in the visualization community in &amp;lt;ref&amp;gt; [http://www.cs.brown.edu/people/trevor/Papers/Callahan-2006-MED.pdf Callahan-2006-MED] &amp;lt;/ref&amp;gt;  &amp;lt;ref&amp;gt; [http://www.cs.brown.edu/people/trevor/Papers/Callahan-2006-VVM.pdf Callahan-2006-VVM] &amp;lt;/ref&amp;gt; &amp;lt;ref&amp;gt; [http://www.cs.brown.edu/people/trevor/Papers/Bavoil-2005-VEI.pdf Bavoil-2005-VEI]&amp;lt;/ref&amp;gt;, providing visualizations by analogy &amp;lt;ref&amp;gt; [http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&amp;amp;arnumber=4376187&amp;amp;isnumber=4376125 Querying and Creating Visualizations by Analogy] &amp;lt;/ref&amp;gt; and offering automated suggestions &amp;lt;ref&amp;gt; [http://www.cs.utah.edu/~juliana/pub/tvcg-recommendation2008.pdf VisComplete: Automating Suggestions from Visualization Pipelines] &amp;lt;/ref&amp;gt;, which we expect to generalize to user interaction history.&lt;br /&gt;
&lt;br /&gt;
== Semantic-level Interaction Chunking ==&lt;br /&gt;
[David: This section doesn&#039;t list demonstrations or dependencies. It also has aims, significance, and background, which were not part of assignment 13. Can it be re-phrased to better match the assignment?]&lt;br /&gt;
&lt;br /&gt;
* Owner: [[User:Trevor O&#039;Brien | Trevor O&#039;Brien]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aims&#039;&#039;&#039;&lt;br /&gt;
* Develop techniques for &#039;&#039;chunking&#039;&#039; low-level interaction primitives into &#039;&#039;semantic-level&#039;&#039; interactions, given an application&#039;s functionality and data-context.  (And de-chunking? Invertible mapping needed?)&lt;br /&gt;
* Perform user-study evaluation to validate chunking methods.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Contributions&#039;&#039;&#039;&lt;br /&gt;
* Design and user-study evaluation of semantic-chunking techniques for interaction.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Demonstration&#039;&#039;&#039;&lt;br /&gt;
* These techniques will be validated quantitatively with respect to efficiency and user error rate on a set of timed-tasks over a series of case studies.  In addition, qualitative feedback on user satisfaction will be incorporated in the evaluation of our methods.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dependencies&#039;&#039;&#039;&lt;br /&gt;
* Software framework for collecting user interactions.&lt;br /&gt;
* Formal description of interface functionality.&lt;br /&gt;
* Description of data objects that can be manipulated through interaction.&lt;br /&gt;
&lt;br /&gt;
== Reconciling Usability Heuristics with Cognitive Theory ==&lt;br /&gt;
* Owner: [[User:E J Kalafarski|E J Kalafarski]] 14:56, 28 April 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Contribution&#039;&#039;&#039;: A weighted framework for the unification of established heuristic usability guidelines and accepted cognitive principles.&lt;br /&gt;
&lt;br /&gt;
[David: I&#039;m having trouble parsing this contribution.  How do you weight a framework?  Also, I&#039;d like to have a little more sense of how this might fit into the bigger picture.  The assignment didn&#039;t ask for that, but is there some way to provide some of that context?]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Demonstration&#039;&#039;&#039;: Three groups of experts anecdotally apply cognitive principles, heuristic usability principles, and a combination of the two.&lt;br /&gt;
* A &amp;quot;cognition expert,&amp;quot; given a constrained, limited-functionality interface, develops an independent evaluative value for each interface element based on accepted cognitive principles.&lt;br /&gt;
* A &amp;quot;usability expert&amp;quot; develops an independent evaluative value for each interface element based on accepted heuristic guidelines.&lt;br /&gt;
* A third expert applies several unified cognitive analogues from a matrix of weighted cognitive and &lt;br /&gt;
* User testing demonstrates the assumed efficacy and applicability of the matricized analogues versus independent application of analogued principles.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dependency&#039;&#039;&#039;: A set of established cognitive principles, selected with an eye toward heuristic analogues.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dependency&#039;&#039;&#039;: A set of established heuristic design guidelines, selected with an eye toward cognitive analogues.&lt;br /&gt;
&lt;br /&gt;
== Evaluation for Recommendation and Incremental Improvement ==&lt;br /&gt;
* Owner: [[User:E J Kalafarski|E J Kalafarski]] 14:56, 28 April 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Contributions&#039;&#039;&#039;: Using a limited set of interface evaluation modules for analysis, we demonstrate, in a narrow and controlled manner, the proposed efficiency and accuracy of a method of aggregating individual interface suggestions based on accepted CPM principles (e.g. Fitts&#039; Law and Affordance) and applying them to the incremental improvement of the interface.&lt;br /&gt;
&lt;br /&gt;
[David: I&#039;m a little lost.  Can you make this long sentence into a couple shorter simpler ones?  I think I can imagine what you are getting at, but I&#039;m not sure.]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Demonstration&#039;&#039;&#039;: A narrow but comprehensive study to demonstrate the efficacy and efficiency of automated aggregation of interface evaluation versus independent, analysis.  Shows not total replacement, but a gain in speed of evaluation comparable to the loss of control and feature.&lt;br /&gt;
* Given a carefully-constrained interface, perhaps with as few as two buttons and a minimalist feature set, expert interface designer given the individual results of several basic evaluation modules makes recommendations and suggestions to the design of the interface.&lt;br /&gt;
* Aggregation meta-module conducts similar survey of module outputs, outputting recommendations and suggestions for improvement of given interface.&lt;br /&gt;
* Separate independent body of experts then implements the two sets of suggestions and performs user study on the resultant interfaces, analyzing usability change and comparing it to the time and resources committed by the evaluation expert and the aggregation module, respectively.&lt;br /&gt;
&lt;br /&gt;
[David: nice demonstration!]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dependency&#039;&#039;&#039;: Module for the analysis of Fitts&#039; Law as it applies to the individual elements of a given interface.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dependency&#039;&#039;&#039;: Module for the analysis of a Affordance as it applies to the individual elements of a given interface.&lt;br /&gt;
&lt;br /&gt;
[David: I think this also has, as a dependency, some kind of framework for the modules.  &amp;quot;narrow but comprehensive&amp;quot; sounds challenging.  ]&lt;br /&gt;
&lt;br /&gt;
== Evaluation Metrics ==&lt;br /&gt;
Owner: [[User:Gideon Goldin | Gideon Goldin]]&lt;br /&gt;
&lt;br /&gt;
:*Architecture Outputs&lt;br /&gt;
::* Time (time to complete task)&lt;br /&gt;
:::# Performs as well or better than CPM-GOMS, demonstrated with user tasks&lt;br /&gt;
:::* Dependencies&lt;br /&gt;
:::# CPM-GOMS Module with cognitive load extension&lt;br /&gt;
::* Cognitive Load&lt;br /&gt;
:::# Predicts cognitive load during tasks, demonstrated with user tasks&lt;br /&gt;
:::* Dependencies&lt;br /&gt;
::::# CPM-GOMS Module with cognitive load extension&lt;br /&gt;
::::# Facial Gesture Recognition Module&lt;br /&gt;
::* Frustration&lt;br /&gt;
:::# Accurately predicts users&#039; frustration levels, demonstrated with user tasks&lt;br /&gt;
:::* Dependencies&lt;br /&gt;
::::# Facial Gesture Recognition Module&lt;br /&gt;
::::# Galvanic Skin Response Module&lt;br /&gt;
::::# Interface Efficiency Module&lt;br /&gt;
::* Aesthetic Appeal&lt;br /&gt;
:::# Analyzes if the interface is aesthetically unpleasing, demonstrated with user tasks&lt;br /&gt;
:::* Dependencies&lt;br /&gt;
::::# Aesthetics Module &lt;br /&gt;
::* Simplicity&lt;br /&gt;
:::# Analyzes how simple the interface is, demonstrated with user tasks&lt;br /&gt;
:::* Dependencies&lt;br /&gt;
::::# Interface Efficiency Module&lt;br /&gt;
&lt;br /&gt;
== Parallel Framework for Evaluation Modules ==&lt;br /&gt;
* Owner: [[User:Adam Darlow | Adam Darlow]], [[User:Eric Sodomka | Eric Sodomka]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This section will describe in more detail the inputs, outputs and architecture that were presented in the introduction.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Contributions ====&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Create a framework that provides better interface evaluations than currently existing techniques, and a module weighting system that provides better evaluations than any of its modules taken in isolation.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Demonstrate by running user studies and comparing this performance to expected performance, as given by the following interface evaluation methods:&lt;br /&gt;
*# Traditional, manual interface evaluation &lt;br /&gt;
*#* As a baseline.&lt;br /&gt;
*# Using our system with a single module&lt;br /&gt;
*#* &amp;quot;Are any of our individual modules better than currently existing methods of interface evaluation?&amp;quot;.&lt;br /&gt;
*# Using our system with multiple modules, but have aggregator give a fixed, equal weighting to each module&lt;br /&gt;
*#* As a baseline for our aggregator: want to show that the value of adding the dynamic weighting.&lt;br /&gt;
*# Using our system with multiple modules, and allow the aggregator to adjust weightings for each module, but have each module get a single weighting for all dimensions (time, fatigue, etc.)&lt;br /&gt;
*#* For validating the use of a dynamic weighting system.&lt;br /&gt;
*# Using our system with multiple modules, and allow the aggregator to adjust weightings for each module, and allow the module to give different weightings to every dimension of the module (time, fatigue, etc.) &lt;br /&gt;
*#* For validating the use of weighting across multiple utility dimensions.&lt;br /&gt;
*Dependencies: Having a good set of modules to plug into the framework.&lt;br /&gt;
&lt;br /&gt;
[David: I have removed details of framework that seemed beyond contribs/demos/dependencies]&lt;br /&gt;
&lt;br /&gt;
== Evaluation and Recommendation via Modules ==&lt;br /&gt;
* Owner: [[User:E J Kalafarski | E J Kalafarski]]&lt;br /&gt;
&lt;br /&gt;
A &amp;quot;meta-module&amp;quot; called the aggregator will be responsible for assembling and formatting the output of all other modules into a structure that is both extensible and immediately usable, by both an automated designer or a human designer.&lt;br /&gt;
&lt;br /&gt;
===Requirements===&lt;br /&gt;
The aggregator&#039;s functionality, then, is defined by its &#039;&#039;&#039;inputs&#039;&#039;&#039;, the outputs of the other modules, and the desired &#039;&#039;&#039;output&#039;&#039;&#039; of the system as a whole, per its position in the architecture.  Its purpose is largely formatting and reconciliation of the products of the multitudinous (and extensible) modules.  The output of the aggregator must meet several requirements: first, to generate a set of human-readable suggestions for the improvement of the given interface; second, to generate a machine-readable, but also analyzable, evaluation of the various characteristics of the interface and accompanying user traces.&lt;br /&gt;
&lt;br /&gt;
From these specifications, it is logical to assume that a common language or format will be required for the output of individual modules.  We propose an XML-based file format, allowing: (1) a section for the standardized identification of problem areas, applicable rules, and proposed improvements, generalized by the individual module and mapped to a single element, or group of elements, in the original interface specification; (2) a section for specification of generalizable &amp;quot;utility&amp;quot; functions, allowing a module to specify how much a measurable quantity of utility is positively or negatively affected by properties of the input interface; (3) new, user-definable sections for evaluations of the given interface not covered by the first two sections.  The first two sections are capable of conveying the vast majority of module outputs predicted at this time, but the XML can extensibly allow modules to pass on whatever information may become prominent in the future.&lt;br /&gt;
&lt;br /&gt;
===Specification===&lt;br /&gt;
 &amp;lt;module id=&amp;quot;Fitts-Law&amp;quot;&amp;gt;&lt;br /&gt;
 	&amp;lt;interface-elements&amp;gt;&lt;br /&gt;
 		&amp;lt;element&amp;gt;&lt;br /&gt;
 			&amp;lt;desc&amp;gt;submit button&amp;lt;/desc&amp;gt;&lt;br /&gt;
 			&amp;lt;problem&amp;gt;&lt;br /&gt;
 				&amp;lt;desc&amp;gt;size&amp;lt;/desc&amp;gt;&lt;br /&gt;
 				&amp;lt;suggestion&amp;gt;width *= 2&amp;lt;/suggestion&amp;gt;&lt;br /&gt;
 				&amp;lt;suggestion&amp;gt;height *= 2&amp;lt;/suggestion&amp;gt;&lt;br /&gt;
 				&amp;lt;human-suggestion&amp;gt;Increase size relative to other elements&amp;lt;/human-suggestion&amp;gt;&lt;br /&gt;
 			&amp;lt;/problem&amp;gt;&lt;br /&gt;
 		&amp;lt;/element&amp;gt;&lt;br /&gt;
 	&amp;lt;/interface-elements&amp;gt;&lt;br /&gt;
 	&amp;lt;utility&amp;gt;&lt;br /&gt;
 		&amp;lt;dimension&amp;gt;&lt;br /&gt;
 			&amp;lt;desc&amp;gt;time&amp;lt;/desc&amp;gt;&lt;br /&gt;
 			&amp;lt;value&amp;gt;0:15:35&amp;lt;/value&amp;gt;&lt;br /&gt;
 		&amp;lt;/dimension&amp;gt;&lt;br /&gt;
 		&amp;lt;dimension&amp;gt;&lt;br /&gt;
 			&amp;lt;desc&amp;gt;frustration&amp;lt;/desc&amp;gt;&lt;br /&gt;
 			&amp;lt;value&amp;gt;pulling hair out&amp;lt;/value&amp;gt;&lt;br /&gt;
 		&amp;lt;/dimension&amp;gt;&lt;br /&gt;
 		&amp;lt;dimension&amp;gt;&lt;br /&gt;
 			&amp;lt;desc&amp;gt;efficiency&amp;lt;/desc&amp;gt;&lt;br /&gt;
 			&amp;lt;value&amp;gt;13.2s/KPM task&amp;lt;/value&amp;gt;&lt;br /&gt;
 			&amp;lt;value&amp;gt;0.56m/CPM task&amp;lt;/value&amp;gt;&lt;br /&gt;
 		&amp;lt;/dimension&amp;gt;&lt;br /&gt;
 	&amp;lt;/utility&amp;gt;&lt;br /&gt;
 	&amp;lt;tasks&amp;gt;&lt;br /&gt;
 		&amp;lt;task&amp;gt;&lt;br /&gt;
 			&amp;lt;desc&amp;gt;complete form&amp;lt;/desc&amp;gt;&lt;br /&gt;
 		&amp;lt;/task&amp;gt;&lt;br /&gt;
 		&amp;lt;task&amp;gt;&lt;br /&gt;
 			&amp;lt;desc&amp;gt;lookup SSN&amp;lt;/desc&amp;gt;&lt;br /&gt;
 		&amp;lt;/task&amp;gt;&lt;br /&gt;
 		&amp;lt;task&amp;gt;&lt;br /&gt;
 			&amp;lt;desc&amp;gt;format phone number&amp;lt;/desc&amp;gt;&lt;br /&gt;
 		&amp;lt;/task&amp;gt;&lt;br /&gt;
 	&amp;lt;/tasks&amp;gt;&lt;br /&gt;
 &amp;lt;/module&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Logic===&lt;br /&gt;
This file provided by each module is then the input for the aggregator.  The aggregator&#039;s most straightforward function is the compilation of the &amp;quot;problem areas,&amp;quot; assembling them and noting problem areas and suggestions that are recommended by more than one module, and weighting them accordingly in its final report.  These weightings can begin in an equal state, but the aggregator should be capable of learning iteratively which modules&#039; results are most relevant to the user and update weightings accordingly.  This may need to be accomplished with manual tuning, or a machine-learning algorithm capable of determining which modules most often agree with others.&lt;br /&gt;
&lt;br /&gt;
Secondly, the aggregator compiles the utility functions provided by the module specs.  This, again, is a summation of similarly-described values from the various modules.&lt;br /&gt;
&lt;br /&gt;
When confronted with user-defined sections of the XML spec, the aggregator is primarily responsible for compiling them and sending them along to the output of the machine.  Even if the aggregator does not recognize a section or property of the evaluative spec, if it sees the property reported by more than one module it should be capable of aggregating these intelligently.  In future versions of the spec, it should be possible for a module to provide instructions for the aggregator on how to handle unrecognized sections of the XML.&lt;br /&gt;
&lt;br /&gt;
From these compilations, then, the aggregator should be capable of outputting both aggregated human-readable suggestions on interface improvements for a human designer, as well as a comprehensive evaluation of the interface&#039;s effectiveness at the given task traces.  Again, this is dependent on the specification of the system as a whole, but is likely to include measures and comparisons, graphings of task versus utility, and quantitative measures of an element&#039;s effectiveness.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This section is necessarily defined by the output of the individual modules (which I already expect to be of varied and arbitrary structure) and the desired output of the machine as a whole.  It will likely need to be revised heavily after other modules and the &amp;quot;Parellel Framework&amp;quot; section are defined.&#039;&#039; [[User:E J Kalafarski|E J Kalafarski]] 12:34, 24 April 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This section describes the aggregator, which takes the output of multiple independent modules and aggregates the results to provide (1) an evaluation and (2) recommendations for the user interface. We should explain how the aggregator weights the output of different modules (this could be based on historical performance of each module, or perhaps based on E.J.&#039;s cognitive/HCI guidelines).&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Sample Modules ==&lt;br /&gt;
&lt;br /&gt;
=== CPM-GOMS ===&lt;br /&gt;
* Owners: [[User:Steven Ellis | Steven Ellis]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This module will provide interface evaluations and suggestions based on a CPM-GOMS model of cognition for the given interface. It will provide a quantitative, predictive, cognition-based parameterization of usability. From empirically collected data, user trajectories through the model (critical paths) will be examined, highlighting bottlenecks within the interface, and offering suggested alterations to the interface to induce more optimal user trajectories.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
I’m hoping to have some input on this section, because it seems to be the crux of the “black box” into which we take the inputs of interface description, user traces, etc. and get our outputs (time, recommendations, etc.).  I know at least a few people have pretty strong thoughts on the matter and we ought to discuss the final structure.&lt;br /&gt;
&lt;br /&gt;
That said – my proposal for the module:&lt;br /&gt;
*In my opinion the concept of the Model Human Processor (at least as applied in CPM) is outdated – it’s too economic/overly parsimonious in its conception of human activity.  I think we need to create a structure which accounts for more realistic conditions of HCI including multitasking, aspects of distributed cognition (and other relevant uses of tools – as far as I can tell CPM doesn’t take into account any sort of productivity aids), executive control processes of attention, etc.  ACT-R appears to take steps towards this but we would probably need to look at their algorithms to know for sure.&lt;br /&gt;
*Critical paths will continue to play an important role – we should in fact emphasize that part of this tool’s purpose will be a description not only of ways in which the interface should be modified to best fit a critical path, but also ways in which the user’s ought to be instructed in their use of the path.  This feedback mechanism could be bidirectional – if the model’s predictions of the user’s goals are incorrect, the critical path determined will also be incorrect and the interface inherently suboptimal.  The user could be prompted with a tooltip explaining in brief why and how the interface has changed, along with options to revert, select other configurations (euphemized by goals), and to view a short video detailing how to properly use the interface.&lt;br /&gt;
*Call me crazy but, if we assume designers will be willing to code a model of their interfaces into our ACT-R-esque language, could we allow that model to be fairly transparent to the user, who could use a gui to input their goals to find an analogue in the program which would subsequently rearrange its interface to fit the user’s needs?  Even if not useful to the users, such dynamic modeling could really help designers (IMO)&lt;br /&gt;
*I think the model should do its best to accept models written for ACT-R and whatever other cognitive models there are out there – gives us the best chance of early adoption&lt;br /&gt;
*I would particularly appreciate input on the number/complexity/type of inputs we’ll be using, as well as the same qualities for the output.&lt;br /&gt;
&lt;br /&gt;
=== HCI Guidelines ===&lt;br /&gt;
* Owner: [[User:E J Kalafarski | E J Kalafarski]]&lt;br /&gt;
&lt;br /&gt;
Schneiderman&#039;s Eight Golden Rules and Jakob Nielsen&#039;s Ten Heuristics are perhaps the most famous and well-regarded heuristic design guidelines to emerge over the last twenty years.  Although the explicit theoretical basis for such heuristics is controversial and not well-explored, the empirical success of these guidelines is established and accepted.  This module will parse out up to three or four common (that is, intersecting) principles from these accepted guidelines and apply them to the input interface.&lt;br /&gt;
&lt;br /&gt;
As an example, we identify an analogous principle that appears in Schneiderman (&amp;quot;Reduce short-term memory load&amp;quot;)&amp;lt;ref&amp;gt;http://faculty.washington.edu/jtenenbg/courses/360/f04/sessions/schneidermanGoldenRules.html&amp;lt;/ref&amp;gt; and Nielsen (&amp;quot;Recognition rather than recall/Minimize the user&#039;s memory load&amp;quot;)&amp;lt;ref&amp;gt;http://www.useit.com/papers/heuristic/heuristic_list.html&amp;lt;/ref&amp;gt;.  The input interface is then evaluated for the consideration of the principle, based on an explicit formal description of the interface, such as XAML or XUL.  The module attempts to determine how effectively the interface demonstrates the principle.  When analyzing an interface for several principles that may be conflicting or opposing in a given context, the module makes use of a hard-coded but iterative (and evolving) weighting of these principles, based on (1) how often they appear in the training set of accepted sets of guidelines, (2) how analogues a heuristic principle is to a cognitive principle in a parallel training set, and (3) how effective the principle&#039;s associated suggestion is found to be using a feedback mechanism.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inputs&#039;&#039;&#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
# A formal description of the interface and its elements (e.g. buttons).&lt;br /&gt;
# A formal description of a particular task and the possible paths through a subset of interface elements that permit the user to accomplish that task.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Output&#039;&#039;&#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
Standard XML-formatted file containing problem areas of the input interface, suggestions for each problem area based on principles that were found to have a strong application to a problem element and the problem itself, and a human-readable generated analysis of the element&#039;s affinity for the principle.  Quantitative outputs will not be possible based on heuristic guidelines, and the &amp;quot;utility&amp;quot; section of this module&#039;s output is likely to be blank.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This section could include an example or two of established design guidelines that could easily be implemented as modules.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Fitts&#039;s Law ===&lt;br /&gt;
* Owner: [[User:Jon Ericson | Jon Ericson]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This module provides an estimate of the required time to complete various tasks that have been decomposed into formalized sequences of interactions with interface elements, and will provide evaluations and recommendations for optimizing the time required to complete those tasks using the interface.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1. A formal description of the interface and its elements (e.g. buttons).&lt;br /&gt;
&lt;br /&gt;
2. A formal description of a particular task and the possible paths through a subset of interface elements that permit the user to accomplish that task.&lt;br /&gt;
&lt;br /&gt;
3. The physical distances between interface elements along those paths.&lt;br /&gt;
&lt;br /&gt;
4. The width of those elements along the most likely axes of motion.&lt;br /&gt;
&lt;br /&gt;
5. Device (e.g. mouse) characteristics including start/stop time and the inherent speed limitations of the device.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Output&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The module will then use the Shannon formulation of Fitt&#039;s Law to compute the average time needed to complete the task along those paths.&lt;br /&gt;
&lt;br /&gt;
=== Affordances ===&lt;br /&gt;
* Owner: [[User:Jon Ericson | Jon Ericson]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This simple module will provide interface evaluations and recommendations based on a measure of the extent to which the user perceives the relevant affordances of the interface when performing a number of specified tasks.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inputs&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Formalized descriptions of...&lt;br /&gt;
&lt;br /&gt;
1. Interface elements&lt;br /&gt;
&lt;br /&gt;
2. Their associated actions&lt;br /&gt;
&lt;br /&gt;
3. The functions of those actions&lt;br /&gt;
&lt;br /&gt;
4. A particular task&lt;br /&gt;
&lt;br /&gt;
5. User traces for that task.  &lt;br /&gt;
&lt;br /&gt;
Inputs (1-4) are then used to generate a &amp;quot;user-independent&amp;quot; space of possible functions that the interface is capable of performing with respect to a given task -- what the interface &amp;quot;affords&amp;quot; the user.  From this set of possible interactions, our model will then determine the subset of optimal paths for performing a particular task.  The user trace (5) is then used to determine what functions actually were performed in the course of a given task of interest and this information is then compared to the optimal path data to determine the extent to which affordances of the interface are present but not perceived.  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Output&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The output of this module is a simple ratio of (affordances perceived) / [(relevant affordances present) * (time to complete task)] which provides a quantitative measure of the extent to which the interface is &amp;quot;natural&amp;quot; to use for a particular task.&lt;br /&gt;
&lt;br /&gt;
=== Workflow, Multi-tasking and Interruptions ===&lt;br /&gt;
* Owner: [[User:Andrew Bragdon | Andrew Bragdon]]&lt;br /&gt;
&lt;br /&gt;
[David: I think that the work proposed here is interesting, but I&#039;m not sure that it is organized by &amp;quot;contribution&amp;quot;.  Try labeling the contributions and the demonstrations explicitly.  A &amp;quot;tool&amp;quot; is usually not a contribution -- an evaluation of the tool could be.  If this distinction isn&#039;t clear, let&#039;s talk.  For these particular contributions, phrasing and integrating them is a challenge because some of the contributions are demonstrations of other contributions...]&lt;br /&gt;
&lt;br /&gt;
::* Scientific Study of Multi-tasking Workflow and the Impact of Interruptions&lt;br /&gt;
:::# We will undertake detailed studies to help understand the following questions:&lt;br /&gt;
::::# How does the size of a user&#039;s working set impact interruption resumption time?&lt;br /&gt;
::::# How does the size of a user&#039;s working set, when used for rapid multi-tasking, impact performance metrics?&lt;br /&gt;
::::# How does a user interface which supports multiple simultaneous working sets benefit interruption resumption time?&lt;br /&gt;
:::* No Dependencies&lt;br /&gt;
::* Meta-work Assistance Tool&lt;br /&gt;
:::# We will perform a series of ecologically-valid studies to compare user performance between a state of the art task management system (control group) and our meta-work assistance tool (experimental group)&lt;br /&gt;
:::* Dependent on core study completion, as some of the specific design decisions will be driven by the results of this study.  However, it is worth pointing out that this separate contribution can be researched in parallel to the core study.&lt;br /&gt;
::* Baseline Comparison Between Module-based Model of HCI and Core Multi-tasking Study&lt;br /&gt;
:::# We will compare the results of the above-mentioned study in multi-tasking against results predicted by the module-based model of HCI in this proposal; this will give us an important baseline comparison, particularly given that multi-tasking and interruption involve higher brain functioning and are therefore likely difficult to predict&lt;br /&gt;
:::* Dependent on core study completion, as well as most of the rest of the proposal being completed to the point of being testable&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Text for Assignment 12:&lt;br /&gt;
&lt;br /&gt;
Add text here about how this can be used to evaluate automatic framework&lt;br /&gt;
&lt;br /&gt;
There are, at least, two levels at which users work ([http://portal.acm.org/citation.cfm?id=985692.985707&amp;amp;coll=portal&amp;amp;dl=ACM&amp;amp;CFID=20781736&amp;amp;CFTOKEN=83176621 Gonzales, et al., 2004]).  Users accomplish individual low-level tasks which are part of larger &#039;&#039;working spheres&#039;&#039;; for example, an office worker might send several emails, create several Post-It (TM) note reminders, and then edit a word document, each of these smaller tasks being part of a single larger working sphere of &amp;quot;adding a new section to the website.&amp;quot;  Thus, it is important to understand this larger workflow context - which often involves extensive levels of multi-tasking, as well as switching between a variety of computing devices and traditional tools, such as notebooks.  In this study it was found that the information workers surveyed typically switch individual tasks every 2 minutes and have many simultaneous working spheres which they switch between, on average every 12 minutes.  This frenzied pace of switching tasks and switching working spheres suggests that users will not be using a single application or device for a long period of time, and that affordances to support this characteristic pattern of information work are important.&lt;br /&gt;
&lt;br /&gt;
The purpose of this module is to integrate existing work on multi-tasking, interruption and higher-level workflow into a framework which can predict user recovery times from interruptions.  Specifically, the goals of this framework will be to:&lt;br /&gt;
&lt;br /&gt;
* Understand the role of the larger workflow context in user interfaces&lt;br /&gt;
* Understand the impact of interruptions on user workflow&lt;br /&gt;
* Understand how to design software which fits into the larger working spheres in which information work takes place&lt;br /&gt;
&lt;br /&gt;
It is important to point out that because workflow and multi-tasking rely heavily on higher-level brain functioning, it is unrealistic within the scope of this grant to propose a system which can predict user performance given a description of a set of arbitrary software programs.  Therefore, we believe this module will function much more in a qualitative role to provide context to the rest of the model.  Specifically, our findings related to interruption and multi-tasking will advance the basic research question of &amp;quot;how do you users react to interruptions when using working sets of varying sizes?&amp;quot;.  This core HCI contribution will help to inform the rest of the outputs of the model in a qualitative manner.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
N/A&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Outputs&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
N/A&lt;br /&gt;
&lt;br /&gt;
=== Working Memory Load ===&lt;br /&gt;
* Owner: [[User:Gideon Goldin | Gideon Goldin]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This module measures how much information the user needs to retain in memory while interacting with the interface and makes suggestions for improvements.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Models&lt;br /&gt;
** Beddeley&#039;s Model of Working Memory&amp;lt;ref&amp;gt;http://en.wikipedia.org/wiki/Baddeley%27s_model_of_working_memory&amp;lt;/ref&amp;gt;&lt;br /&gt;
*** Episodic Buffer&lt;br /&gt;
** George Miller&#039;s &amp;quot;The magic number 7 plus or minus 2&amp;quot;&amp;lt;ref&amp;gt;http://en.wikipedia.org/wiki/The_Magical_Number_Seven,_Plus_or_Minus_Two&amp;lt;/ref&amp;gt;&lt;br /&gt;
** The magic number 4&amp;lt;ref&amp;gt;Cowan, N. (2001). The magical number 4 in short-term memory: A reconsideration of mental storage capacity. Behavioral and Brain Sciences, 24, 87-185.&amp;lt;/ref&amp;gt;&lt;br /&gt;
* Chunking&amp;lt;ref&amp;gt;http://en.wikipedia.org/wiki/Chunking_(psychology)&amp;lt;/ref&amp;gt;&lt;br /&gt;
* Priming&amp;lt;ref&amp;gt;http://en.wikipedia.org/wiki/Priming_(psychology)&amp;lt;/ref&amp;gt;&lt;br /&gt;
* Subitizing and Counting&amp;lt;ref&amp;gt;http://en.wikipedia.org/wiki/Subitizing&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
* Visual Stimuli&lt;br /&gt;
* Audio Stimuli&lt;br /&gt;
&#039;&#039;&#039;Outputs&#039;&#039;&#039;&lt;br /&gt;
* Remembered percepts&lt;br /&gt;
* Half-Life of percepts&lt;br /&gt;
&lt;br /&gt;
=== Automaticity of Interaction ===&lt;br /&gt;
* Owner: [[User:Gideon Goldin | Gideon Goldin]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Measures how easily the interaction with the interface becomes automatic with experience and makes suggestions for improvements.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Learning&amp;lt;ref&amp;gt;http://en.wikipedia.org/wiki/Learning#Mathematical_models_of_learning&amp;lt;/ref&amp;gt;&lt;br /&gt;
** Logan&#039;s instance theory of automatization&amp;lt;ref&amp;gt;http://74.125.95.132/search?q=cache:IZ-Zccsu3SEJ:psych.wisc.edu/ugstudies/psych733/logan_1988.pdf+logan+isntance+teory&amp;amp;cd=1&amp;amp;hl=en&amp;amp;ct=clnk&amp;amp;gl=us&amp;amp;client=firefox-a&amp;lt;/ref&amp;gt;&lt;br /&gt;
* Fluency&lt;br /&gt;
** As meta-cognitive information &amp;lt;ref&amp;gt;http://www.sciencedirect.com/science?_ob=ArticleURL&amp;amp;_udi=B6VH9-4SM7PFK-4&amp;amp;_user=10&amp;amp;_rdoc=1&amp;amp;_fmt=&amp;amp;_orig=search&amp;amp;_sort=d&amp;amp;view=c&amp;amp;_acct=C000050221&amp;amp;_version=1&amp;amp;_urlVersion=0&amp;amp;_userid=10&amp;amp;md5=10cd279fa80958981fcc3c06684c09af&amp;lt;/ref&amp;gt;&lt;br /&gt;
** As a cognitive &#039;&#039;heuristic&#039;&#039;&amp;lt;ref&amp;gt;http://en.wikipedia.org/wiki/Fluency_heuristic&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
* Interface&lt;br /&gt;
* User goals&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Outputs&#039;&#039;&#039;&lt;br /&gt;
* Learning curve&lt;br /&gt;
&lt;br /&gt;
=== Anti-Pattern Conflict Resolution ===&lt;br /&gt;
* Owner: [[User: Ian Spector | Ian Spector]]&lt;br /&gt;
&lt;br /&gt;
Interface design patterns are defined as reusable elements which provide solutions to common problems. For instance, we expect that an arrow in the top left corner of a window which points to the left, when clicked upon, will take the user to a previous screen. Furthermore, we expect that buttons in the top left corner of a window will in some way relate to navigation. &lt;br /&gt;
&lt;br /&gt;
An anti-pattern is a design pattern which breaks standard design convention, creating more problems than it solves. An example of an anti-pattern would be if in place of the &#039;back&#039; button on your web browser, there would be a &#039;view history&#039; button.&lt;br /&gt;
&lt;br /&gt;
The purpose of this module would be to analyze an interface to see if any anti-patterns exist, identify where they are in the interface, and then suggest alternatives.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
*Formal interface description&lt;br /&gt;
*Tasks which can be performed within the interface&lt;br /&gt;
*A library of standard design patterns&lt;br /&gt;
*Outputs from the &#039;Affordances&#039; module&lt;br /&gt;
*Uncommon / Custom additional pattern library (optional)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Outputs&#039;&#039;&#039;&lt;br /&gt;
*Identification of interface elements whose placement or function are contrary to the pattern library&lt;br /&gt;
*Recommendations for alternative functionality or placement of such elements.&lt;br /&gt;
&lt;br /&gt;
== Integration into the Design Process ==&lt;br /&gt;
* Owner: [[User:Ian Spector | Ian Spector]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This section outlines the process of designing an interface and at what stages our proposal fits in and how.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The interface design process is critical to the creation of a quality end product. The process of creating an interface can also be used as a model for analyzing a finished one.&lt;br /&gt;
&lt;br /&gt;
There are a number of different philosophies on how to best design software and in turn, interface. Currently, agile development using an incremental process such as [http://en.wikipedia.org/wiki/SCRUM Scrum] has become a well known and generally practiced procedure.&lt;br /&gt;
&lt;br /&gt;
The steps to create interfaces varies significantly from text to text, although the [http://http://cfg.cit.cornell.edu/design/process.html Common Front Group at Cornell] has succinctly been able to reduce this variety into six simple steps:&lt;br /&gt;
	&lt;br /&gt;
*Requirement Sketching&lt;br /&gt;
*Conceptual Design&lt;br /&gt;
*Logical Design&lt;br /&gt;
*Physical Design&lt;br /&gt;
*Construction&lt;br /&gt;
*Usability Testing&lt;br /&gt;
&lt;br /&gt;
This can be broken down further into just information architecture design followed by physical design and testing.&lt;br /&gt;
&lt;br /&gt;
As far as this proposal is concerned in the context of interface design, the goal of our proposal is to improve what is involved with later end of the middle two portions: logical and physical design. Prior to feeding an interface to the system we are proposing, designers should have already created a baseline model for review that should exhibit the majority, if not all, of the functionality listed in the interface requirements. Once this initial interface has been created, our system will aid in rapidly iterating through the physical design process. The ultimate end products are then subject to human usability testing.&lt;/div&gt;</summary>
		<author><name>Trevor O&#039;Brien</name></author>
	</entry>
	<entry>
		<id>http://vrl.cs.brown.edu/wiki/index.php?title=CS295J/Final_contributions&amp;diff=3236</id>
		<title>CS295J/Final contributions</title>
		<link rel="alternate" type="text/html" href="http://vrl.cs.brown.edu/wiki/index.php?title=CS295J/Final_contributions&amp;diff=3236"/>
		<updated>2009-04-28T20:09:48Z</updated>

		<summary type="html">&lt;p&gt;Trevor O&amp;#039;Brien: /* Semantic-level Interaction Chunking */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Specific Aims and Contributions (to be separated later) =&lt;br /&gt;
&lt;br /&gt;
[David: I have removed some unattributed stuff that wasn&#039;t in the format described in assignment 13.  If that was in error, go back to an earlier version to recover the text, attribute it, and put in the correct format.]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Recording User-Interaction Primitives ==&lt;br /&gt;
&lt;br /&gt;
[David: This section doesn&#039;t list demonstrations or dependencies.  It also has aims, significance, and background, which were not part of assignment 13.  Can it be re-phrased to better match the assignment?]&lt;br /&gt;
&lt;br /&gt;
* Owner: [[User:Trevor O&#039;Brien | Trevor O&#039;Brien]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aims&#039;&#039;&#039;&lt;br /&gt;
* Develop system for logging low-level user-interactions within existing applications.  By low-level interactions, we refer to those interactions for which a quantitative, predictive, GOMS-like model may be generated.&lt;br /&gt;
* At the same scale of granularity, integrate explicit interface-interactions with multimodal-sensing data.  i.e. pupil-tracking, muscle-activity monitoring, auditory recognition, EEG data, and facial and posture-focused video. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Contributions&#039;&#039;&#039;&lt;br /&gt;
* Extensible, multimodal, HCI framework for recording rich interaction-history data in existing applications.  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Significance&#039;&#039;&#039;&lt;br /&gt;
* Provide rich history data to serve as the basis for novel quantitative interface evaluation.&lt;br /&gt;
* Aid expert HCI and visual designers in traditional design processes.&lt;br /&gt;
* Provide data for automated machine-learning strategies applied to interaction.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Background and Related Work&#039;&#039;&#039;&lt;br /&gt;
* The utility of interaction histories with respect to assessing interface design has been demonstrated in &amp;lt;ref name = bob&amp;gt; [http://www.cs.brown.edu/people/trevor/Papers/Heer-2008-GraphicalHistories.pdf Graphical Histories for Visualization: Supporting Analysis, Communication, and Evaluation] (InfoVis 2008) &amp;lt;/ref&amp;gt;.&lt;br /&gt;
* In addition, data management histories have been shown effective in the visualization community in &amp;lt;ref&amp;gt; [http://www.cs.brown.edu/people/trevor/Papers/Callahan-2006-MED.pdf Callahan-2006-MED] &amp;lt;/ref&amp;gt;  &amp;lt;ref&amp;gt; [http://www.cs.brown.edu/people/trevor/Papers/Callahan-2006-VVM.pdf Callahan-2006-VVM] &amp;lt;/ref&amp;gt; &amp;lt;ref&amp;gt; [http://www.cs.brown.edu/people/trevor/Papers/Bavoil-2005-VEI.pdf Bavoil-2005-VEI]&amp;lt;/ref&amp;gt;, providing visualizations by analogy &amp;lt;ref&amp;gt; [http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&amp;amp;arnumber=4376187&amp;amp;isnumber=4376125 Querying and Creating Visualizations by Analogy] &amp;lt;/ref&amp;gt; and offering automated suggestions &amp;lt;ref&amp;gt; [http://www.cs.utah.edu/~juliana/pub/tvcg-recommendation2008.pdf VisComplete: Automating Suggestions from Visualization Pipelines] &amp;lt;/ref&amp;gt;, which we expect to generalize to user interaction history.&lt;br /&gt;
&lt;br /&gt;
== Semantic-level Interaction Chunking ==&lt;br /&gt;
[David: This section doesn&#039;t list demonstrations or dependencies. It also has aims, significance, and background, which were not part of assignment 13. Can it be re-phrased to better match the assignment?]&lt;br /&gt;
&lt;br /&gt;
* Owner: [[User:Trevor O&#039;Brien | Trevor O&#039;Brien]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aims&#039;&#039;&#039;&lt;br /&gt;
* Develop techniques for &#039;&#039;chunking&#039;&#039; low-level interaction primitives into &#039;&#039;semantic-level&#039;&#039; interactions, given an application&#039;s functionality and data-context.  (And de-chunking? Invertible mapping needed?)&lt;br /&gt;
* Perform user-study evaluation to validate chunking methods.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Contributions&#039;&#039;&#039;&lt;br /&gt;
* Design and user-study evaluation of semantic chunking techniques.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Demonstration&#039;&#039;&#039;&lt;br /&gt;
* These techniques will be validated quantitatively with respect to efficiency and user error rate on a set of timed-tasks over a series of case studies.  In addition, qualitative feedback on user satisfaction will be incorporated in the evaluation of our methods.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dependencies&#039;&#039;&#039;&lt;br /&gt;
* Software framework for collecting user interactions.&lt;br /&gt;
* Formal description of interface functionality.&lt;br /&gt;
* Description of data objects that can be manipulated through interaction.&lt;br /&gt;
&lt;br /&gt;
== Reconciling Usability Heuristics with Cognitive Theory ==&lt;br /&gt;
* Owner: [[User:E J Kalafarski|E J Kalafarski]] 14:56, 28 April 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Contribution&#039;&#039;&#039;: A weighted framework for the unification of established heuristic usability guidelines and accepted cognitive principles.&lt;br /&gt;
&lt;br /&gt;
[David: I&#039;m having trouble parsing this contribution.  How do you weight a framework?  Also, I&#039;d like to have a little more sense of how this might fit into the bigger picture.  The assignment didn&#039;t ask for that, but is there some way to provide some of that context?]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Demonstration&#039;&#039;&#039;: Three groups of experts anecdotally apply cognitive principles, heuristic usability principles, and a combination of the two.&lt;br /&gt;
* A &amp;quot;cognition expert,&amp;quot; given a constrained, limited-functionality interface, develops an independent evaluative value for each interface element based on accepted cognitive principles.&lt;br /&gt;
* A &amp;quot;usability expert&amp;quot; develops an independent evaluative value for each interface element based on accepted heuristic guidelines.&lt;br /&gt;
* A third expert applies several unified cognitive analogues from a matrix of weighted cognitive and &lt;br /&gt;
* User testing demonstrates the assumed efficacy and applicability of the matricized analogues versus independent application of analogued principles.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dependency&#039;&#039;&#039;: A set of established cognitive principles, selected with an eye toward heuristic analogues.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dependency&#039;&#039;&#039;: A set of established heuristic design guidelines, selected with an eye toward cognitive analogues.&lt;br /&gt;
&lt;br /&gt;
== Evaluation for Recommendation and Incremental Improvement ==&lt;br /&gt;
* Owner: [[User:E J Kalafarski|E J Kalafarski]] 14:56, 28 April 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Contributions&#039;&#039;&#039;: Using a limited set of interface evaluation modules for analysis, we demonstrate, in a narrow and controlled manner, the proposed efficiency and accuracy of a method of aggregating individual interface suggestions based on accepted CPM principles (e.g. Fitts&#039; Law and Affordance) and applying them to the incremental improvement of the interface.&lt;br /&gt;
&lt;br /&gt;
[David: I&#039;m a little lost.  Can you make this long sentence into a couple shorter simpler ones?  I think I can imagine what you are getting at, but I&#039;m not sure.]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Demonstration&#039;&#039;&#039;: A narrow but comprehensive study to demonstrate the efficacy and efficiency of automated aggregation of interface evaluation versus independent, analysis.  Shows not total replacement, but a gain in speed of evaluation comparable to the loss of control and feature.&lt;br /&gt;
* Given a carefully-constrained interface, perhaps with as few as two buttons and a minimalist feature set, expert interface designer given the individual results of several basic evaluation modules makes recommendations and suggestions to the design of the interface.&lt;br /&gt;
* Aggregation meta-module conducts similar survey of module outputs, outputting recommendations and suggestions for improvement of given interface.&lt;br /&gt;
* Separate independent body of experts then implements the two sets of suggestions and performs user study on the resultant interfaces, analyzing usability change and comparing it to the time and resources committed by the evaluation expert and the aggregation module, respectively.&lt;br /&gt;
&lt;br /&gt;
[David: nice demonstration!]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dependency&#039;&#039;&#039;: Module for the analysis of Fitts&#039; Law as it applies to the individual elements of a given interface.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dependency&#039;&#039;&#039;: Module for the analysis of a Affordance as it applies to the individual elements of a given interface.&lt;br /&gt;
&lt;br /&gt;
[David: I think this also has, as a dependency, some kind of framework for the modules.  &amp;quot;narrow but comprehensive&amp;quot; sounds challenging.  ]&lt;br /&gt;
&lt;br /&gt;
== Evaluation Metrics ==&lt;br /&gt;
Owner: [[User:Gideon Goldin | Gideon Goldin]]&lt;br /&gt;
&lt;br /&gt;
:*Architecture Outputs&lt;br /&gt;
::* Time (time to complete task)&lt;br /&gt;
:::# Performs as well or better than CPM-GOMS, demonstrated with user tasks&lt;br /&gt;
:::* Dependencies&lt;br /&gt;
:::# CPM-GOMS Module with cognitive load extension&lt;br /&gt;
::* Cognitive Load&lt;br /&gt;
:::# Predicts cognitive load during tasks, demonstrated with user tasks&lt;br /&gt;
:::* Dependencies&lt;br /&gt;
::::# CPM-GOMS Module with cognitive load extension&lt;br /&gt;
::::# Facial Gesture Recognition Module&lt;br /&gt;
::* Frustration&lt;br /&gt;
:::# Accurately predicts users&#039; frustration levels, demonstrated with user tasks&lt;br /&gt;
:::* Dependencies&lt;br /&gt;
::::# Facial Gesture Recognition Module&lt;br /&gt;
::::# Galvanic Skin Response Module&lt;br /&gt;
::::# Interface Efficiency Module&lt;br /&gt;
::* Aesthetic Appeal&lt;br /&gt;
:::# Analyzes if the interface is aesthetically unpleasing, demonstrated with user tasks&lt;br /&gt;
:::* Dependencies&lt;br /&gt;
::::# Aesthetics Module &lt;br /&gt;
::* Simplicity&lt;br /&gt;
:::# Analyzes how simple the interface is, demonstrated with user tasks&lt;br /&gt;
:::* Dependencies&lt;br /&gt;
::::# Interface Efficiency Module&lt;br /&gt;
&lt;br /&gt;
== Parallel Framework for Evaluation Modules ==&lt;br /&gt;
* Owner: [[User:Adam Darlow | Adam Darlow]], [[User:Eric Sodomka | Eric Sodomka]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This section will describe in more detail the inputs, outputs and architecture that were presented in the introduction.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Contributions ====&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Create a framework that provides better interface evaluations than currently existing techniques, and a module weighting system that provides better evaluations than any of its modules taken in isolation.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Demonstrate by running user studies and comparing this performance to expected performance, as given by the following interface evaluation methods:&lt;br /&gt;
*# Traditional, manual interface evaluation &lt;br /&gt;
*#* As a baseline.&lt;br /&gt;
*# Using our system with a single module&lt;br /&gt;
*#* &amp;quot;Are any of our individual modules better than currently existing methods of interface evaluation?&amp;quot;.&lt;br /&gt;
*# Using our system with multiple modules, but have aggregator give a fixed, equal weighting to each module&lt;br /&gt;
*#* As a baseline for our aggregator: want to show that the value of adding the dynamic weighting.&lt;br /&gt;
*# Using our system with multiple modules, and allow the aggregator to adjust weightings for each module, but have each module get a single weighting for all dimensions (time, fatigue, etc.)&lt;br /&gt;
*#* For validating the use of a dynamic weighting system.&lt;br /&gt;
*# Using our system with multiple modules, and allow the aggregator to adjust weightings for each module, and allow the module to give different weightings to every dimension of the module (time, fatigue, etc.) &lt;br /&gt;
*#* For validating the use of weighting across multiple utility dimensions.&lt;br /&gt;
*Dependencies: Having a good set of modules to plug into the framework.&lt;br /&gt;
&lt;br /&gt;
[David: I have removed details of framework that seemed beyond contribs/demos/dependencies]&lt;br /&gt;
&lt;br /&gt;
== Evaluation and Recommendation via Modules ==&lt;br /&gt;
* Owner: [[User:E J Kalafarski | E J Kalafarski]]&lt;br /&gt;
&lt;br /&gt;
A &amp;quot;meta-module&amp;quot; called the aggregator will be responsible for assembling and formatting the output of all other modules into a structure that is both extensible and immediately usable, by both an automated designer or a human designer.&lt;br /&gt;
&lt;br /&gt;
===Requirements===&lt;br /&gt;
The aggregator&#039;s functionality, then, is defined by its &#039;&#039;&#039;inputs&#039;&#039;&#039;, the outputs of the other modules, and the desired &#039;&#039;&#039;output&#039;&#039;&#039; of the system as a whole, per its position in the architecture.  Its purpose is largely formatting and reconciliation of the products of the multitudinous (and extensible) modules.  The output of the aggregator must meet several requirements: first, to generate a set of human-readable suggestions for the improvement of the given interface; second, to generate a machine-readable, but also analyzable, evaluation of the various characteristics of the interface and accompanying user traces.&lt;br /&gt;
&lt;br /&gt;
From these specifications, it is logical to assume that a common language or format will be required for the output of individual modules.  We propose an XML-based file format, allowing: (1) a section for the standardized identification of problem areas, applicable rules, and proposed improvements, generalized by the individual module and mapped to a single element, or group of elements, in the original interface specification; (2) a section for specification of generalizable &amp;quot;utility&amp;quot; functions, allowing a module to specify how much a measurable quantity of utility is positively or negatively affected by properties of the input interface; (3) new, user-definable sections for evaluations of the given interface not covered by the first two sections.  The first two sections are capable of conveying the vast majority of module outputs predicted at this time, but the XML can extensibly allow modules to pass on whatever information may become prominent in the future.&lt;br /&gt;
&lt;br /&gt;
===Specification===&lt;br /&gt;
 &amp;lt;module id=&amp;quot;Fitts-Law&amp;quot;&amp;gt;&lt;br /&gt;
 	&amp;lt;interface-elements&amp;gt;&lt;br /&gt;
 		&amp;lt;element&amp;gt;&lt;br /&gt;
 			&amp;lt;desc&amp;gt;submit button&amp;lt;/desc&amp;gt;&lt;br /&gt;
 			&amp;lt;problem&amp;gt;&lt;br /&gt;
 				&amp;lt;desc&amp;gt;size&amp;lt;/desc&amp;gt;&lt;br /&gt;
 				&amp;lt;suggestion&amp;gt;width *= 2&amp;lt;/suggestion&amp;gt;&lt;br /&gt;
 				&amp;lt;suggestion&amp;gt;height *= 2&amp;lt;/suggestion&amp;gt;&lt;br /&gt;
 				&amp;lt;human-suggestion&amp;gt;Increase size relative to other elements&amp;lt;/human-suggestion&amp;gt;&lt;br /&gt;
 			&amp;lt;/problem&amp;gt;&lt;br /&gt;
 		&amp;lt;/element&amp;gt;&lt;br /&gt;
 	&amp;lt;/interface-elements&amp;gt;&lt;br /&gt;
 	&amp;lt;utility&amp;gt;&lt;br /&gt;
 		&amp;lt;dimension&amp;gt;&lt;br /&gt;
 			&amp;lt;desc&amp;gt;time&amp;lt;/desc&amp;gt;&lt;br /&gt;
 			&amp;lt;value&amp;gt;0:15:35&amp;lt;/value&amp;gt;&lt;br /&gt;
 		&amp;lt;/dimension&amp;gt;&lt;br /&gt;
 		&amp;lt;dimension&amp;gt;&lt;br /&gt;
 			&amp;lt;desc&amp;gt;frustration&amp;lt;/desc&amp;gt;&lt;br /&gt;
 			&amp;lt;value&amp;gt;pulling hair out&amp;lt;/value&amp;gt;&lt;br /&gt;
 		&amp;lt;/dimension&amp;gt;&lt;br /&gt;
 		&amp;lt;dimension&amp;gt;&lt;br /&gt;
 			&amp;lt;desc&amp;gt;efficiency&amp;lt;/desc&amp;gt;&lt;br /&gt;
 			&amp;lt;value&amp;gt;13.2s/KPM task&amp;lt;/value&amp;gt;&lt;br /&gt;
 			&amp;lt;value&amp;gt;0.56m/CPM task&amp;lt;/value&amp;gt;&lt;br /&gt;
 		&amp;lt;/dimension&amp;gt;&lt;br /&gt;
 	&amp;lt;/utility&amp;gt;&lt;br /&gt;
 	&amp;lt;tasks&amp;gt;&lt;br /&gt;
 		&amp;lt;task&amp;gt;&lt;br /&gt;
 			&amp;lt;desc&amp;gt;complete form&amp;lt;/desc&amp;gt;&lt;br /&gt;
 		&amp;lt;/task&amp;gt;&lt;br /&gt;
 		&amp;lt;task&amp;gt;&lt;br /&gt;
 			&amp;lt;desc&amp;gt;lookup SSN&amp;lt;/desc&amp;gt;&lt;br /&gt;
 		&amp;lt;/task&amp;gt;&lt;br /&gt;
 		&amp;lt;task&amp;gt;&lt;br /&gt;
 			&amp;lt;desc&amp;gt;format phone number&amp;lt;/desc&amp;gt;&lt;br /&gt;
 		&amp;lt;/task&amp;gt;&lt;br /&gt;
 	&amp;lt;/tasks&amp;gt;&lt;br /&gt;
 &amp;lt;/module&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Logic===&lt;br /&gt;
This file provided by each module is then the input for the aggregator.  The aggregator&#039;s most straightforward function is the compilation of the &amp;quot;problem areas,&amp;quot; assembling them and noting problem areas and suggestions that are recommended by more than one module, and weighting them accordingly in its final report.  These weightings can begin in an equal state, but the aggregator should be capable of learning iteratively which modules&#039; results are most relevant to the user and update weightings accordingly.  This may need to be accomplished with manual tuning, or a machine-learning algorithm capable of determining which modules most often agree with others.&lt;br /&gt;
&lt;br /&gt;
Secondly, the aggregator compiles the utility functions provided by the module specs.  This, again, is a summation of similarly-described values from the various modules.&lt;br /&gt;
&lt;br /&gt;
When confronted with user-defined sections of the XML spec, the aggregator is primarily responsible for compiling them and sending them along to the output of the machine.  Even if the aggregator does not recognize a section or property of the evaluative spec, if it sees the property reported by more than one module it should be capable of aggregating these intelligently.  In future versions of the spec, it should be possible for a module to provide instructions for the aggregator on how to handle unrecognized sections of the XML.&lt;br /&gt;
&lt;br /&gt;
From these compilations, then, the aggregator should be capable of outputting both aggregated human-readable suggestions on interface improvements for a human designer, as well as a comprehensive evaluation of the interface&#039;s effectiveness at the given task traces.  Again, this is dependent on the specification of the system as a whole, but is likely to include measures and comparisons, graphings of task versus utility, and quantitative measures of an element&#039;s effectiveness.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This section is necessarily defined by the output of the individual modules (which I already expect to be of varied and arbitrary structure) and the desired output of the machine as a whole.  It will likely need to be revised heavily after other modules and the &amp;quot;Parellel Framework&amp;quot; section are defined.&#039;&#039; [[User:E J Kalafarski|E J Kalafarski]] 12:34, 24 April 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This section describes the aggregator, which takes the output of multiple independent modules and aggregates the results to provide (1) an evaluation and (2) recommendations for the user interface. We should explain how the aggregator weights the output of different modules (this could be based on historical performance of each module, or perhaps based on E.J.&#039;s cognitive/HCI guidelines).&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Sample Modules ==&lt;br /&gt;
&lt;br /&gt;
=== CPM-GOMS ===&lt;br /&gt;
* Owners: [[User:Steven Ellis | Steven Ellis]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This module will provide interface evaluations and suggestions based on a CPM-GOMS model of cognition for the given interface. It will provide a quantitative, predictive, cognition-based parameterization of usability. From empirically collected data, user trajectories through the model (critical paths) will be examined, highlighting bottlenecks within the interface, and offering suggested alterations to the interface to induce more optimal user trajectories.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
I’m hoping to have some input on this section, because it seems to be the crux of the “black box” into which we take the inputs of interface description, user traces, etc. and get our outputs (time, recommendations, etc.).  I know at least a few people have pretty strong thoughts on the matter and we ought to discuss the final structure.&lt;br /&gt;
&lt;br /&gt;
That said – my proposal for the module:&lt;br /&gt;
*In my opinion the concept of the Model Human Processor (at least as applied in CPM) is outdated – it’s too economic/overly parsimonious in its conception of human activity.  I think we need to create a structure which accounts for more realistic conditions of HCI including multitasking, aspects of distributed cognition (and other relevant uses of tools – as far as I can tell CPM doesn’t take into account any sort of productivity aids), executive control processes of attention, etc.  ACT-R appears to take steps towards this but we would probably need to look at their algorithms to know for sure.&lt;br /&gt;
*Critical paths will continue to play an important role – we should in fact emphasize that part of this tool’s purpose will be a description not only of ways in which the interface should be modified to best fit a critical path, but also ways in which the user’s ought to be instructed in their use of the path.  This feedback mechanism could be bidirectional – if the model’s predictions of the user’s goals are incorrect, the critical path determined will also be incorrect and the interface inherently suboptimal.  The user could be prompted with a tooltip explaining in brief why and how the interface has changed, along with options to revert, select other configurations (euphemized by goals), and to view a short video detailing how to properly use the interface.&lt;br /&gt;
*Call me crazy but, if we assume designers will be willing to code a model of their interfaces into our ACT-R-esque language, could we allow that model to be fairly transparent to the user, who could use a gui to input their goals to find an analogue in the program which would subsequently rearrange its interface to fit the user’s needs?  Even if not useful to the users, such dynamic modeling could really help designers (IMO)&lt;br /&gt;
*I think the model should do its best to accept models written for ACT-R and whatever other cognitive models there are out there – gives us the best chance of early adoption&lt;br /&gt;
*I would particularly appreciate input on the number/complexity/type of inputs we’ll be using, as well as the same qualities for the output.&lt;br /&gt;
&lt;br /&gt;
=== HCI Guidelines ===&lt;br /&gt;
* Owner: [[User:E J Kalafarski | E J Kalafarski]]&lt;br /&gt;
&lt;br /&gt;
Schneiderman&#039;s Eight Golden Rules and Jakob Nielsen&#039;s Ten Heuristics are perhaps the most famous and well-regarded heuristic design guidelines to emerge over the last twenty years.  Although the explicit theoretical basis for such heuristics is controversial and not well-explored, the empirical success of these guidelines is established and accepted.  This module will parse out up to three or four common (that is, intersecting) principles from these accepted guidelines and apply them to the input interface.&lt;br /&gt;
&lt;br /&gt;
As an example, we identify an analogous principle that appears in Schneiderman (&amp;quot;Reduce short-term memory load&amp;quot;)&amp;lt;ref&amp;gt;http://faculty.washington.edu/jtenenbg/courses/360/f04/sessions/schneidermanGoldenRules.html&amp;lt;/ref&amp;gt; and Nielsen (&amp;quot;Recognition rather than recall/Minimize the user&#039;s memory load&amp;quot;)&amp;lt;ref&amp;gt;http://www.useit.com/papers/heuristic/heuristic_list.html&amp;lt;/ref&amp;gt;.  The input interface is then evaluated for the consideration of the principle, based on an explicit formal description of the interface, such as XAML or XUL.  The module attempts to determine how effectively the interface demonstrates the principle.  When analyzing an interface for several principles that may be conflicting or opposing in a given context, the module makes use of a hard-coded but iterative (and evolving) weighting of these principles, based on (1) how often they appear in the training set of accepted sets of guidelines, (2) how analogues a heuristic principle is to a cognitive principle in a parallel training set, and (3) how effective the principle&#039;s associated suggestion is found to be using a feedback mechanism.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inputs&#039;&#039;&#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
# A formal description of the interface and its elements (e.g. buttons).&lt;br /&gt;
# A formal description of a particular task and the possible paths through a subset of interface elements that permit the user to accomplish that task.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Output&#039;&#039;&#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
Standard XML-formatted file containing problem areas of the input interface, suggestions for each problem area based on principles that were found to have a strong application to a problem element and the problem itself, and a human-readable generated analysis of the element&#039;s affinity for the principle.  Quantitative outputs will not be possible based on heuristic guidelines, and the &amp;quot;utility&amp;quot; section of this module&#039;s output is likely to be blank.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This section could include an example or two of established design guidelines that could easily be implemented as modules.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Fitts&#039;s Law ===&lt;br /&gt;
* Owner: [[User:Jon Ericson | Jon Ericson]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This module provides an estimate of the required time to complete various tasks that have been decomposed into formalized sequences of interactions with interface elements, and will provide evaluations and recommendations for optimizing the time required to complete those tasks using the interface.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1. A formal description of the interface and its elements (e.g. buttons).&lt;br /&gt;
&lt;br /&gt;
2. A formal description of a particular task and the possible paths through a subset of interface elements that permit the user to accomplish that task.&lt;br /&gt;
&lt;br /&gt;
3. The physical distances between interface elements along those paths.&lt;br /&gt;
&lt;br /&gt;
4. The width of those elements along the most likely axes of motion.&lt;br /&gt;
&lt;br /&gt;
5. Device (e.g. mouse) characteristics including start/stop time and the inherent speed limitations of the device.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Output&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The module will then use the Shannon formulation of Fitt&#039;s Law to compute the average time needed to complete the task along those paths.&lt;br /&gt;
&lt;br /&gt;
=== Affordances ===&lt;br /&gt;
* Owner: [[User:Jon Ericson | Jon Ericson]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This simple module will provide interface evaluations and recommendations based on a measure of the extent to which the user perceives the relevant affordances of the interface when performing a number of specified tasks.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inputs&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Formalized descriptions of...&lt;br /&gt;
&lt;br /&gt;
1. Interface elements&lt;br /&gt;
&lt;br /&gt;
2. Their associated actions&lt;br /&gt;
&lt;br /&gt;
3. The functions of those actions&lt;br /&gt;
&lt;br /&gt;
4. A particular task&lt;br /&gt;
&lt;br /&gt;
5. User traces for that task.  &lt;br /&gt;
&lt;br /&gt;
Inputs (1-4) are then used to generate a &amp;quot;user-independent&amp;quot; space of possible functions that the interface is capable of performing with respect to a given task -- what the interface &amp;quot;affords&amp;quot; the user.  From this set of possible interactions, our model will then determine the subset of optimal paths for performing a particular task.  The user trace (5) is then used to determine what functions actually were performed in the course of a given task of interest and this information is then compared to the optimal path data to determine the extent to which affordances of the interface are present but not perceived.  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Output&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The output of this module is a simple ratio of (affordances perceived) / [(relevant affordances present) * (time to complete task)] which provides a quantitative measure of the extent to which the interface is &amp;quot;natural&amp;quot; to use for a particular task.&lt;br /&gt;
&lt;br /&gt;
=== Workflow, Multi-tasking and Interruptions ===&lt;br /&gt;
* Owner: [[User:Andrew Bragdon | Andrew Bragdon]]&lt;br /&gt;
&lt;br /&gt;
[David: I think that the work proposed here is interesting, but I&#039;m not sure that it is organized by &amp;quot;contribution&amp;quot;.  Try labeling the contributions and the demonstrations explicitly.  A &amp;quot;tool&amp;quot; is usually not a contribution -- an evaluation of the tool could be.  If this distinction isn&#039;t clear, let&#039;s talk.  For these particular contributions, phrasing and integrating them is a challenge because some of the contributions are demonstrations of other contributions...]&lt;br /&gt;
&lt;br /&gt;
::* Scientific Study of Multi-tasking Workflow and the Impact of Interruptions&lt;br /&gt;
:::# We will undertake detailed studies to help understand the following questions:&lt;br /&gt;
::::# How does the size of a user&#039;s working set impact interruption resumption time?&lt;br /&gt;
::::# How does the size of a user&#039;s working set, when used for rapid multi-tasking, impact performance metrics?&lt;br /&gt;
::::# How does a user interface which supports multiple simultaneous working sets benefit interruption resumption time?&lt;br /&gt;
:::* No Dependencies&lt;br /&gt;
::* Meta-work Assistance Tool&lt;br /&gt;
:::# We will perform a series of ecologically-valid studies to compare user performance between a state of the art task management system (control group) and our meta-work assistance tool (experimental group)&lt;br /&gt;
:::* Dependent on core study completion, as some of the specific design decisions will be driven by the results of this study.  However, it is worth pointing out that this separate contribution can be researched in parallel to the core study.&lt;br /&gt;
::* Baseline Comparison Between Module-based Model of HCI and Core Multi-tasking Study&lt;br /&gt;
:::# We will compare the results of the above-mentioned study in multi-tasking against results predicted by the module-based model of HCI in this proposal; this will give us an important baseline comparison, particularly given that multi-tasking and interruption involve higher brain functioning and are therefore likely difficult to predict&lt;br /&gt;
:::* Dependent on core study completion, as well as most of the rest of the proposal being completed to the point of being testable&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Text for Assignment 12:&lt;br /&gt;
&lt;br /&gt;
Add text here about how this can be used to evaluate automatic framework&lt;br /&gt;
&lt;br /&gt;
There are, at least, two levels at which users work ([http://portal.acm.org/citation.cfm?id=985692.985707&amp;amp;coll=portal&amp;amp;dl=ACM&amp;amp;CFID=20781736&amp;amp;CFTOKEN=83176621 Gonzales, et al., 2004]).  Users accomplish individual low-level tasks which are part of larger &#039;&#039;working spheres&#039;&#039;; for example, an office worker might send several emails, create several Post-It (TM) note reminders, and then edit a word document, each of these smaller tasks being part of a single larger working sphere of &amp;quot;adding a new section to the website.&amp;quot;  Thus, it is important to understand this larger workflow context - which often involves extensive levels of multi-tasking, as well as switching between a variety of computing devices and traditional tools, such as notebooks.  In this study it was found that the information workers surveyed typically switch individual tasks every 2 minutes and have many simultaneous working spheres which they switch between, on average every 12 minutes.  This frenzied pace of switching tasks and switching working spheres suggests that users will not be using a single application or device for a long period of time, and that affordances to support this characteristic pattern of information work are important.&lt;br /&gt;
&lt;br /&gt;
The purpose of this module is to integrate existing work on multi-tasking, interruption and higher-level workflow into a framework which can predict user recovery times from interruptions.  Specifically, the goals of this framework will be to:&lt;br /&gt;
&lt;br /&gt;
* Understand the role of the larger workflow context in user interfaces&lt;br /&gt;
* Understand the impact of interruptions on user workflow&lt;br /&gt;
* Understand how to design software which fits into the larger working spheres in which information work takes place&lt;br /&gt;
&lt;br /&gt;
It is important to point out that because workflow and multi-tasking rely heavily on higher-level brain functioning, it is unrealistic within the scope of this grant to propose a system which can predict user performance given a description of a set of arbitrary software programs.  Therefore, we believe this module will function much more in a qualitative role to provide context to the rest of the model.  Specifically, our findings related to interruption and multi-tasking will advance the basic research question of &amp;quot;how do you users react to interruptions when using working sets of varying sizes?&amp;quot;.  This core HCI contribution will help to inform the rest of the outputs of the model in a qualitative manner.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
N/A&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Outputs&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
N/A&lt;br /&gt;
&lt;br /&gt;
=== Working Memory Load ===&lt;br /&gt;
* Owner: [[User:Gideon Goldin | Gideon Goldin]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This module measures how much information the user needs to retain in memory while interacting with the interface and makes suggestions for improvements.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Models&lt;br /&gt;
** Beddeley&#039;s Model of Working Memory&amp;lt;ref&amp;gt;http://en.wikipedia.org/wiki/Baddeley%27s_model_of_working_memory&amp;lt;/ref&amp;gt;&lt;br /&gt;
*** Episodic Buffer&lt;br /&gt;
** George Miller&#039;s &amp;quot;The magic number 7 plus or minus 2&amp;quot;&amp;lt;ref&amp;gt;http://en.wikipedia.org/wiki/The_Magical_Number_Seven,_Plus_or_Minus_Two&amp;lt;/ref&amp;gt;&lt;br /&gt;
** The magic number 4&amp;lt;ref&amp;gt;Cowan, N. (2001). The magical number 4 in short-term memory: A reconsideration of mental storage capacity. Behavioral and Brain Sciences, 24, 87-185.&amp;lt;/ref&amp;gt;&lt;br /&gt;
* Chunking&amp;lt;ref&amp;gt;http://en.wikipedia.org/wiki/Chunking_(psychology)&amp;lt;/ref&amp;gt;&lt;br /&gt;
* Priming&amp;lt;ref&amp;gt;http://en.wikipedia.org/wiki/Priming_(psychology)&amp;lt;/ref&amp;gt;&lt;br /&gt;
* Subitizing and Counting&amp;lt;ref&amp;gt;http://en.wikipedia.org/wiki/Subitizing&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
* Visual Stimuli&lt;br /&gt;
* Audio Stimuli&lt;br /&gt;
&#039;&#039;&#039;Outputs&#039;&#039;&#039;&lt;br /&gt;
* Remembered percepts&lt;br /&gt;
* Half-Life of percepts&lt;br /&gt;
&lt;br /&gt;
=== Automaticity of Interaction ===&lt;br /&gt;
* Owner: [[User:Gideon Goldin | Gideon Goldin]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Measures how easily the interaction with the interface becomes automatic with experience and makes suggestions for improvements.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Learning&amp;lt;ref&amp;gt;http://en.wikipedia.org/wiki/Learning#Mathematical_models_of_learning&amp;lt;/ref&amp;gt;&lt;br /&gt;
** Logan&#039;s instance theory of automatization&amp;lt;ref&amp;gt;http://74.125.95.132/search?q=cache:IZ-Zccsu3SEJ:psych.wisc.edu/ugstudies/psych733/logan_1988.pdf+logan+isntance+teory&amp;amp;cd=1&amp;amp;hl=en&amp;amp;ct=clnk&amp;amp;gl=us&amp;amp;client=firefox-a&amp;lt;/ref&amp;gt;&lt;br /&gt;
* Fluency&lt;br /&gt;
** As meta-cognitive information &amp;lt;ref&amp;gt;http://www.sciencedirect.com/science?_ob=ArticleURL&amp;amp;_udi=B6VH9-4SM7PFK-4&amp;amp;_user=10&amp;amp;_rdoc=1&amp;amp;_fmt=&amp;amp;_orig=search&amp;amp;_sort=d&amp;amp;view=c&amp;amp;_acct=C000050221&amp;amp;_version=1&amp;amp;_urlVersion=0&amp;amp;_userid=10&amp;amp;md5=10cd279fa80958981fcc3c06684c09af&amp;lt;/ref&amp;gt;&lt;br /&gt;
** As a cognitive &#039;&#039;heuristic&#039;&#039;&amp;lt;ref&amp;gt;http://en.wikipedia.org/wiki/Fluency_heuristic&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
* Interface&lt;br /&gt;
* User goals&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Outputs&#039;&#039;&#039;&lt;br /&gt;
* Learning curve&lt;br /&gt;
&lt;br /&gt;
=== Anti-Pattern Conflict Resolution ===&lt;br /&gt;
* Owner: [[User: Ian Spector | Ian Spector]]&lt;br /&gt;
&lt;br /&gt;
Interface design patterns are defined as reusable elements which provide solutions to common problems. For instance, we expect that an arrow in the top left corner of a window which points to the left, when clicked upon, will take the user to a previous screen. Furthermore, we expect that buttons in the top left corner of a window will in some way relate to navigation. &lt;br /&gt;
&lt;br /&gt;
An anti-pattern is a design pattern which breaks standard design convention, creating more problems than it solves. An example of an anti-pattern would be if in place of the &#039;back&#039; button on your web browser, there would be a &#039;view history&#039; button.&lt;br /&gt;
&lt;br /&gt;
The purpose of this module would be to analyze an interface to see if any anti-patterns exist, identify where they are in the interface, and then suggest alternatives.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
*Formal interface description&lt;br /&gt;
*Tasks which can be performed within the interface&lt;br /&gt;
*A library of standard design patterns&lt;br /&gt;
*Outputs from the &#039;Affordances&#039; module&lt;br /&gt;
*Uncommon / Custom additional pattern library (optional)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Outputs&#039;&#039;&#039;&lt;br /&gt;
*Identification of interface elements whose placement or function are contrary to the pattern library&lt;br /&gt;
*Recommendations for alternative functionality or placement of such elements.&lt;br /&gt;
&lt;br /&gt;
== Integration into the Design Process ==&lt;br /&gt;
* Owner: [[User:Ian Spector | Ian Spector]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This section outlines the process of designing an interface and at what stages our proposal fits in and how.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The interface design process is critical to the creation of a quality end product. The process of creating an interface can also be used as a model for analyzing a finished one.&lt;br /&gt;
&lt;br /&gt;
There are a number of different philosophies on how to best design software and in turn, interface. Currently, agile development using an incremental process such as [http://en.wikipedia.org/wiki/SCRUM Scrum] has become a well known and generally practiced procedure.&lt;br /&gt;
&lt;br /&gt;
The steps to create interfaces varies significantly from text to text, although the [http://http://cfg.cit.cornell.edu/design/process.html Common Front Group at Cornell] has succinctly been able to reduce this variety into six simple steps:&lt;br /&gt;
	&lt;br /&gt;
*Requirement Sketching&lt;br /&gt;
*Conceptual Design&lt;br /&gt;
*Logical Design&lt;br /&gt;
*Physical Design&lt;br /&gt;
*Construction&lt;br /&gt;
*Usability Testing&lt;br /&gt;
&lt;br /&gt;
This can be broken down further into just information architecture design followed by physical design and testing.&lt;br /&gt;
&lt;br /&gt;
As far as this proposal is concerned in the context of interface design, the goal of our proposal is to improve what is involved with later end of the middle two portions: logical and physical design. Prior to feeding an interface to the system we are proposing, designers should have already created a baseline model for review that should exhibit the majority, if not all, of the functionality listed in the interface requirements. Once this initial interface has been created, our system will aid in rapidly iterating through the physical design process. The ultimate end products are then subject to human usability testing.&lt;/div&gt;</summary>
		<author><name>Trevor O&#039;Brien</name></author>
	</entry>
	<entry>
		<id>http://vrl.cs.brown.edu/wiki/index.php?title=CS295J/Research_proposal_(draft_2)&amp;diff=3172</id>
		<title>CS295J/Research proposal (draft 2)</title>
		<link rel="alternate" type="text/html" href="http://vrl.cs.brown.edu/wiki/index.php?title=CS295J/Research_proposal_(draft_2)&amp;diff=3172"/>
		<updated>2009-04-24T16:59:36Z</updated>

		<summary type="html">&lt;p&gt;Trevor O&amp;#039;Brien: /* Semantic-level Interaction Chunking */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
* Owners: [[User:Adam Darlow | Adam Darlow]], [[User:Eric Sodomka | Eric Sodomka]], [[User: Trevor O&#039;Brien | Trevor]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Propose:&#039;&#039;&#039; The design, application and evaluation of a novel, cognition-based, computational framework for assessing interface design and providing automated suggestions to optimize usability.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Evaluation Methodology:&#039;&#039;&#039;  Our techniques will be evaluated quantitatively through a series of user-study trials, as well as qualitatively by a team of expert interface designers. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Contributions and Significance:&#039;&#039;&#039;  We expect this work to make the following contributions:  &lt;br /&gt;
# design-space analysis and quantitative evaluation of cognition-based techniques for assessing user interfaces.  &lt;br /&gt;
# design and quantitative evaluation of techniques for suggesting optimized interface-design changes. &lt;br /&gt;
# an extensible, multimodal software architecture for capturing user traces integrated with pupil-tracking data, auditory recognition, and muscle-activity monitoring.  &lt;br /&gt;
# specification (language?) of how to define an interface evaluation module and how to integrate it into a larger system.  &lt;br /&gt;
# (there may be more here, like testing different cognitive models, generating a markup language to represent interfaces, maybe even a unique metric space for interface usability)&lt;br /&gt;
&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
We propose a framework for interface evaluation and recommendation that integrates behavioral models and design guidelines from both cognitive science and HCI. Our framework behaves like a committee of specialized experts, where each expert provides its own assessment of the interface, given its particular knowledge of HCI or cognitive science. For example, an expert may provide an evaluation based on the GOMS method, Fitts&#039;s law, Maeda&#039;s design principles, or cognitive models of learning and memory. An aggregator collects all of these assessments and weights the opinions of each expert, and outputs to the developer a merged evaluation score and a weighted set of recommendations.&lt;br /&gt;
&lt;br /&gt;
Systematic methods of estimating human performance with computer interfaces are used only sparsely despite their obvious benefits, the reason being the overhead involved in implementing them. In order to test an interface, both manual coding systems like the GOMS variations and user simulations like those based on ACT-R/PM and EPIC require detailed pseudo-code descriptions of the user workflow with the application interface. Any change to the interface then requires extensive changes to the pseudo-code, a major problem because of the trial-and-error nature of interface design. Updating the models themselves is even more complicated. Even an expert in CPM-GOMS, for example, can&#039;t necessarily adapt it to take into account results from new cognitive research.&lt;br /&gt;
&lt;br /&gt;
Our proposal makes automatic interface evaluation easier to use in several ways. First of all, we propose to divide the input to the system into three separate parts, functionality, user traces and interface. By separating the functionality from the interface, even radical interface changes will require updating only that part of the input. The user traces are also defined over the functionality so that they too translate across different interfaces. Second, the parallel modular architecture allows for a lower &amp;quot;entry cost&amp;quot; for using the tool. The system includes a broad array of evaluation modules some of which are very simple and some more complex. The simpler modules use only a subset of the input that a system like GOMS or ACT-R would require. This means that while more input will still lead to better output, interface designers can get minimal evaluations with only minimal information. For example, a visual search module may not require any functionality or user traces in order to determine whether all interface elements are distinct enough to be easy to find. Finally, a parallel modular architecture is much easier to augment with relevant cognitive and design evaluations.&lt;br /&gt;
&lt;br /&gt;
= Background / Related Work =&lt;br /&gt;
&lt;br /&gt;
Each person should add the background related to their specific aims.&lt;br /&gt;
&lt;br /&gt;
* Steven Ellis - Cognitive models of HCI, including GOMS variations and ACT-R&lt;br /&gt;
* EJ - Design Guidelines&lt;br /&gt;
* Jon - Perception and Action&lt;br /&gt;
* Andrew - Multiple task environments&lt;br /&gt;
* Gideon - Cognition and dual systems&lt;br /&gt;
* Ian - Interface design process&lt;br /&gt;
* Trevor - User trace collection methods (especially any eye-tracking, EEG, ... you want to suggest using)&lt;br /&gt;
&lt;br /&gt;
== Cognitive Models ==&lt;br /&gt;
I plan to port over most of the background on cognitive models of HCI from the old proposal&lt;br /&gt;
&lt;br /&gt;
Additions will comprise of:&lt;br /&gt;
*CPM-GOMS as a bridge from GOMS architecture to the promising procedural optimization of the Model Human Processor&lt;br /&gt;
**Context of CPM development, discuss its relation to original GOMS and KLM&lt;br /&gt;
***Establish the tasks which were relevant for optimization when CPM was developed and note that its obsolescence may have been unavoidable&lt;br /&gt;
**Focus on CPM as the first step in transitioning from descriptive data, provided by mounting efforts in the cognitive sciences realm to discover the nature of task processing and accomplishment, to prescriptive algorithms which can predict an interface’s efficiency and suggest improvements&lt;br /&gt;
**CPM’s purpose as an abstraction of cognitive processing – a symbolic representation not designed for accuracy but precision&lt;br /&gt;
**CPM’s successful trials, e.g. Ernestine&lt;br /&gt;
***Implications of this project include CPM’s ability to accurately estimate processing at a psychomotor level&lt;br /&gt;
***Project does suggest limitations, however, when one attempts to examine more complex tasks which involve deeper and more numerous cognitive processes&lt;br /&gt;
*ACT-R as an example of a progressive cognitive modeling tool&lt;br /&gt;
**A tool clearly built by and for cognitive scientists, and as a result presents a much more accurate view of human processing – helpful for our research&lt;br /&gt;
**Built-in automation, which now seems to be a standard feature of cognitive modeling tools&lt;br /&gt;
**Still an abstraction of cognitive processing, but makes adaptation to cutting-edge cognitive research findings an integral aspect of its modular structure&lt;br /&gt;
**Expand on its focus on multi-tasking, taking what was a huge advance between GOMS and its CPM variation and bringing the simulation several steps closer to approximating the nature of cognition in regards to HCI&lt;br /&gt;
**Far more accessible both for researchers and the lay user/designer in its portability to LISP, pre-construction of modules representing cognitive capacities and underlying algorithms modeling paths of cognitive processing&lt;br /&gt;
&lt;br /&gt;
==Design guidelines==&lt;br /&gt;
A multitude of rule sets exist for the design of not only interface, but architecture, city planning, and software development.  They can range in scale from one primary rule to as many Christopher Alexander&#039;s 253 rules for urban environments,&amp;lt;ref&amp;gt;[http://hci.rwth-aachen.de/materials/publications/borchers2000a.pdf Borchers, Jan O.  &amp;quot;A Pattern Approach to Interaction Design.&amp;quot;  2000.]&amp;lt;/ref&amp;gt; which he introduced with the concept design patterns in the 1970s.  Study has likewise been conducted on the use of these rules:&amp;lt;ref&amp;gt;http://stl.cs.queensu.ca/~graham/cisc836/lectures/readings/tetzlaff-guidelines.pdf&amp;lt;/ref&amp;gt; guidelines are often only partially understood, indistinct to the developer, and &amp;quot;fraught&amp;quot; with potential usability problems given a real-world situation.&lt;br /&gt;
&lt;br /&gt;
===Application to AUE===&lt;br /&gt;
And yet, the vast majority of guideline sets, including the most popular rulesets, have been arrived at heuristically.  The most successful, such as Raskin&#039;s and Schneiderman&#039;s, have been forged from years of observation instead of empirical study and experimentation.  The problem is similar to the problem of circular logic faced by automated usability evaluations: an automated system is limited in the suggestions it can offer to a set of preprogrammed guidelines which have often not been subjected to rigorous experimentation.&amp;lt;ref&amp;gt;[http://www.eecs.berkeley.edu/Pubs/TechRpts/2000/CSD-00-1105.pdf Ivory, M and Hearst, M.  &amp;quot;The State of the Art in Automated Usability Evaluation of User Interfaces.&amp;quot; ACM Computing Surveys (CSUR), 2001.]&amp;lt;/ref&amp;gt;  In the vast majority of existing studies, emphasis has traditionally been placed on either the development of guidelines or the application of existing guidelines to automated evaluation.  A mutually-reinforcing development of both simultaneously has not been attempted.&lt;br /&gt;
&lt;br /&gt;
Overlap between rulesets is inevitable and unavoidable.  For our purposes of evaluating existing rulesets efficiently, without extracting and analyzing each rule individually, it may be desirable to identify the the overarching &#039;&#039;principles&#039;&#039; or &#039;&#039;philosophy&#039;&#039; (max. 2 or 3) for a given ruleset and determining their quantitative relevance to problems of cognition.&lt;br /&gt;
&lt;br /&gt;
===Popular and seminal examples===&lt;br /&gt;
Schneiderman&#039;s [http://faculty.washington.edu/jtenenbg/courses/360/f04/sessions/schneidermanGoldenRules.html Eight Golden Rules] date to 1987 and are arguably the most-cited.  They are heuristic, but can be somewhat classified by cognitive objective: at least two rules apply primarily to &#039;&#039;repeated use&#039;&#039;, versus &#039;&#039;discoverability&#039;&#039;.  Up to five of Schneiderman&#039;s rules emphasize &#039;&#039;predictability&#039;&#039; in the outcomes of operations and &#039;&#039;increased feedback and control&#039;&#039; in the agency of the user.  His final rule, paradoxically, removes control from the user by suggesting a reduced short-term memory load, which we can arguably classify as &#039;&#039;simplicity&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Raskin&#039;s [http://www.mprove.de/script/02/raskin/designrules.html Design Rules] are classified into five principles by the author, augmented by definitions and supporting rules.  While one principle is primarily aesthetic (a design problem arguably out of the bounds of this proposal) and one is a basic endorsement of testing, the remaining three begin to reflect philosophies similar to Schneiderman&#039;s: reliability or &#039;&#039;predictability&#039;&#039;, &#039;&#039;simplicity&#039;&#039; or &#039;&#039;efficiency&#039;&#039; (which we can construe as two sides of the same coin), and finally he introduces a concept of &#039;&#039;uninterruptibility&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Maeda&#039;s [http://lawsofsimplicity.com/?cat=5&amp;amp;order=ASC Laws of Simplicity] are fewer, and ostensibly emphasize &#039;&#039;simplicity&#039;&#039; exclusively, although elements of &#039;&#039;use&#039;&#039; as related by Schneiderman&#039;s rules and &#039;&#039;efficiency&#039;&#039; as defined by Raskin may be facets of this simplicity.  Google&#039;s corporate mission statement presents [http://www.google.com/corporate/ux.html Ten Principles], only half of which can be considered true interface guidelines.  &#039;&#039;Efficiency&#039;&#039; and &#039;&#039;simplicity&#039;&#039; are cited explicitly, aesthetics are once again noted as crucial, and working within a user&#039;s trust is another application of &#039;&#039;predictability&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
===Elements and goals of a guideline set===&lt;br /&gt;
Myriad rulesets exist, but variation becomes scarce—it indeed seems possible to parse these common rulesets into overarching principles that can be converted to or associated with quantifiable cognitive properties.  For example, it is likely &#039;&#039;simplicity&#039;&#039; has an analogue in the short-term memory retention or visual retention of the user, vis a vis the rule of [http://books.google.com/books?hl=en&amp;amp;lr=&amp;amp;id=j5q0VvOGExYC&amp;amp;oi=fnd&amp;amp;pg=PA357&amp;amp;dq=seven+plus+or+minus+two&amp;amp;ots=prI3PKJBar&amp;amp;sig=vOZnqpnkXKGYWxK6_XlA4I_CRyI Seven, Plus or Minus Two].  &#039;&#039;Predictability&#039;&#039; likewise may have an analogue in Activity Theory, in regards to a user&#039;s perceptual expectations for a given action; &#039;&#039;uninterruptibility&#039;&#039; has implications in cognitive task-switching;&amp;lt;ref&amp;gt;[http://portal.acm.org/citation.cfm?id=985692.985715&amp;amp;coll=Portal&amp;amp;dl=ACM&amp;amp;CFID=21136843&amp;amp;CFTOKEN=23841774 Czerwinski, Horvitz, and White. &amp;quot;A Diary Study of Task Switching and Interruptions.&amp;quot;  Proceedings of the SIGCHI conference on Human factors in computing systems, 2004.]&amp;lt;/ref&amp;gt; and so forth.&lt;br /&gt;
&lt;br /&gt;
Within the scope of this proposal, we aim to reduce and refine these philosophies found in seminal rulesets and identify their logical cognitive analogues.  By assigning a quantifiable taxonomy to these principles, we will be able to rank and weight them with regard to their real-world applicability, developing a set of &amp;quot;meta-guidelines&amp;quot; and rules for applying them to a given interface in an automated manner.  Combined with cognitive models and multi-modal HCI analysis, we seek to develop, in parallel with these guidelines, the interface evaluation system responsible for their application.&lt;br /&gt;
&lt;br /&gt;
== Perception and Action (in progress) ==&lt;br /&gt;
&lt;br /&gt;
*Information Processing Approach&lt;br /&gt;
**Advantages&lt;br /&gt;
***Formalism eases translation of theory into scripting language&lt;br /&gt;
**Disadvantages&lt;br /&gt;
***Assumes symbolic representation&lt;br /&gt;
&lt;br /&gt;
*Ecological (Gibsonian) Approach&lt;br /&gt;
**Advantages&lt;br /&gt;
***Emphasis on bodily and environmental constraints&lt;br /&gt;
**Disadvantages&lt;br /&gt;
***Lack of formalism hinders translation of theory into scripting language&lt;br /&gt;
&lt;br /&gt;
= Specific Aims and Contributions (to be separated later) =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Specific Aims&#039;&#039;&#039;&lt;br /&gt;
* Incorporate interaction history mechanisms into a set of existing applications.&lt;br /&gt;
* Perform user-study evaluation of history-collection techniques.&lt;br /&gt;
* Distill a set of cognitive principles/models, and evaluate empirically?&lt;br /&gt;
* Build/buy sensing system to include pupil-tracking, muscle-activity monitoring, auditory recognition.&lt;br /&gt;
* Design techniques for manual/semi-automated/automated construction of &amp;lt;insert favorite cognitive model here&amp;gt; from interaction histories and sensing data.&lt;br /&gt;
* Design system for posterior analysis of interaction history w.r.t. &amp;lt;insert favorite cognitive model here&amp;gt;, evaluating critical path &amp;lt;or equivalent&amp;gt; trajectories.&lt;br /&gt;
* Design cognition-based techniques for detecting bottlenecks in critical paths, and offering optimized alternatives. &lt;br /&gt;
* Perform quantitative user-study evaluations, collect qualitative feedback from expert interface designers.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Contributions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Design-space analysis and quantitative evaluation of cognition-based techniques for assessing user interfaces. &lt;br /&gt;
* Design and quantitative evaluation of techniques for suggesting optimized interface-design changes. &lt;br /&gt;
* An extensible, multimodal software architecture for capturing user traces integrated with pupil-tracking data, auditory recognition, and muscle-activity monitoring. &lt;br /&gt;
* (there may be more here, like testing different cognitive models, generating a markup language to represent interfaces, maybe even a unique metric space for interface usability) &lt;br /&gt;
&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
See the [http://vrl.cs.brown.edu/wiki/images/b/b1/Flowchart2.pdf flowchart] for a visual overview of our aims.&lt;br /&gt;
&lt;br /&gt;
In order to use this framework, a designer will have to provide:&lt;br /&gt;
* Functional specification - what are the possible interactions between the user and the application. This can be thought of as method signatures, with a name (e.g., setVolume), direction (to user or from user) and a list of value types (boolean, number, text, video, ...) for each interaction.&lt;br /&gt;
* GUI specification - a mapping of interactions to interface elements (e.g., setVolume is mapped to the grey knob in the bottom left corner with clockwise turning increasing the input number).&lt;br /&gt;
* Functional user traces - sequences of representative ways in which the application is used. Instead of writing them, the designer could have users use the application with a trial interface and then use our methods to generalize the user traces beyond the specific interface (The second method is depicted in the diagram). As a form of pre-processing, the system also generates an interaction transition matrix which lists the probability of each type of interaction given the previous interaction.&lt;br /&gt;
* Utility function - this is a weighting of various performance metrics (time, cognitive load, fatigue, etc.), where the weighting expresses the importance of a particular dimension to the user. For example, a user at NASA probably cares more about interface accuracy than speed. By passing this information to our committee of experts, we can create interfaces that are tuned to maximize the utility of a particular user type.&lt;br /&gt;
&lt;br /&gt;
Each of the modules can use all of this information or a subset of it. Our approach stresses flexibility and the ability to give more meaningful feedback the more information is provided. After processing the information sent by the system of experts, the aggregator will output:&lt;br /&gt;
* An evaluation of the interface. Evaluations are expressed both in terms of the utility function components (i.e. time, fatigue, cognitive load, etc.), and in terms of the overall utility for this interface (as defined by the utility function). These evaluations are given in the form of an efficiency curve, where the utility received on each dimension can change as the user becomes more accustomed to the interface. &lt;br /&gt;
* Suggested improvements for the GUI are also output. These suggestions are meant to optimize the utility function that was input to the system. If a user values accuracy over time, interface suggestions will be made accordingly.&lt;br /&gt;
&lt;br /&gt;
== Recording User-Interaction Primitives ==&lt;br /&gt;
* Owner: [[User:Trevor O&#039;Brien | Trevor O&#039;Brien]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aims&#039;&#039;&#039;&lt;br /&gt;
* Develop system for logging low-level user-interactions within existing applications.  By low-level interactions, we refer to those interactions for which a quantitative, predictive, GOMS-like model may be generated.&lt;br /&gt;
* At the same scale of granularity, integrate explicit interface-interactions with multimodal-sensing data.  i.e. pupil-tracking, muscle-activity monitoring, auditory recognition, EEG data, and facial and posture-focused video. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Contributions&#039;&#039;&#039;&lt;br /&gt;
* Extensible, multimodal, HCI framework for recording rich interaction-history data in existing applications.  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Significance&#039;&#039;&#039;&lt;br /&gt;
* Provide rich history data to serve as the basis for novel quantitative interface evaluation.&lt;br /&gt;
* Aid expert HCI and visual designers in traditional design processes.&lt;br /&gt;
* Provide data for automated machine-learning strategies applied to interaction.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Background and Related Work&#039;&#039;&#039;&lt;br /&gt;
* The utility of interaction histories with respect to assessing interface design has been demonstrated in &amp;lt;ref name = bob&amp;gt; [http://www.cs.brown.edu/people/trevor/Papers/Heer-2008-GraphicalHistories.pdf Graphical Histories for Visualization: Supporting Analysis, Communication, and Evaluation] (InfoVis 2008) &amp;lt;/ref&amp;gt;.&lt;br /&gt;
* In addition, data management histories have been shown effective in the visualization community in &amp;lt;ref&amp;gt; [http://www.cs.brown.edu/people/trevor/Papers/Callahan-2006-MED.pdf Callahan-2006-MED] &amp;lt;/ref&amp;gt;  &amp;lt;ref&amp;gt; [http://www.cs.brown.edu/people/trevor/Papers/Callahan-2006-VVM.pdf Callahan-2006-VVM] &amp;lt;/ref&amp;gt; &amp;lt;ref&amp;gt; [http://www.cs.brown.edu/people/trevor/Papers/Bavoil-2005-VEI.pdf Bavoil-2005-VEI]&amp;lt;/ref&amp;gt;, providing visualizations by analogy &amp;lt;ref&amp;gt; [http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&amp;amp;arnumber=4376187&amp;amp;isnumber=4376125 Querying and Creating Visualizations by Analogy] &amp;lt;/ref&amp;gt; and offering automated suggestions &amp;lt;ref&amp;gt; [http://www.cs.utah.edu/~juliana/pub/tvcg-recommendation2008.pdf VisComplete: Automating Suggestions from Visualization Pipelines] &amp;lt;/ref&amp;gt;, which we expect to generalize to user interaction history.&lt;br /&gt;
&lt;br /&gt;
== Semantic-level Interaction Chunking ==&lt;br /&gt;
* Owner: [[User:Trevor O&#039;Brien | Trevor O&#039;Brien]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aims&#039;&#039;&#039;&lt;br /&gt;
* Develop techniques for &#039;&#039;chunking&#039;&#039; low-level interaction primitives into &#039;&#039;semantic-level&#039;&#039; interactions, given an application&#039;s functionality and data-context.  (And de-chunking? Invertible mapping needed?)&lt;br /&gt;
* Perform user-study evaluation to validate chunking methods.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Contributions&#039;&#039;&#039;&lt;br /&gt;
* Design and user-study evaluation of semantic chunking techniques.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Significance&#039;&#039;&#039;&lt;br /&gt;
* Low-level &amp;lt;--&amp;gt; semantic-level mapping allows for cognitive-modeling to be applied at a functionality level, where low-level interaction techniques can be swapped out.  This will allow our interface assessment system to make feasible suggestions for more optimal interface design.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Background and Related Work&#039;&#039;&#039;&lt;br /&gt;
* Chunking interactions has been studied in the HCI community as in &amp;lt;ref name = bob/&amp;gt; [http://www.cs.brown.edu/people/trevor/Papers/Heer-2008-GraphicalHistories.pdf Graphical Histories for Visualization: Supporting Analysis, Communication, and Evaluation] (InfoVis 2008).&lt;br /&gt;
&lt;br /&gt;
== Parallel Framework for Evaluation Modules ==&lt;br /&gt;
* Owner: [[User:Adam Darlow | Adam Darlow]], [[User:Eric Sodomka | Eric Sodomka]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This section will describe in more detail the inputs, outputs and architecture that were presented in the introduction.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Module Inputs (Incomplete) ====&lt;br /&gt;
* A set of utility dimensions {d1, d2, ...} are defined in the framework. These could be {d1=&amp;quot;time&amp;quot;, d2=&amp;quot;fatigue&amp;quot;, ...}&lt;br /&gt;
* A set of interaction functions. These specify all of the information that the application wants to give users or get from them. It is not tied to a specific interface. For example, the fact that an applications shows videos would be included here. Whether it displays them embedded, in a pop-up window or fullscreen would not.&lt;br /&gt;
* A mapping of interaction functions to interface elements (e.g., buttons, windows, dials,...). Lots of optional information describing visual properties, associated text, physical interactions (e.g., turning the dial clockwise increases the input value) and timing.&lt;br /&gt;
* Functional user traces - sequences of interaction functions that represent typical user interactions with the application. Could include a goal hierarchy, in which case the function sequence is at the bottom of the hierarchy.&lt;br /&gt;
&lt;br /&gt;
==== Module Outputs ====&lt;br /&gt;
* Every module ouputs at least one of the following:&lt;br /&gt;
** An evaluation of the interface&lt;br /&gt;
*** This can be on any or all of the utility dimensions, e.g. evaluation={d1=score1, d2=score2, ...}&lt;br /&gt;
*** This can alternately be an overall evaluation, ignoring dimensions, e.g. evaluation={score}&lt;br /&gt;
**** In this case, the aggregator will treat this as the module giving the same score to all dimensions. Which dimension this evaluator actually predicts well on can be learned by the aggregator over time.&lt;br /&gt;
** Recommendation(s) for improving the interface&lt;br /&gt;
***This can be a textual description of what changes the designer should make&lt;br /&gt;
***This can alternately be a transformation that can automatically be applied to the interface language (without designer intervention)&lt;br /&gt;
***In addition to the textual or transformational description of the recommendation, a &amp;quot;change in evaluation&amp;quot; is output to describe how specifically the value will improve the interface&lt;br /&gt;
****Recommendation = {description=&amp;quot;make this change&amp;quot;, Δevaluation={d1=score1, d2=score2, ...}&lt;br /&gt;
****Like before, this Δevaluation can cover any number of dimensions, or it can be generic.&lt;br /&gt;
***Either a single recommendation or a set of recommendations can be output&lt;br /&gt;
&lt;br /&gt;
==== Aggregator Inputs ====&lt;br /&gt;
The aggregator receives as input the outputs of all the modules.&lt;br /&gt;
&lt;br /&gt;
==== Aggregator Outputs ====&lt;br /&gt;
&lt;br /&gt;
Outputs for the aggregator are the same as the outputs for each module. The difference is that the aggregator will consider all the module outputs, and arrive at a merged output based on the past performance of each of the modules.&lt;br /&gt;
&lt;br /&gt;
== Evaluation and Recommendation via Modules ==&lt;br /&gt;
* Owner: [[User:E J Kalafarski | E J Kalafarski]]&lt;br /&gt;
&lt;br /&gt;
A &amp;quot;meta-module&amp;quot; called the aggregator will be responsible for assembling and formatting the output of all other modules into a structure that is both extensible and immediately usable, by both an automated designer or a human designer.&lt;br /&gt;
&lt;br /&gt;
===Requirements===&lt;br /&gt;
The aggregator&#039;s functionality, then, is defined by its &#039;&#039;&#039;inputs&#039;&#039;&#039;, the outputs of the other modules, and the desired &#039;&#039;&#039;output&#039;&#039;&#039; of the system as a whole, per its position in the architecture.  Its purpose is largely formatting and reconciliation of the products of the multitudinous (and extensible) modules.  The output of the aggregator must meet several requirements: first, to generate a set of human-readable suggestions for the improvement of the given interface; second, to generate a machine-readable, but also analyzable, evaluation of the various characteristics of the interface and accompanying user traces.&lt;br /&gt;
&lt;br /&gt;
From these specifications, it is logical to assume that a common language or format will be required for the output of individual modules.  We propose an XML-based file format, allowing: (1) a section for the standardized identification of problem areas, applicable rules, and proposed improvements, generalized by the individual module and mapped to a single element, or group of elements, in the original interface specification; (2) a section for specification of generalizable &amp;quot;utility&amp;quot; functions, allowing a module to specify how much a measurable quantity of utility is positively or negatively affected by properties of the input interface; (3) new, user-definable sections for evaluations of the given interface not covered by the first two sections.  The first two sections are capable of conveying the vast majority of module outputs predicted at this time, but the XML can extensibly allow modules to pass on whatever information may become prominent in the future.&lt;br /&gt;
&lt;br /&gt;
===Specification===&lt;br /&gt;
 &amp;lt;module id=&amp;quot;Fitts-Law&amp;quot;&amp;gt;&lt;br /&gt;
 	&amp;lt;interface-elements&amp;gt;&lt;br /&gt;
 		&amp;lt;element&amp;gt;&lt;br /&gt;
 			&amp;lt;desc&amp;gt;submit button&amp;lt;/desc&amp;gt;&lt;br /&gt;
 			&amp;lt;problem&amp;gt;&lt;br /&gt;
 				&amp;lt;desc&amp;gt;size&amp;lt;/desc&amp;gt;&lt;br /&gt;
 				&amp;lt;suggestion&amp;gt;width *= 2&amp;lt;/suggestion&amp;gt;&lt;br /&gt;
 				&amp;lt;suggetsion&amp;gt;height *= 2&amp;lt;/suggestions&amp;gt;&lt;br /&gt;
 				&amp;lt;human-suggestion&amp;gt;Increase size relative to other elements&amp;lt;/human-suggestion&amp;gt;&lt;br /&gt;
 			&amp;lt;/problem&amp;gt;&lt;br /&gt;
 		&amp;lt;/element&amp;gt;&lt;br /&gt;
 	&amp;lt;/interface-elements&amp;gt;&lt;br /&gt;
 	&amp;lt;utility&amp;gt;&lt;br /&gt;
 		&amp;lt;dimension&amp;gt;&lt;br /&gt;
 			&amp;lt;desc&amp;gt;time&amp;lt;/desc&amp;gt;&lt;br /&gt;
 			&amp;lt;value&amp;gt;0:15:35&amp;lt;/value&amp;gt;&lt;br /&gt;
 		&amp;lt;/dimension&amp;gt;&lt;br /&gt;
 		&amp;lt;dimension&amp;gt;&lt;br /&gt;
 			&amp;lt;desc&amp;gt;frustration&amp;lt;/desc&amp;gt;&lt;br /&gt;
 			&amp;lt;value&amp;gt;pulling hair out&amp;lt;/value&amp;gt;&lt;br /&gt;
 		&amp;lt;/dimension&amp;gt;&lt;br /&gt;
 		&amp;lt;dimension&amp;gt;&lt;br /&gt;
 			&amp;lt;desc&amp;gt;efficiency&amp;lt;/desc&amp;gt;&lt;br /&gt;
 			&amp;lt;value&amp;gt;13.2s/KPM task&amp;lt;/value&amp;gt;&lt;br /&gt;
 			&amp;lt;value&amp;gt;0.56m/CPM task&amp;lt;/value&amp;gt;&lt;br /&gt;
 		&amp;lt;/dimension&amp;gt;&lt;br /&gt;
 	&amp;lt;/utility&amp;gt;&lt;br /&gt;
 	&amp;lt;tasks&amp;gt;&lt;br /&gt;
 		&amp;lt;task&amp;gt;&lt;br /&gt;
 			&amp;lt;desc&amp;gt;complete form&amp;lt;/desc&amp;gt;&lt;br /&gt;
 		&amp;lt;/task&amp;gt;&lt;br /&gt;
 		&amp;lt;task&amp;gt;&lt;br /&gt;
 			&amp;lt;desc&amp;gt;lookup SSN&amp;lt;/desc&amp;gt;&lt;br /&gt;
 		&amp;lt;/task&amp;gt;&lt;br /&gt;
 		&amp;lt;task&amp;gt;&lt;br /&gt;
 			&amp;lt;desc&amp;gt;format phone number&amp;lt;/desc&amp;gt;&lt;br /&gt;
 		&amp;lt;/task&amp;gt;&lt;br /&gt;
 	&amp;lt;/tasks&amp;gt;&lt;br /&gt;
 &amp;lt;/module&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Logic===&lt;br /&gt;
This file provided by each module is then the input for the aggregator.  The aggregator&#039;s most straightforward function is the compilation of the &amp;quot;problem areas,&amp;quot; assembling them and noting problem areas and suggestions that are recommended by more than one module, and weighting them accordingly in its final report.  These weightings can begin in an equal state, but the aggregator should be capable of learning iteratively which modules&#039; results are most relevant to the user and update weightings accordingly.  This may need to be accomplished with manual tuning, or a machine-learning algorithm capable of determining which modules most often agree with others.&lt;br /&gt;
&lt;br /&gt;
Secondly, the aggregator compiles the utility functions provided by the module specs.  This, again, is a summation of similarly-described values from the various modules.&lt;br /&gt;
&lt;br /&gt;
When confronted with user-defined sections of the XML spec, the aggregator is primarily responsible for compiling them and sending them along to the output of the machine.  Even if the aggregator does not recognize a section or property of the evaluative spec, if it sees the property reported by more than one module it should be capable of aggregating these intelligently.  In future versions of the spec, it should be possible for a module to provide instructions for the aggregator on how to handle unrecognized sections of the XML.&lt;br /&gt;
&lt;br /&gt;
From these compilations, then, the aggregator should be capable of outputting both aggregated human-readable suggestions on interface improvements for a human designer, as well as a comprehensive evaluation of the interface&#039;s effectiveness at the given task traces.  Again, this is dependent on the specification of the system as a whole, but is likely to include measures and comparisons, graphings of task versus utility, and quantitative measures of an element&#039;s effectiveness.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This section is necessarily defined by the output of the individual modules (which I already expect to be of varied and arbitrary structure) and the desired output of the machine as a whole.  It will likely need to be revised heavily after other modules and the &amp;quot;Parellel Framework&amp;quot; section are defined.&#039;&#039; [[User:E J Kalafarski|E J Kalafarski]] 12:34, 24 April 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This section describes the aggregator, which takes the output of multiple independent modules and aggregates the results to provide (1) an evaluation and (2) recommendations for the user interface. We should explain how the aggregator weights the output of different modules (this could be based on historical performance of each module, or perhaps based on E.J.&#039;s cognitive/HCI guidelines).&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Sample Modules ==&lt;br /&gt;
&lt;br /&gt;
=== CPM-GOMS ===&lt;br /&gt;
* Owners: [[User:Steven Ellis | Steven Ellis]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This module will provide interface evaluations and suggestions based on a CPM-GOMS model of cognition for the given interface. It will provide a quantitative, predictive, cognition-based parameterization of usability. From empirically collected data, user trajectories through the model (critical paths) will be examined, highlighting bottlenecks within the interface, and offering suggested alterations to the interface to induce more optimal user trajectories.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
I’m hoping to have some input on this section, because it seems to be the crux of the “black box” into which we take the inputs of interface description, user traces, etc. and get our outputs (time, recommendations, etc.).  I know at least a few people have pretty strong thoughts on the matter and we ought to discuss the final structure.&lt;br /&gt;
&lt;br /&gt;
That said – my proposal for the module:&lt;br /&gt;
*In my opinion the concept of the Model Human Processor (at least as applied in CPM) is outdated – it’s too economic/overly parsimonious in its conception of human activity.  I think we need to create a structure which accounts for more realistic conditions of HCI including multitasking, aspects of distributed cognition (and other relevant uses of tools – as far as I can tell CPM doesn’t take into account any sort of productivity aids), executive control processes of attention, etc.  ACT-R appears to take steps towards this but we would probably need to look at their algorithms to know for sure.&lt;br /&gt;
*Critical paths will continue to play an important role – we should in fact emphasize that part of this tool’s purpose will be a description not only of ways in which the interface should be modified to best fit a critical path, but also ways in which the user’s ought to be instructed in their use of the path.  This feedback mechanism could be bidirectional – if the model’s predictions of the user’s goals are incorrect, the critical path determined will also be incorrect and the interface inherently suboptimal.  The user could be prompted with a tooltip explaining in brief why and how the interface has changed, along with options to revert, select other configurations (euphemized by goals), and to view a short video detailing how to properly use the interface.&lt;br /&gt;
*Call me crazy but, if we assume designers will be willing to code a model of their interfaces into our ACT-R-esque language, could we allow that model to be fairly transparent to the user, who could use a gui to input their goals to find an analogue in the program which would subsequently rearrange its interface to fit the user’s needs?  Even if not useful to the users, such dynamic modeling could really help designers (IMO)&lt;br /&gt;
*I think the model should do its best to accept models written for ACT-R and whatever other cognitive models there are out there – gives us the best chance of early adoption&lt;br /&gt;
*I would particularly appreciate input on the number/complexity/type of inputs we’ll be using, as well as the same qualities for the output.&lt;br /&gt;
&lt;br /&gt;
=== HCI Guidelines ===&lt;br /&gt;
* Owner: [[User:E J Kalafarski | E J Kalafarski]]&lt;br /&gt;
&lt;br /&gt;
Schneiderman&#039;s Eight Golden Rules and Jakob Nielsen&#039;s Ten Heuristics are perhaps the most famous and well-regarded heuristic design guidelines to emerge over the last twenty years.  Although the explicit theoretical basis for such heuristics is controversial and not well-explored, the empirical success of these guidelines is established and accepted.  This module will parse out up to three or four common (that is, intersecting) principles from these accepted guidelines and apply them to the input interface.&lt;br /&gt;
&lt;br /&gt;
As an example, we identify an analogous principle that appears in Schneiderman (&amp;quot;Reduce short-term memory load&amp;quot;)&amp;lt;ref&amp;gt;http://faculty.washington.edu/jtenenbg/courses/360/f04/sessions/schneidermanGoldenRules.html&amp;lt;/ref&amp;gt; and Nielsen (&amp;quot;Recognition rather than recall/Minimize the user&#039;s memory load&amp;quot;)&amp;lt;ref&amp;gt;http://www.useit.com/papers/heuristic/heuristic_list.html&amp;lt;/ref&amp;gt;.  The input interface is then evaluated for the consideration of the principle, based on an explicit formal description of the interface, such as XAML or XUL.  The module attempts to determine how effectively the interface demonstrates the principle.  When analyzing an interface for several principles that may be conflicting or opposing in a given context, the module makes use of a hard-coded but iterative (and evolving) weighting of these principles, based on (1) how often they appear in the training set of accepted sets of guidelines, (2) how analogues a heuristic principle is to a cognitive principle in a parallel training set, and (3) how effective the principle&#039;s associated suggestion is found to be using a feedback mechanism.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inputs&#039;&#039;&#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
# A formal description of the interface and its elements (e.g. buttons).&lt;br /&gt;
# A formal description of a particular task and the possible paths through a subset of interface elements that permit the user to accomplish that task.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Output&#039;&#039;&#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
Standard XML-formatted file containing problem areas of the input interface, suggestions for each problem area based on principles that were found to have a strong application to a problem element and the problem itself, and a human-readable generated analysis of the element&#039;s affinity for the principle.  Quantitative outputs will not be possible based on heuristic guidelines, and the &amp;quot;utility&amp;quot; section of this module&#039;s output is likely to be blank.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This section could include an example or two of established design guidelines that could easily be implemented as modules.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Fitts&#039;s Law ===&lt;br /&gt;
* Owner: [[User:Jon Ericson | Jon Ericson]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This module provides an estimate of the required time to complete various tasks that have been decomposed into formalized sequences of interactions with interface elements, and will provide evaluations and recommendations for optimizing the time required to complete those tasks using the interface.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1. A formal description of the interface and its elements (e.g. buttons).&lt;br /&gt;
&lt;br /&gt;
2. A formal description of a particular task and the possible paths through a subset of interface elements that permit the user to accomplish that task.&lt;br /&gt;
&lt;br /&gt;
3. The physical distances between interface elements along those paths.&lt;br /&gt;
&lt;br /&gt;
4. The width of those elements along the most likely axes of motion.&lt;br /&gt;
&lt;br /&gt;
5. Device (e.g. mouse) characteristics including start/stop time and the inherent speed limitations of the device.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Output&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The module will then use the Shannon formulation of Fitt&#039;s Law to compute the average time needed to complete the task along those paths.&lt;br /&gt;
&lt;br /&gt;
=== Affordances ===&lt;br /&gt;
* Owner: [[User:Jon Ericson | Jon Ericson]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This simple module will provide interface evaluations and recommendations based on a measure of the extent to which the user perceives the relevant affordances of the interface when performing a number of specified tasks.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inputs&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Formalized descriptions of...&lt;br /&gt;
&lt;br /&gt;
1. Interface elements&lt;br /&gt;
&lt;br /&gt;
2. Their associated actions&lt;br /&gt;
&lt;br /&gt;
3. The functions of those actions&lt;br /&gt;
&lt;br /&gt;
4. A particular task&lt;br /&gt;
&lt;br /&gt;
5. User traces for that task.  &lt;br /&gt;
&lt;br /&gt;
Inputs (1-4) are then used to generate a &amp;quot;user-independent&amp;quot; space of possible functions that the interface is capable of performing with respect to a given task -- what the interface &amp;quot;affords&amp;quot; the user.  From this set of possible interactions, our model will then determine the subset of optimal paths for performing a particular task.  The user trace (5) is then used to determine what functions actually were performed in the course of a given task of interest and this information is then compared to the optimal path data to determine the extent to which affordances of the interface are present but not perceived.  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Output&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The output of this module is a simple ratio of (affordances perceived) / [(relevant affordances present) * (time to complete task)] which provides a quantitative measure of the extent to which the interface is &amp;quot;natural&amp;quot; to use for a particular task.&lt;br /&gt;
&lt;br /&gt;
=== Workflow, Multi-tasking and Interruptions ===&lt;br /&gt;
* Owner: [[User:Andrew Bragdon | Andrew Bragdon]]&lt;br /&gt;
&lt;br /&gt;
There are, at least, two levels at which users work ([http://portal.acm.org/citation.cfm?id=985692.985707&amp;amp;coll=portal&amp;amp;dl=ACM&amp;amp;CFID=20781736&amp;amp;CFTOKEN=83176621 Gonzales, et al., 2004]).  Users accomplish individual low-level tasks which are part of larger &#039;&#039;working spheres&#039;&#039;; for example, an office worker might send several emails, create several Post-It (TM) note reminders, and then edit a word document, each of these smaller tasks being part of a single larger working sphere of &amp;quot;adding a new section to the website.&amp;quot;  Thus, it is important to understand this larger workflow context - which often involves extensive levels of multi-tasking, as well as switching between a variety of computing devices and traditional tools, such as notebooks.  In this study it was found that the information workers surveyed typically switch individual tasks every 2 minutes and have many simultaneous working spheres which they switch between, on average every 12 minutes.  This frenzied pace of switching tasks and switching working spheres suggests that users will not be using a single application or device for a long period of time, and that affordances to support this characteristic pattern of information work are important.&lt;br /&gt;
&lt;br /&gt;
The purpose of this module is to integrate existing work on multi-tasking, interruption and higher-level workflow into a framework which can predict user recovery times from interruptions.  Specifically, the goals of this framework will be to:&lt;br /&gt;
&lt;br /&gt;
* Understand the role of the larger workflow context in user interfaces&lt;br /&gt;
* Understand the impact of interruptions on user workflow&lt;br /&gt;
* Understand how to design software which fits into the larger working spheres in which information work takes place&lt;br /&gt;
&lt;br /&gt;
It is important to point out that because workflow and multi-tasking rely heavily on higher-level brain functioning, it is unrealistic within the scope of this grant to propose a system which can predict user performance given a description of a set of arbitrary software programs.  Therefore, we believe this module will function much more in a qualitative role to provide context to the rest of the model.  Specifically, our findings related to interruption and multi-tasking will advance the basic research question of &amp;quot;how do you users react to interruptions when using working sets of varying sizes?&amp;quot;.  This core HCI contribution will help to inform the rest of the outputs of the model in a qualitative manner.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
N/A&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Outputs&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
N/A&lt;br /&gt;
&lt;br /&gt;
=== Working Memory Load ===&lt;br /&gt;
* Owner: [[User:Gideon Goldin | Gideon Goldin]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This module measures how much information the user needs to retain in memory while interacting with the interface and makes suggestions for improvements.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Models&lt;br /&gt;
** Beddeley&#039;s Model of Working Memory&amp;lt;ref&amp;gt;http://en.wikipedia.org/wiki/Baddeley%27s_model_of_working_memory&amp;lt;/ref&amp;gt;&lt;br /&gt;
*** Episodic Buffer&lt;br /&gt;
** George Miller&#039;s &amp;quot;The magic number 7 plus or minus 2&amp;quot;&amp;lt;ref&amp;gt;http://en.wikipedia.org/wiki/The_Magical_Number_Seven,_Plus_or_Minus_Two&amp;lt;/ref&amp;gt;&lt;br /&gt;
** The magic number 4&amp;lt;ref&amp;gt;Cowan, N. (2001). The magical number 4 in short-term memory: A reconsideration of mental storage capacity. Behavioral and Brain Sciences, 24, 87-185.&amp;lt;/ref&amp;gt;&lt;br /&gt;
* Chunking&amp;lt;ref&amp;gt;http://en.wikipedia.org/wiki/Chunking_(psychology)&amp;lt;/ref&amp;gt;&lt;br /&gt;
* Priming&amp;lt;ref&amp;gt;http://en.wikipedia.org/wiki/Priming_(psychology)&amp;lt;/ref&amp;gt;&lt;br /&gt;
* Subitizing and Counting&amp;lt;ref&amp;gt;http://en.wikipedia.org/wiki/Subitizing&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
* Visual Stimuli&lt;br /&gt;
* Audio Stimuli&lt;br /&gt;
&#039;&#039;&#039;Outputs&#039;&#039;&#039;&lt;br /&gt;
* Remembered percepts&lt;br /&gt;
* Half-Life of percepts&lt;br /&gt;
&lt;br /&gt;
=== Automaticity of Interaction ===&lt;br /&gt;
* Owner: [[User:Gideon Goldin | Gideon Goldin]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Measures how easily the interaction with the interface becomes automatic with experience and makes suggestions for improvements.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Learning&amp;lt;ref&amp;gt;http://en.wikipedia.org/wiki/Learning#Mathematical_models_of_learning&amp;lt;/ref&amp;gt;&lt;br /&gt;
** Logan&#039;s instance theory of automatization&amp;lt;ref&amp;gt;http://74.125.95.132/search?q=cache:IZ-Zccsu3SEJ:psych.wisc.edu/ugstudies/psych733/logan_1988.pdf+logan+isntance+teory&amp;amp;cd=1&amp;amp;hl=en&amp;amp;ct=clnk&amp;amp;gl=us&amp;amp;client=firefox-a&amp;lt;/ref&amp;gt;&lt;br /&gt;
* Fluency&lt;br /&gt;
** As meta-cognitive information &amp;lt;ref&amp;gt;http://www.sciencedirect.com/science?_ob=ArticleURL&amp;amp;_udi=B6VH9-4SM7PFK-4&amp;amp;_user=10&amp;amp;_rdoc=1&amp;amp;_fmt=&amp;amp;_orig=search&amp;amp;_sort=d&amp;amp;view=c&amp;amp;_acct=C000050221&amp;amp;_version=1&amp;amp;_urlVersion=0&amp;amp;_userid=10&amp;amp;md5=10cd279fa80958981fcc3c06684c09af&amp;lt;/ref&amp;gt;&lt;br /&gt;
** As a cognitive &#039;&#039;heuristic&#039;&#039;&amp;lt;ref&amp;gt;http://en.wikipedia.org/wiki/Fluency_heuristic&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
* Interface&lt;br /&gt;
* User goals&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Outputs&#039;&#039;&#039;&lt;br /&gt;
* Learning curve&lt;br /&gt;
&lt;br /&gt;
== Integration into the Design Process ==&lt;br /&gt;
* Owner: [[User:Ian Spector | Ian Spector]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This section outlines the process of designing an HCI interface and at what stages our proposal fits in and how.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Preliminary Results =&lt;br /&gt;
&lt;br /&gt;
===Workflow, Multi-tasking, and Interruption===&lt;br /&gt;
&lt;br /&gt;
====I.  &#039;&#039;&#039;Goals&#039;&#039;&#039;====&lt;br /&gt;
&lt;br /&gt;
The goals of the preliminary work are to gain qualitative insight into how information workers practice metawork, and to determine whether people might be better-supported with software which facillitates metawork and interruptions.  Thus, the preliminary work should investigate, and demonstrate, the need and impact of the core goals of the project.&lt;br /&gt;
&lt;br /&gt;
====II.  &#039;&#039;&#039;Methodology&#039;&#039;&#039;====&lt;br /&gt;
&lt;br /&gt;
Seven information workers, ages 20-38 (5 male, 2 female), were interviewed to determine which methods they use to &amp;quot;stay organized&amp;quot;.  An initial list of metawork strategies was established from two pilot interviews, and then a final list was compiled.  Participants then responded to a series of 17 questions designed to gain insight into their metawork strategies and process.  In addition, verbal interviews were conducted to get additional open-ended feedback.&lt;br /&gt;
&lt;br /&gt;
====III.  &#039;&#039;&#039;Final Results&#039;&#039;&#039;====&lt;br /&gt;
A histogram of methods people use to &amp;quot;stay organized&amp;quot; in terms of tracking things they need to do (TODOs), appointments and meetings, etc. is shown in the figure below.&lt;br /&gt;
&lt;br /&gt;
[[Image:AcbGraph.jpg]]&lt;br /&gt;
&lt;br /&gt;
In addition to these methods, participants also used a number of other methods, including:&lt;br /&gt;
&lt;br /&gt;
* iCal&lt;br /&gt;
* Notes written in xterms&lt;br /&gt;
* &amp;quot;Inbox zero&amp;quot; method of email organization&lt;br /&gt;
* iGoogle Notepad (for tasks)&lt;br /&gt;
* Tag emails as &amp;quot;TODO&amp;quot;, &amp;quot;Important&amp;quot;, etc.&lt;br /&gt;
* Things (Organizer Software)&lt;br /&gt;
* Physical items placed to &amp;quot;remind me of things&amp;quot;&lt;br /&gt;
* Sometimes arranging windows on desk&lt;br /&gt;
* Keeping browser tabs open&lt;br /&gt;
* Bookmarking web pages&lt;br /&gt;
* Keep programs/files open scrolled to certain locations sometimes with things selected&lt;br /&gt;
&lt;br /&gt;
In addition, three participants said that when interrupted they &amp;quot;rarely&amp;quot; or &amp;quot;very rarely&amp;quot; were able to resume the task they were working on prior to the interruption.  Three of the participants said that they would not actively recommend their metawork strategies for other people, and two said that staying organized was &amp;quot;difficult&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Four participants were neutral to the idea of new tools to help them stay organized and three said that they would like to have such a tool/tools.&lt;br /&gt;
&lt;br /&gt;
====IV.  &#039;&#039;&#039;Discussion&#039;&#039;&#039;====&lt;br /&gt;
These results qunatiatively support our hypothesis that there is no clearly dominant set of metawork strategies employed by information workers.  This highly fragemented landscape is surprising, even though most information workers work in a similar environment - at a desk, on the phone, in meetings - and with the same types of tools - computers, pens, paper, etc.  We believe that this suggests that there are complex tradeoffs between these methods and that no single method is sufficient.  We therefore believe that users will be better supported with a new set of software-based metawork tools.&lt;br /&gt;
&lt;br /&gt;
= [Criticisms] =&lt;br /&gt;
* Owner: [[User:Andrew Bragdon | Andrew Bragdon]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Any criticisms or questions we have regarding the proposal can go here.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=References=&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Trevor O&#039;Brien</name></author>
	</entry>
	<entry>
		<id>http://vrl.cs.brown.edu/wiki/index.php?title=CS295J/Research_proposal_(draft_2)&amp;diff=3171</id>
		<title>CS295J/Research proposal (draft 2)</title>
		<link rel="alternate" type="text/html" href="http://vrl.cs.brown.edu/wiki/index.php?title=CS295J/Research_proposal_(draft_2)&amp;diff=3171"/>
		<updated>2009-04-24T16:59:02Z</updated>

		<summary type="html">&lt;p&gt;Trevor O&amp;#039;Brien: /* Recording User-Interaction Primitives */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
* Owners: [[User:Adam Darlow | Adam Darlow]], [[User:Eric Sodomka | Eric Sodomka]], [[User: Trevor O&#039;Brien | Trevor]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Propose:&#039;&#039;&#039; The design, application and evaluation of a novel, cognition-based, computational framework for assessing interface design and providing automated suggestions to optimize usability.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Evaluation Methodology:&#039;&#039;&#039;  Our techniques will be evaluated quantitatively through a series of user-study trials, as well as qualitatively by a team of expert interface designers. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Contributions and Significance:&#039;&#039;&#039;  We expect this work to make the following contributions:  &lt;br /&gt;
# design-space analysis and quantitative evaluation of cognition-based techniques for assessing user interfaces.  &lt;br /&gt;
# design and quantitative evaluation of techniques for suggesting optimized interface-design changes. &lt;br /&gt;
# an extensible, multimodal software architecture for capturing user traces integrated with pupil-tracking data, auditory recognition, and muscle-activity monitoring.  &lt;br /&gt;
# specification (language?) of how to define an interface evaluation module and how to integrate it into a larger system.  &lt;br /&gt;
# (there may be more here, like testing different cognitive models, generating a markup language to represent interfaces, maybe even a unique metric space for interface usability)&lt;br /&gt;
&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
We propose a framework for interface evaluation and recommendation that integrates behavioral models and design guidelines from both cognitive science and HCI. Our framework behaves like a committee of specialized experts, where each expert provides its own assessment of the interface, given its particular knowledge of HCI or cognitive science. For example, an expert may provide an evaluation based on the GOMS method, Fitts&#039;s law, Maeda&#039;s design principles, or cognitive models of learning and memory. An aggregator collects all of these assessments and weights the opinions of each expert, and outputs to the developer a merged evaluation score and a weighted set of recommendations.&lt;br /&gt;
&lt;br /&gt;
Systematic methods of estimating human performance with computer interfaces are used only sparsely despite their obvious benefits, the reason being the overhead involved in implementing them. In order to test an interface, both manual coding systems like the GOMS variations and user simulations like those based on ACT-R/PM and EPIC require detailed pseudo-code descriptions of the user workflow with the application interface. Any change to the interface then requires extensive changes to the pseudo-code, a major problem because of the trial-and-error nature of interface design. Updating the models themselves is even more complicated. Even an expert in CPM-GOMS, for example, can&#039;t necessarily adapt it to take into account results from new cognitive research.&lt;br /&gt;
&lt;br /&gt;
Our proposal makes automatic interface evaluation easier to use in several ways. First of all, we propose to divide the input to the system into three separate parts, functionality, user traces and interface. By separating the functionality from the interface, even radical interface changes will require updating only that part of the input. The user traces are also defined over the functionality so that they too translate across different interfaces. Second, the parallel modular architecture allows for a lower &amp;quot;entry cost&amp;quot; for using the tool. The system includes a broad array of evaluation modules some of which are very simple and some more complex. The simpler modules use only a subset of the input that a system like GOMS or ACT-R would require. This means that while more input will still lead to better output, interface designers can get minimal evaluations with only minimal information. For example, a visual search module may not require any functionality or user traces in order to determine whether all interface elements are distinct enough to be easy to find. Finally, a parallel modular architecture is much easier to augment with relevant cognitive and design evaluations.&lt;br /&gt;
&lt;br /&gt;
= Background / Related Work =&lt;br /&gt;
&lt;br /&gt;
Each person should add the background related to their specific aims.&lt;br /&gt;
&lt;br /&gt;
* Steven Ellis - Cognitive models of HCI, including GOMS variations and ACT-R&lt;br /&gt;
* EJ - Design Guidelines&lt;br /&gt;
* Jon - Perception and Action&lt;br /&gt;
* Andrew - Multiple task environments&lt;br /&gt;
* Gideon - Cognition and dual systems&lt;br /&gt;
* Ian - Interface design process&lt;br /&gt;
* Trevor - User trace collection methods (especially any eye-tracking, EEG, ... you want to suggest using)&lt;br /&gt;
&lt;br /&gt;
== Cognitive Models ==&lt;br /&gt;
I plan to port over most of the background on cognitive models of HCI from the old proposal&lt;br /&gt;
&lt;br /&gt;
Additions will comprise of:&lt;br /&gt;
*CPM-GOMS as a bridge from GOMS architecture to the promising procedural optimization of the Model Human Processor&lt;br /&gt;
**Context of CPM development, discuss its relation to original GOMS and KLM&lt;br /&gt;
***Establish the tasks which were relevant for optimization when CPM was developed and note that its obsolescence may have been unavoidable&lt;br /&gt;
**Focus on CPM as the first step in transitioning from descriptive data, provided by mounting efforts in the cognitive sciences realm to discover the nature of task processing and accomplishment, to prescriptive algorithms which can predict an interface’s efficiency and suggest improvements&lt;br /&gt;
**CPM’s purpose as an abstraction of cognitive processing – a symbolic representation not designed for accuracy but precision&lt;br /&gt;
**CPM’s successful trials, e.g. Ernestine&lt;br /&gt;
***Implications of this project include CPM’s ability to accurately estimate processing at a psychomotor level&lt;br /&gt;
***Project does suggest limitations, however, when one attempts to examine more complex tasks which involve deeper and more numerous cognitive processes&lt;br /&gt;
*ACT-R as an example of a progressive cognitive modeling tool&lt;br /&gt;
**A tool clearly built by and for cognitive scientists, and as a result presents a much more accurate view of human processing – helpful for our research&lt;br /&gt;
**Built-in automation, which now seems to be a standard feature of cognitive modeling tools&lt;br /&gt;
**Still an abstraction of cognitive processing, but makes adaptation to cutting-edge cognitive research findings an integral aspect of its modular structure&lt;br /&gt;
**Expand on its focus on multi-tasking, taking what was a huge advance between GOMS and its CPM variation and bringing the simulation several steps closer to approximating the nature of cognition in regards to HCI&lt;br /&gt;
**Far more accessible both for researchers and the lay user/designer in its portability to LISP, pre-construction of modules representing cognitive capacities and underlying algorithms modeling paths of cognitive processing&lt;br /&gt;
&lt;br /&gt;
==Design guidelines==&lt;br /&gt;
A multitude of rule sets exist for the design of not only interface, but architecture, city planning, and software development.  They can range in scale from one primary rule to as many Christopher Alexander&#039;s 253 rules for urban environments,&amp;lt;ref&amp;gt;[http://hci.rwth-aachen.de/materials/publications/borchers2000a.pdf Borchers, Jan O.  &amp;quot;A Pattern Approach to Interaction Design.&amp;quot;  2000.]&amp;lt;/ref&amp;gt; which he introduced with the concept design patterns in the 1970s.  Study has likewise been conducted on the use of these rules:&amp;lt;ref&amp;gt;http://stl.cs.queensu.ca/~graham/cisc836/lectures/readings/tetzlaff-guidelines.pdf&amp;lt;/ref&amp;gt; guidelines are often only partially understood, indistinct to the developer, and &amp;quot;fraught&amp;quot; with potential usability problems given a real-world situation.&lt;br /&gt;
&lt;br /&gt;
===Application to AUE===&lt;br /&gt;
And yet, the vast majority of guideline sets, including the most popular rulesets, have been arrived at heuristically.  The most successful, such as Raskin&#039;s and Schneiderman&#039;s, have been forged from years of observation instead of empirical study and experimentation.  The problem is similar to the problem of circular logic faced by automated usability evaluations: an automated system is limited in the suggestions it can offer to a set of preprogrammed guidelines which have often not been subjected to rigorous experimentation.&amp;lt;ref&amp;gt;[http://www.eecs.berkeley.edu/Pubs/TechRpts/2000/CSD-00-1105.pdf Ivory, M and Hearst, M.  &amp;quot;The State of the Art in Automated Usability Evaluation of User Interfaces.&amp;quot; ACM Computing Surveys (CSUR), 2001.]&amp;lt;/ref&amp;gt;  In the vast majority of existing studies, emphasis has traditionally been placed on either the development of guidelines or the application of existing guidelines to automated evaluation.  A mutually-reinforcing development of both simultaneously has not been attempted.&lt;br /&gt;
&lt;br /&gt;
Overlap between rulesets is inevitable and unavoidable.  For our purposes of evaluating existing rulesets efficiently, without extracting and analyzing each rule individually, it may be desirable to identify the the overarching &#039;&#039;principles&#039;&#039; or &#039;&#039;philosophy&#039;&#039; (max. 2 or 3) for a given ruleset and determining their quantitative relevance to problems of cognition.&lt;br /&gt;
&lt;br /&gt;
===Popular and seminal examples===&lt;br /&gt;
Schneiderman&#039;s [http://faculty.washington.edu/jtenenbg/courses/360/f04/sessions/schneidermanGoldenRules.html Eight Golden Rules] date to 1987 and are arguably the most-cited.  They are heuristic, but can be somewhat classified by cognitive objective: at least two rules apply primarily to &#039;&#039;repeated use&#039;&#039;, versus &#039;&#039;discoverability&#039;&#039;.  Up to five of Schneiderman&#039;s rules emphasize &#039;&#039;predictability&#039;&#039; in the outcomes of operations and &#039;&#039;increased feedback and control&#039;&#039; in the agency of the user.  His final rule, paradoxically, removes control from the user by suggesting a reduced short-term memory load, which we can arguably classify as &#039;&#039;simplicity&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Raskin&#039;s [http://www.mprove.de/script/02/raskin/designrules.html Design Rules] are classified into five principles by the author, augmented by definitions and supporting rules.  While one principle is primarily aesthetic (a design problem arguably out of the bounds of this proposal) and one is a basic endorsement of testing, the remaining three begin to reflect philosophies similar to Schneiderman&#039;s: reliability or &#039;&#039;predictability&#039;&#039;, &#039;&#039;simplicity&#039;&#039; or &#039;&#039;efficiency&#039;&#039; (which we can construe as two sides of the same coin), and finally he introduces a concept of &#039;&#039;uninterruptibility&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Maeda&#039;s [http://lawsofsimplicity.com/?cat=5&amp;amp;order=ASC Laws of Simplicity] are fewer, and ostensibly emphasize &#039;&#039;simplicity&#039;&#039; exclusively, although elements of &#039;&#039;use&#039;&#039; as related by Schneiderman&#039;s rules and &#039;&#039;efficiency&#039;&#039; as defined by Raskin may be facets of this simplicity.  Google&#039;s corporate mission statement presents [http://www.google.com/corporate/ux.html Ten Principles], only half of which can be considered true interface guidelines.  &#039;&#039;Efficiency&#039;&#039; and &#039;&#039;simplicity&#039;&#039; are cited explicitly, aesthetics are once again noted as crucial, and working within a user&#039;s trust is another application of &#039;&#039;predictability&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
===Elements and goals of a guideline set===&lt;br /&gt;
Myriad rulesets exist, but variation becomes scarce—it indeed seems possible to parse these common rulesets into overarching principles that can be converted to or associated with quantifiable cognitive properties.  For example, it is likely &#039;&#039;simplicity&#039;&#039; has an analogue in the short-term memory retention or visual retention of the user, vis a vis the rule of [http://books.google.com/books?hl=en&amp;amp;lr=&amp;amp;id=j5q0VvOGExYC&amp;amp;oi=fnd&amp;amp;pg=PA357&amp;amp;dq=seven+plus+or+minus+two&amp;amp;ots=prI3PKJBar&amp;amp;sig=vOZnqpnkXKGYWxK6_XlA4I_CRyI Seven, Plus or Minus Two].  &#039;&#039;Predictability&#039;&#039; likewise may have an analogue in Activity Theory, in regards to a user&#039;s perceptual expectations for a given action; &#039;&#039;uninterruptibility&#039;&#039; has implications in cognitive task-switching;&amp;lt;ref&amp;gt;[http://portal.acm.org/citation.cfm?id=985692.985715&amp;amp;coll=Portal&amp;amp;dl=ACM&amp;amp;CFID=21136843&amp;amp;CFTOKEN=23841774 Czerwinski, Horvitz, and White. &amp;quot;A Diary Study of Task Switching and Interruptions.&amp;quot;  Proceedings of the SIGCHI conference on Human factors in computing systems, 2004.]&amp;lt;/ref&amp;gt; and so forth.&lt;br /&gt;
&lt;br /&gt;
Within the scope of this proposal, we aim to reduce and refine these philosophies found in seminal rulesets and identify their logical cognitive analogues.  By assigning a quantifiable taxonomy to these principles, we will be able to rank and weight them with regard to their real-world applicability, developing a set of &amp;quot;meta-guidelines&amp;quot; and rules for applying them to a given interface in an automated manner.  Combined with cognitive models and multi-modal HCI analysis, we seek to develop, in parallel with these guidelines, the interface evaluation system responsible for their application.&lt;br /&gt;
&lt;br /&gt;
== Perception and Action (in progress) ==&lt;br /&gt;
&lt;br /&gt;
*Information Processing Approach&lt;br /&gt;
**Advantages&lt;br /&gt;
***Formalism eases translation of theory into scripting language&lt;br /&gt;
**Disadvantages&lt;br /&gt;
***Assumes symbolic representation&lt;br /&gt;
&lt;br /&gt;
*Ecological (Gibsonian) Approach&lt;br /&gt;
**Advantages&lt;br /&gt;
***Emphasis on bodily and environmental constraints&lt;br /&gt;
**Disadvantages&lt;br /&gt;
***Lack of formalism hinders translation of theory into scripting language&lt;br /&gt;
&lt;br /&gt;
= Specific Aims and Contributions (to be separated later) =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Specific Aims&#039;&#039;&#039;&lt;br /&gt;
* Incorporate interaction history mechanisms into a set of existing applications.&lt;br /&gt;
* Perform user-study evaluation of history-collection techniques.&lt;br /&gt;
* Distill a set of cognitive principles/models, and evaluate empirically?&lt;br /&gt;
* Build/buy sensing system to include pupil-tracking, muscle-activity monitoring, auditory recognition.&lt;br /&gt;
* Design techniques for manual/semi-automated/automated construction of &amp;lt;insert favorite cognitive model here&amp;gt; from interaction histories and sensing data.&lt;br /&gt;
* Design system for posterior analysis of interaction history w.r.t. &amp;lt;insert favorite cognitive model here&amp;gt;, evaluating critical path &amp;lt;or equivalent&amp;gt; trajectories.&lt;br /&gt;
* Design cognition-based techniques for detecting bottlenecks in critical paths, and offering optimized alternatives. &lt;br /&gt;
* Perform quantitative user-study evaluations, collect qualitative feedback from expert interface designers.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Contributions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Design-space analysis and quantitative evaluation of cognition-based techniques for assessing user interfaces. &lt;br /&gt;
* Design and quantitative evaluation of techniques for suggesting optimized interface-design changes. &lt;br /&gt;
* An extensible, multimodal software architecture for capturing user traces integrated with pupil-tracking data, auditory recognition, and muscle-activity monitoring. &lt;br /&gt;
* (there may be more here, like testing different cognitive models, generating a markup language to represent interfaces, maybe even a unique metric space for interface usability) &lt;br /&gt;
&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
See the [http://vrl.cs.brown.edu/wiki/images/b/b1/Flowchart2.pdf flowchart] for a visual overview of our aims.&lt;br /&gt;
&lt;br /&gt;
In order to use this framework, a designer will have to provide:&lt;br /&gt;
* Functional specification - what are the possible interactions between the user and the application. This can be thought of as method signatures, with a name (e.g., setVolume), direction (to user or from user) and a list of value types (boolean, number, text, video, ...) for each interaction.&lt;br /&gt;
* GUI specification - a mapping of interactions to interface elements (e.g., setVolume is mapped to the grey knob in the bottom left corner with clockwise turning increasing the input number).&lt;br /&gt;
* Functional user traces - sequences of representative ways in which the application is used. Instead of writing them, the designer could have users use the application with a trial interface and then use our methods to generalize the user traces beyond the specific interface (The second method is depicted in the diagram). As a form of pre-processing, the system also generates an interaction transition matrix which lists the probability of each type of interaction given the previous interaction.&lt;br /&gt;
* Utility function - this is a weighting of various performance metrics (time, cognitive load, fatigue, etc.), where the weighting expresses the importance of a particular dimension to the user. For example, a user at NASA probably cares more about interface accuracy than speed. By passing this information to our committee of experts, we can create interfaces that are tuned to maximize the utility of a particular user type.&lt;br /&gt;
&lt;br /&gt;
Each of the modules can use all of this information or a subset of it. Our approach stresses flexibility and the ability to give more meaningful feedback the more information is provided. After processing the information sent by the system of experts, the aggregator will output:&lt;br /&gt;
* An evaluation of the interface. Evaluations are expressed both in terms of the utility function components (i.e. time, fatigue, cognitive load, etc.), and in terms of the overall utility for this interface (as defined by the utility function). These evaluations are given in the form of an efficiency curve, where the utility received on each dimension can change as the user becomes more accustomed to the interface. &lt;br /&gt;
* Suggested improvements for the GUI are also output. These suggestions are meant to optimize the utility function that was input to the system. If a user values accuracy over time, interface suggestions will be made accordingly.&lt;br /&gt;
&lt;br /&gt;
== Recording User-Interaction Primitives ==&lt;br /&gt;
* Owner: [[User:Trevor O&#039;Brien | Trevor O&#039;Brien]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aims&#039;&#039;&#039;&lt;br /&gt;
* Develop system for logging low-level user-interactions within existing applications.  By low-level interactions, we refer to those interactions for which a quantitative, predictive, GOMS-like model may be generated.&lt;br /&gt;
* At the same scale of granularity, integrate explicit interface-interactions with multimodal-sensing data.  i.e. pupil-tracking, muscle-activity monitoring, auditory recognition, EEG data, and facial and posture-focused video. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Contributions&#039;&#039;&#039;&lt;br /&gt;
* Extensible, multimodal, HCI framework for recording rich interaction-history data in existing applications.  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Significance&#039;&#039;&#039;&lt;br /&gt;
* Provide rich history data to serve as the basis for novel quantitative interface evaluation.&lt;br /&gt;
* Aid expert HCI and visual designers in traditional design processes.&lt;br /&gt;
* Provide data for automated machine-learning strategies applied to interaction.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Background and Related Work&#039;&#039;&#039;&lt;br /&gt;
* The utility of interaction histories with respect to assessing interface design has been demonstrated in &amp;lt;ref name = bob&amp;gt; [http://www.cs.brown.edu/people/trevor/Papers/Heer-2008-GraphicalHistories.pdf Graphical Histories for Visualization: Supporting Analysis, Communication, and Evaluation] (InfoVis 2008) &amp;lt;/ref&amp;gt;.&lt;br /&gt;
* In addition, data management histories have been shown effective in the visualization community in &amp;lt;ref&amp;gt; [http://www.cs.brown.edu/people/trevor/Papers/Callahan-2006-MED.pdf Callahan-2006-MED] &amp;lt;/ref&amp;gt;  &amp;lt;ref&amp;gt; [http://www.cs.brown.edu/people/trevor/Papers/Callahan-2006-VVM.pdf Callahan-2006-VVM] &amp;lt;/ref&amp;gt; &amp;lt;ref&amp;gt; [http://www.cs.brown.edu/people/trevor/Papers/Bavoil-2005-VEI.pdf Bavoil-2005-VEI]&amp;lt;/ref&amp;gt;, providing visualizations by analogy &amp;lt;ref&amp;gt; [http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&amp;amp;arnumber=4376187&amp;amp;isnumber=4376125 Querying and Creating Visualizations by Analogy] &amp;lt;/ref&amp;gt; and offering automated suggestions &amp;lt;ref&amp;gt; [http://www.cs.utah.edu/~juliana/pub/tvcg-recommendation2008.pdf VisComplete: Automating Suggestions from Visualization Pipelines] &amp;lt;/ref&amp;gt;, which we expect to generalize to user interaction history.&lt;br /&gt;
&lt;br /&gt;
== Semantic-level Interaction Chunking ==&lt;br /&gt;
* Owner: [[User:Trevor O&#039;Brien | Trevor O&#039;Brien]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aims&#039;&#039;&#039;&lt;br /&gt;
* Develop techniques for &#039;&#039;chunking&#039;&#039; low-level interaction primitives into &#039;&#039;semantic-level&#039;&#039; interactions, given an application&#039;s functionality and data-context.  (And de-chunking? Invertible mapping needed?)&lt;br /&gt;
* Perform user-study evaluation to validate chunking methods.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Contributions&#039;&#039;&#039;&lt;br /&gt;
* Design and user-study evaluation of semantic chunking techniques.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Significance&#039;&#039;&#039;&lt;br /&gt;
* Low-level &amp;lt;--&amp;gt; semantic-level mapping allows for cognitive-modeling to be applied at a functionality level, where low-level interaction techniques can be swapped out.  This will allow our interface assessment system to make feasible suggestions for more optimal interface design.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Background and Related Work&#039;&#039;&#039;&lt;br /&gt;
* Chunking interactions has been studied in the HCI community as in &amp;lt;ref&amp;gt; [http://www.cs.brown.edu/people/trevor/Papers/Heer-2008-GraphicalHistories.pdf Graphical Histories for Visualization: Supporting Analysis, Communication, and Evaluation] (InfoVis 2008) &amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Parallel Framework for Evaluation Modules ==&lt;br /&gt;
* Owner: [[User:Adam Darlow | Adam Darlow]], [[User:Eric Sodomka | Eric Sodomka]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This section will describe in more detail the inputs, outputs and architecture that were presented in the introduction.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Module Inputs (Incomplete) ====&lt;br /&gt;
* A set of utility dimensions {d1, d2, ...} are defined in the framework. These could be {d1=&amp;quot;time&amp;quot;, d2=&amp;quot;fatigue&amp;quot;, ...}&lt;br /&gt;
* A set of interaction functions. These specify all of the information that the application wants to give users or get from them. It is not tied to a specific interface. For example, the fact that an applications shows videos would be included here. Whether it displays them embedded, in a pop-up window or fullscreen would not.&lt;br /&gt;
* A mapping of interaction functions to interface elements (e.g., buttons, windows, dials,...). Lots of optional information describing visual properties, associated text, physical interactions (e.g., turning the dial clockwise increases the input value) and timing.&lt;br /&gt;
* Functional user traces - sequences of interaction functions that represent typical user interactions with the application. Could include a goal hierarchy, in which case the function sequence is at the bottom of the hierarchy.&lt;br /&gt;
&lt;br /&gt;
==== Module Outputs ====&lt;br /&gt;
* Every module ouputs at least one of the following:&lt;br /&gt;
** An evaluation of the interface&lt;br /&gt;
*** This can be on any or all of the utility dimensions, e.g. evaluation={d1=score1, d2=score2, ...}&lt;br /&gt;
*** This can alternately be an overall evaluation, ignoring dimensions, e.g. evaluation={score}&lt;br /&gt;
**** In this case, the aggregator will treat this as the module giving the same score to all dimensions. Which dimension this evaluator actually predicts well on can be learned by the aggregator over time.&lt;br /&gt;
** Recommendation(s) for improving the interface&lt;br /&gt;
***This can be a textual description of what changes the designer should make&lt;br /&gt;
***This can alternately be a transformation that can automatically be applied to the interface language (without designer intervention)&lt;br /&gt;
***In addition to the textual or transformational description of the recommendation, a &amp;quot;change in evaluation&amp;quot; is output to describe how specifically the value will improve the interface&lt;br /&gt;
****Recommendation = {description=&amp;quot;make this change&amp;quot;, Δevaluation={d1=score1, d2=score2, ...}&lt;br /&gt;
****Like before, this Δevaluation can cover any number of dimensions, or it can be generic.&lt;br /&gt;
***Either a single recommendation or a set of recommendations can be output&lt;br /&gt;
&lt;br /&gt;
==== Aggregator Inputs ====&lt;br /&gt;
The aggregator receives as input the outputs of all the modules.&lt;br /&gt;
&lt;br /&gt;
==== Aggregator Outputs ====&lt;br /&gt;
&lt;br /&gt;
Outputs for the aggregator are the same as the outputs for each module. The difference is that the aggregator will consider all the module outputs, and arrive at a merged output based on the past performance of each of the modules.&lt;br /&gt;
&lt;br /&gt;
== Evaluation and Recommendation via Modules ==&lt;br /&gt;
* Owner: [[User:E J Kalafarski | E J Kalafarski]]&lt;br /&gt;
&lt;br /&gt;
A &amp;quot;meta-module&amp;quot; called the aggregator will be responsible for assembling and formatting the output of all other modules into a structure that is both extensible and immediately usable, by both an automated designer or a human designer.&lt;br /&gt;
&lt;br /&gt;
===Requirements===&lt;br /&gt;
The aggregator&#039;s functionality, then, is defined by its &#039;&#039;&#039;inputs&#039;&#039;&#039;, the outputs of the other modules, and the desired &#039;&#039;&#039;output&#039;&#039;&#039; of the system as a whole, per its position in the architecture.  Its purpose is largely formatting and reconciliation of the products of the multitudinous (and extensible) modules.  The output of the aggregator must meet several requirements: first, to generate a set of human-readable suggestions for the improvement of the given interface; second, to generate a machine-readable, but also analyzable, evaluation of the various characteristics of the interface and accompanying user traces.&lt;br /&gt;
&lt;br /&gt;
From these specifications, it is logical to assume that a common language or format will be required for the output of individual modules.  We propose an XML-based file format, allowing: (1) a section for the standardized identification of problem areas, applicable rules, and proposed improvements, generalized by the individual module and mapped to a single element, or group of elements, in the original interface specification; (2) a section for specification of generalizable &amp;quot;utility&amp;quot; functions, allowing a module to specify how much a measurable quantity of utility is positively or negatively affected by properties of the input interface; (3) new, user-definable sections for evaluations of the given interface not covered by the first two sections.  The first two sections are capable of conveying the vast majority of module outputs predicted at this time, but the XML can extensibly allow modules to pass on whatever information may become prominent in the future.&lt;br /&gt;
&lt;br /&gt;
===Specification===&lt;br /&gt;
 &amp;lt;module id=&amp;quot;Fitts-Law&amp;quot;&amp;gt;&lt;br /&gt;
 	&amp;lt;interface-elements&amp;gt;&lt;br /&gt;
 		&amp;lt;element&amp;gt;&lt;br /&gt;
 			&amp;lt;desc&amp;gt;submit button&amp;lt;/desc&amp;gt;&lt;br /&gt;
 			&amp;lt;problem&amp;gt;&lt;br /&gt;
 				&amp;lt;desc&amp;gt;size&amp;lt;/desc&amp;gt;&lt;br /&gt;
 				&amp;lt;suggestion&amp;gt;width *= 2&amp;lt;/suggestion&amp;gt;&lt;br /&gt;
 				&amp;lt;suggetsion&amp;gt;height *= 2&amp;lt;/suggestions&amp;gt;&lt;br /&gt;
 				&amp;lt;human-suggestion&amp;gt;Increase size relative to other elements&amp;lt;/human-suggestion&amp;gt;&lt;br /&gt;
 			&amp;lt;/problem&amp;gt;&lt;br /&gt;
 		&amp;lt;/element&amp;gt;&lt;br /&gt;
 	&amp;lt;/interface-elements&amp;gt;&lt;br /&gt;
 	&amp;lt;utility&amp;gt;&lt;br /&gt;
 		&amp;lt;dimension&amp;gt;&lt;br /&gt;
 			&amp;lt;desc&amp;gt;time&amp;lt;/desc&amp;gt;&lt;br /&gt;
 			&amp;lt;value&amp;gt;0:15:35&amp;lt;/value&amp;gt;&lt;br /&gt;
 		&amp;lt;/dimension&amp;gt;&lt;br /&gt;
 		&amp;lt;dimension&amp;gt;&lt;br /&gt;
 			&amp;lt;desc&amp;gt;frustration&amp;lt;/desc&amp;gt;&lt;br /&gt;
 			&amp;lt;value&amp;gt;pulling hair out&amp;lt;/value&amp;gt;&lt;br /&gt;
 		&amp;lt;/dimension&amp;gt;&lt;br /&gt;
 		&amp;lt;dimension&amp;gt;&lt;br /&gt;
 			&amp;lt;desc&amp;gt;efficiency&amp;lt;/desc&amp;gt;&lt;br /&gt;
 			&amp;lt;value&amp;gt;13.2s/KPM task&amp;lt;/value&amp;gt;&lt;br /&gt;
 			&amp;lt;value&amp;gt;0.56m/CPM task&amp;lt;/value&amp;gt;&lt;br /&gt;
 		&amp;lt;/dimension&amp;gt;&lt;br /&gt;
 	&amp;lt;/utility&amp;gt;&lt;br /&gt;
 	&amp;lt;tasks&amp;gt;&lt;br /&gt;
 		&amp;lt;task&amp;gt;&lt;br /&gt;
 			&amp;lt;desc&amp;gt;complete form&amp;lt;/desc&amp;gt;&lt;br /&gt;
 		&amp;lt;/task&amp;gt;&lt;br /&gt;
 		&amp;lt;task&amp;gt;&lt;br /&gt;
 			&amp;lt;desc&amp;gt;lookup SSN&amp;lt;/desc&amp;gt;&lt;br /&gt;
 		&amp;lt;/task&amp;gt;&lt;br /&gt;
 		&amp;lt;task&amp;gt;&lt;br /&gt;
 			&amp;lt;desc&amp;gt;format phone number&amp;lt;/desc&amp;gt;&lt;br /&gt;
 		&amp;lt;/task&amp;gt;&lt;br /&gt;
 	&amp;lt;/tasks&amp;gt;&lt;br /&gt;
 &amp;lt;/module&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Logic===&lt;br /&gt;
This file provided by each module is then the input for the aggregator.  The aggregator&#039;s most straightforward function is the compilation of the &amp;quot;problem areas,&amp;quot; assembling them and noting problem areas and suggestions that are recommended by more than one module, and weighting them accordingly in its final report.  These weightings can begin in an equal state, but the aggregator should be capable of learning iteratively which modules&#039; results are most relevant to the user and update weightings accordingly.  This may need to be accomplished with manual tuning, or a machine-learning algorithm capable of determining which modules most often agree with others.&lt;br /&gt;
&lt;br /&gt;
Secondly, the aggregator compiles the utility functions provided by the module specs.  This, again, is a summation of similarly-described values from the various modules.&lt;br /&gt;
&lt;br /&gt;
When confronted with user-defined sections of the XML spec, the aggregator is primarily responsible for compiling them and sending them along to the output of the machine.  Even if the aggregator does not recognize a section or property of the evaluative spec, if it sees the property reported by more than one module it should be capable of aggregating these intelligently.  In future versions of the spec, it should be possible for a module to provide instructions for the aggregator on how to handle unrecognized sections of the XML.&lt;br /&gt;
&lt;br /&gt;
From these compilations, then, the aggregator should be capable of outputting both aggregated human-readable suggestions on interface improvements for a human designer, as well as a comprehensive evaluation of the interface&#039;s effectiveness at the given task traces.  Again, this is dependent on the specification of the system as a whole, but is likely to include measures and comparisons, graphings of task versus utility, and quantitative measures of an element&#039;s effectiveness.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This section is necessarily defined by the output of the individual modules (which I already expect to be of varied and arbitrary structure) and the desired output of the machine as a whole.  It will likely need to be revised heavily after other modules and the &amp;quot;Parellel Framework&amp;quot; section are defined.&#039;&#039; [[User:E J Kalafarski|E J Kalafarski]] 12:34, 24 April 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This section describes the aggregator, which takes the output of multiple independent modules and aggregates the results to provide (1) an evaluation and (2) recommendations for the user interface. We should explain how the aggregator weights the output of different modules (this could be based on historical performance of each module, or perhaps based on E.J.&#039;s cognitive/HCI guidelines).&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Sample Modules ==&lt;br /&gt;
&lt;br /&gt;
=== CPM-GOMS ===&lt;br /&gt;
* Owners: [[User:Steven Ellis | Steven Ellis]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This module will provide interface evaluations and suggestions based on a CPM-GOMS model of cognition for the given interface. It will provide a quantitative, predictive, cognition-based parameterization of usability. From empirically collected data, user trajectories through the model (critical paths) will be examined, highlighting bottlenecks within the interface, and offering suggested alterations to the interface to induce more optimal user trajectories.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
I’m hoping to have some input on this section, because it seems to be the crux of the “black box” into which we take the inputs of interface description, user traces, etc. and get our outputs (time, recommendations, etc.).  I know at least a few people have pretty strong thoughts on the matter and we ought to discuss the final structure.&lt;br /&gt;
&lt;br /&gt;
That said – my proposal for the module:&lt;br /&gt;
*In my opinion the concept of the Model Human Processor (at least as applied in CPM) is outdated – it’s too economic/overly parsimonious in its conception of human activity.  I think we need to create a structure which accounts for more realistic conditions of HCI including multitasking, aspects of distributed cognition (and other relevant uses of tools – as far as I can tell CPM doesn’t take into account any sort of productivity aids), executive control processes of attention, etc.  ACT-R appears to take steps towards this but we would probably need to look at their algorithms to know for sure.&lt;br /&gt;
*Critical paths will continue to play an important role – we should in fact emphasize that part of this tool’s purpose will be a description not only of ways in which the interface should be modified to best fit a critical path, but also ways in which the user’s ought to be instructed in their use of the path.  This feedback mechanism could be bidirectional – if the model’s predictions of the user’s goals are incorrect, the critical path determined will also be incorrect and the interface inherently suboptimal.  The user could be prompted with a tooltip explaining in brief why and how the interface has changed, along with options to revert, select other configurations (euphemized by goals), and to view a short video detailing how to properly use the interface.&lt;br /&gt;
*Call me crazy but, if we assume designers will be willing to code a model of their interfaces into our ACT-R-esque language, could we allow that model to be fairly transparent to the user, who could use a gui to input their goals to find an analogue in the program which would subsequently rearrange its interface to fit the user’s needs?  Even if not useful to the users, such dynamic modeling could really help designers (IMO)&lt;br /&gt;
*I think the model should do its best to accept models written for ACT-R and whatever other cognitive models there are out there – gives us the best chance of early adoption&lt;br /&gt;
*I would particularly appreciate input on the number/complexity/type of inputs we’ll be using, as well as the same qualities for the output.&lt;br /&gt;
&lt;br /&gt;
=== HCI Guidelines ===&lt;br /&gt;
* Owner: [[User:E J Kalafarski | E J Kalafarski]]&lt;br /&gt;
&lt;br /&gt;
Schneiderman&#039;s Eight Golden Rules and Jakob Nielsen&#039;s Ten Heuristics are perhaps the most famous and well-regarded heuristic design guidelines to emerge over the last twenty years.  Although the explicit theoretical basis for such heuristics is controversial and not well-explored, the empirical success of these guidelines is established and accepted.  This module will parse out up to three or four common (that is, intersecting) principles from these accepted guidelines and apply them to the input interface.&lt;br /&gt;
&lt;br /&gt;
As an example, we identify an analogous principle that appears in Schneiderman (&amp;quot;Reduce short-term memory load&amp;quot;)&amp;lt;ref&amp;gt;http://faculty.washington.edu/jtenenbg/courses/360/f04/sessions/schneidermanGoldenRules.html&amp;lt;/ref&amp;gt; and Nielsen (&amp;quot;Recognition rather than recall/Minimize the user&#039;s memory load&amp;quot;)&amp;lt;ref&amp;gt;http://www.useit.com/papers/heuristic/heuristic_list.html&amp;lt;/ref&amp;gt;.  The input interface is then evaluated for the consideration of the principle, based on an explicit formal description of the interface, such as XAML or XUL.  The module attempts to determine how effectively the interface demonstrates the principle.  When analyzing an interface for several principles that may be conflicting or opposing in a given context, the module makes use of a hard-coded but iterative (and evolving) weighting of these principles, based on (1) how often they appear in the training set of accepted sets of guidelines, (2) how analogues a heuristic principle is to a cognitive principle in a parallel training set, and (3) how effective the principle&#039;s associated suggestion is found to be using a feedback mechanism.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inputs&#039;&#039;&#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
# A formal description of the interface and its elements (e.g. buttons).&lt;br /&gt;
# A formal description of a particular task and the possible paths through a subset of interface elements that permit the user to accomplish that task.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Output&#039;&#039;&#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
Standard XML-formatted file containing problem areas of the input interface, suggestions for each problem area based on principles that were found to have a strong application to a problem element and the problem itself, and a human-readable generated analysis of the element&#039;s affinity for the principle.  Quantitative outputs will not be possible based on heuristic guidelines, and the &amp;quot;utility&amp;quot; section of this module&#039;s output is likely to be blank.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This section could include an example or two of established design guidelines that could easily be implemented as modules.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Fitts&#039;s Law ===&lt;br /&gt;
* Owner: [[User:Jon Ericson | Jon Ericson]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This module provides an estimate of the required time to complete various tasks that have been decomposed into formalized sequences of interactions with interface elements, and will provide evaluations and recommendations for optimizing the time required to complete those tasks using the interface.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1. A formal description of the interface and its elements (e.g. buttons).&lt;br /&gt;
&lt;br /&gt;
2. A formal description of a particular task and the possible paths through a subset of interface elements that permit the user to accomplish that task.&lt;br /&gt;
&lt;br /&gt;
3. The physical distances between interface elements along those paths.&lt;br /&gt;
&lt;br /&gt;
4. The width of those elements along the most likely axes of motion.&lt;br /&gt;
&lt;br /&gt;
5. Device (e.g. mouse) characteristics including start/stop time and the inherent speed limitations of the device.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Output&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The module will then use the Shannon formulation of Fitt&#039;s Law to compute the average time needed to complete the task along those paths.&lt;br /&gt;
&lt;br /&gt;
=== Affordances ===&lt;br /&gt;
* Owner: [[User:Jon Ericson | Jon Ericson]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This simple module will provide interface evaluations and recommendations based on a measure of the extent to which the user perceives the relevant affordances of the interface when performing a number of specified tasks.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inputs&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Formalized descriptions of...&lt;br /&gt;
&lt;br /&gt;
1. Interface elements&lt;br /&gt;
&lt;br /&gt;
2. Their associated actions&lt;br /&gt;
&lt;br /&gt;
3. The functions of those actions&lt;br /&gt;
&lt;br /&gt;
4. A particular task&lt;br /&gt;
&lt;br /&gt;
5. User traces for that task.  &lt;br /&gt;
&lt;br /&gt;
Inputs (1-4) are then used to generate a &amp;quot;user-independent&amp;quot; space of possible functions that the interface is capable of performing with respect to a given task -- what the interface &amp;quot;affords&amp;quot; the user.  From this set of possible interactions, our model will then determine the subset of optimal paths for performing a particular task.  The user trace (5) is then used to determine what functions actually were performed in the course of a given task of interest and this information is then compared to the optimal path data to determine the extent to which affordances of the interface are present but not perceived.  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Output&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The output of this module is a simple ratio of (affordances perceived) / [(relevant affordances present) * (time to complete task)] which provides a quantitative measure of the extent to which the interface is &amp;quot;natural&amp;quot; to use for a particular task.&lt;br /&gt;
&lt;br /&gt;
=== Workflow, Multi-tasking and Interruptions ===&lt;br /&gt;
* Owner: [[User:Andrew Bragdon | Andrew Bragdon]]&lt;br /&gt;
&lt;br /&gt;
There are, at least, two levels at which users work ([http://portal.acm.org/citation.cfm?id=985692.985707&amp;amp;coll=portal&amp;amp;dl=ACM&amp;amp;CFID=20781736&amp;amp;CFTOKEN=83176621 Gonzales, et al., 2004]).  Users accomplish individual low-level tasks which are part of larger &#039;&#039;working spheres&#039;&#039;; for example, an office worker might send several emails, create several Post-It (TM) note reminders, and then edit a word document, each of these smaller tasks being part of a single larger working sphere of &amp;quot;adding a new section to the website.&amp;quot;  Thus, it is important to understand this larger workflow context - which often involves extensive levels of multi-tasking, as well as switching between a variety of computing devices and traditional tools, such as notebooks.  In this study it was found that the information workers surveyed typically switch individual tasks every 2 minutes and have many simultaneous working spheres which they switch between, on average every 12 minutes.  This frenzied pace of switching tasks and switching working spheres suggests that users will not be using a single application or device for a long period of time, and that affordances to support this characteristic pattern of information work are important.&lt;br /&gt;
&lt;br /&gt;
The purpose of this module is to integrate existing work on multi-tasking, interruption and higher-level workflow into a framework which can predict user recovery times from interruptions.  Specifically, the goals of this framework will be to:&lt;br /&gt;
&lt;br /&gt;
* Understand the role of the larger workflow context in user interfaces&lt;br /&gt;
* Understand the impact of interruptions on user workflow&lt;br /&gt;
* Understand how to design software which fits into the larger working spheres in which information work takes place&lt;br /&gt;
&lt;br /&gt;
It is important to point out that because workflow and multi-tasking rely heavily on higher-level brain functioning, it is unrealistic within the scope of this grant to propose a system which can predict user performance given a description of a set of arbitrary software programs.  Therefore, we believe this module will function much more in a qualitative role to provide context to the rest of the model.  Specifically, our findings related to interruption and multi-tasking will advance the basic research question of &amp;quot;how do you users react to interruptions when using working sets of varying sizes?&amp;quot;.  This core HCI contribution will help to inform the rest of the outputs of the model in a qualitative manner.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
N/A&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Outputs&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
N/A&lt;br /&gt;
&lt;br /&gt;
=== Working Memory Load ===&lt;br /&gt;
* Owner: [[User:Gideon Goldin | Gideon Goldin]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This module measures how much information the user needs to retain in memory while interacting with the interface and makes suggestions for improvements.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Models&lt;br /&gt;
** Beddeley&#039;s Model of Working Memory&amp;lt;ref&amp;gt;http://en.wikipedia.org/wiki/Baddeley%27s_model_of_working_memory&amp;lt;/ref&amp;gt;&lt;br /&gt;
*** Episodic Buffer&lt;br /&gt;
** George Miller&#039;s &amp;quot;The magic number 7 plus or minus 2&amp;quot;&amp;lt;ref&amp;gt;http://en.wikipedia.org/wiki/The_Magical_Number_Seven,_Plus_or_Minus_Two&amp;lt;/ref&amp;gt;&lt;br /&gt;
** The magic number 4&amp;lt;ref&amp;gt;Cowan, N. (2001). The magical number 4 in short-term memory: A reconsideration of mental storage capacity. Behavioral and Brain Sciences, 24, 87-185.&amp;lt;/ref&amp;gt;&lt;br /&gt;
* Chunking&amp;lt;ref&amp;gt;http://en.wikipedia.org/wiki/Chunking_(psychology)&amp;lt;/ref&amp;gt;&lt;br /&gt;
* Priming&amp;lt;ref&amp;gt;http://en.wikipedia.org/wiki/Priming_(psychology)&amp;lt;/ref&amp;gt;&lt;br /&gt;
* Subitizing and Counting&amp;lt;ref&amp;gt;http://en.wikipedia.org/wiki/Subitizing&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
* Visual Stimuli&lt;br /&gt;
* Audio Stimuli&lt;br /&gt;
&#039;&#039;&#039;Outputs&#039;&#039;&#039;&lt;br /&gt;
* Remembered percepts&lt;br /&gt;
* Half-Life of percepts&lt;br /&gt;
&lt;br /&gt;
=== Automaticity of Interaction ===&lt;br /&gt;
* Owner: [[User:Gideon Goldin | Gideon Goldin]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Measures how easily the interaction with the interface becomes automatic with experience and makes suggestions for improvements.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Learning&amp;lt;ref&amp;gt;http://en.wikipedia.org/wiki/Learning#Mathematical_models_of_learning&amp;lt;/ref&amp;gt;&lt;br /&gt;
** Logan&#039;s instance theory of automatization&amp;lt;ref&amp;gt;http://74.125.95.132/search?q=cache:IZ-Zccsu3SEJ:psych.wisc.edu/ugstudies/psych733/logan_1988.pdf+logan+isntance+teory&amp;amp;cd=1&amp;amp;hl=en&amp;amp;ct=clnk&amp;amp;gl=us&amp;amp;client=firefox-a&amp;lt;/ref&amp;gt;&lt;br /&gt;
* Fluency&lt;br /&gt;
** As meta-cognitive information &amp;lt;ref&amp;gt;http://www.sciencedirect.com/science?_ob=ArticleURL&amp;amp;_udi=B6VH9-4SM7PFK-4&amp;amp;_user=10&amp;amp;_rdoc=1&amp;amp;_fmt=&amp;amp;_orig=search&amp;amp;_sort=d&amp;amp;view=c&amp;amp;_acct=C000050221&amp;amp;_version=1&amp;amp;_urlVersion=0&amp;amp;_userid=10&amp;amp;md5=10cd279fa80958981fcc3c06684c09af&amp;lt;/ref&amp;gt;&lt;br /&gt;
** As a cognitive &#039;&#039;heuristic&#039;&#039;&amp;lt;ref&amp;gt;http://en.wikipedia.org/wiki/Fluency_heuristic&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
* Interface&lt;br /&gt;
* User goals&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Outputs&#039;&#039;&#039;&lt;br /&gt;
* Learning curve&lt;br /&gt;
&lt;br /&gt;
== Integration into the Design Process ==&lt;br /&gt;
* Owner: [[User:Ian Spector | Ian Spector]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This section outlines the process of designing an HCI interface and at what stages our proposal fits in and how.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Preliminary Results =&lt;br /&gt;
&lt;br /&gt;
===Workflow, Multi-tasking, and Interruption===&lt;br /&gt;
&lt;br /&gt;
====I.  &#039;&#039;&#039;Goals&#039;&#039;&#039;====&lt;br /&gt;
&lt;br /&gt;
The goals of the preliminary work are to gain qualitative insight into how information workers practice metawork, and to determine whether people might be better-supported with software which facillitates metawork and interruptions.  Thus, the preliminary work should investigate, and demonstrate, the need and impact of the core goals of the project.&lt;br /&gt;
&lt;br /&gt;
====II.  &#039;&#039;&#039;Methodology&#039;&#039;&#039;====&lt;br /&gt;
&lt;br /&gt;
Seven information workers, ages 20-38 (5 male, 2 female), were interviewed to determine which methods they use to &amp;quot;stay organized&amp;quot;.  An initial list of metawork strategies was established from two pilot interviews, and then a final list was compiled.  Participants then responded to a series of 17 questions designed to gain insight into their metawork strategies and process.  In addition, verbal interviews were conducted to get additional open-ended feedback.&lt;br /&gt;
&lt;br /&gt;
====III.  &#039;&#039;&#039;Final Results&#039;&#039;&#039;====&lt;br /&gt;
A histogram of methods people use to &amp;quot;stay organized&amp;quot; in terms of tracking things they need to do (TODOs), appointments and meetings, etc. is shown in the figure below.&lt;br /&gt;
&lt;br /&gt;
[[Image:AcbGraph.jpg]]&lt;br /&gt;
&lt;br /&gt;
In addition to these methods, participants also used a number of other methods, including:&lt;br /&gt;
&lt;br /&gt;
* iCal&lt;br /&gt;
* Notes written in xterms&lt;br /&gt;
* &amp;quot;Inbox zero&amp;quot; method of email organization&lt;br /&gt;
* iGoogle Notepad (for tasks)&lt;br /&gt;
* Tag emails as &amp;quot;TODO&amp;quot;, &amp;quot;Important&amp;quot;, etc.&lt;br /&gt;
* Things (Organizer Software)&lt;br /&gt;
* Physical items placed to &amp;quot;remind me of things&amp;quot;&lt;br /&gt;
* Sometimes arranging windows on desk&lt;br /&gt;
* Keeping browser tabs open&lt;br /&gt;
* Bookmarking web pages&lt;br /&gt;
* Keep programs/files open scrolled to certain locations sometimes with things selected&lt;br /&gt;
&lt;br /&gt;
In addition, three participants said that when interrupted they &amp;quot;rarely&amp;quot; or &amp;quot;very rarely&amp;quot; were able to resume the task they were working on prior to the interruption.  Three of the participants said that they would not actively recommend their metawork strategies for other people, and two said that staying organized was &amp;quot;difficult&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Four participants were neutral to the idea of new tools to help them stay organized and three said that they would like to have such a tool/tools.&lt;br /&gt;
&lt;br /&gt;
====IV.  &#039;&#039;&#039;Discussion&#039;&#039;&#039;====&lt;br /&gt;
These results qunatiatively support our hypothesis that there is no clearly dominant set of metawork strategies employed by information workers.  This highly fragemented landscape is surprising, even though most information workers work in a similar environment - at a desk, on the phone, in meetings - and with the same types of tools - computers, pens, paper, etc.  We believe that this suggests that there are complex tradeoffs between these methods and that no single method is sufficient.  We therefore believe that users will be better supported with a new set of software-based metawork tools.&lt;br /&gt;
&lt;br /&gt;
= [Criticisms] =&lt;br /&gt;
* Owner: [[User:Andrew Bragdon | Andrew Bragdon]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Any criticisms or questions we have regarding the proposal can go here.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=References=&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Trevor O&#039;Brien</name></author>
	</entry>
	<entry>
		<id>http://vrl.cs.brown.edu/wiki/index.php?title=CS295J/Research_proposal_(draft_2)&amp;diff=3170</id>
		<title>CS295J/Research proposal (draft 2)</title>
		<link rel="alternate" type="text/html" href="http://vrl.cs.brown.edu/wiki/index.php?title=CS295J/Research_proposal_(draft_2)&amp;diff=3170"/>
		<updated>2009-04-24T16:58:18Z</updated>

		<summary type="html">&lt;p&gt;Trevor O&amp;#039;Brien: /* Semantic-level Interaction Chunking */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
* Owners: [[User:Adam Darlow | Adam Darlow]], [[User:Eric Sodomka | Eric Sodomka]], [[User: Trevor O&#039;Brien | Trevor]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Propose:&#039;&#039;&#039; The design, application and evaluation of a novel, cognition-based, computational framework for assessing interface design and providing automated suggestions to optimize usability.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Evaluation Methodology:&#039;&#039;&#039;  Our techniques will be evaluated quantitatively through a series of user-study trials, as well as qualitatively by a team of expert interface designers. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Contributions and Significance:&#039;&#039;&#039;  We expect this work to make the following contributions:  &lt;br /&gt;
# design-space analysis and quantitative evaluation of cognition-based techniques for assessing user interfaces.  &lt;br /&gt;
# design and quantitative evaluation of techniques for suggesting optimized interface-design changes. &lt;br /&gt;
# an extensible, multimodal software architecture for capturing user traces integrated with pupil-tracking data, auditory recognition, and muscle-activity monitoring.  &lt;br /&gt;
# specification (language?) of how to define an interface evaluation module and how to integrate it into a larger system.  &lt;br /&gt;
# (there may be more here, like testing different cognitive models, generating a markup language to represent interfaces, maybe even a unique metric space for interface usability)&lt;br /&gt;
&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
We propose a framework for interface evaluation and recommendation that integrates behavioral models and design guidelines from both cognitive science and HCI. Our framework behaves like a committee of specialized experts, where each expert provides its own assessment of the interface, given its particular knowledge of HCI or cognitive science. For example, an expert may provide an evaluation based on the GOMS method, Fitts&#039;s law, Maeda&#039;s design principles, or cognitive models of learning and memory. An aggregator collects all of these assessments and weights the opinions of each expert, and outputs to the developer a merged evaluation score and a weighted set of recommendations.&lt;br /&gt;
&lt;br /&gt;
Systematic methods of estimating human performance with computer interfaces are used only sparsely despite their obvious benefits, the reason being the overhead involved in implementing them. In order to test an interface, both manual coding systems like the GOMS variations and user simulations like those based on ACT-R/PM and EPIC require detailed pseudo-code descriptions of the user workflow with the application interface. Any change to the interface then requires extensive changes to the pseudo-code, a major problem because of the trial-and-error nature of interface design. Updating the models themselves is even more complicated. Even an expert in CPM-GOMS, for example, can&#039;t necessarily adapt it to take into account results from new cognitive research.&lt;br /&gt;
&lt;br /&gt;
Our proposal makes automatic interface evaluation easier to use in several ways. First of all, we propose to divide the input to the system into three separate parts, functionality, user traces and interface. By separating the functionality from the interface, even radical interface changes will require updating only that part of the input. The user traces are also defined over the functionality so that they too translate across different interfaces. Second, the parallel modular architecture allows for a lower &amp;quot;entry cost&amp;quot; for using the tool. The system includes a broad array of evaluation modules some of which are very simple and some more complex. The simpler modules use only a subset of the input that a system like GOMS or ACT-R would require. This means that while more input will still lead to better output, interface designers can get minimal evaluations with only minimal information. For example, a visual search module may not require any functionality or user traces in order to determine whether all interface elements are distinct enough to be easy to find. Finally, a parallel modular architecture is much easier to augment with relevant cognitive and design evaluations.&lt;br /&gt;
&lt;br /&gt;
= Background / Related Work =&lt;br /&gt;
&lt;br /&gt;
Each person should add the background related to their specific aims.&lt;br /&gt;
&lt;br /&gt;
* Steven Ellis - Cognitive models of HCI, including GOMS variations and ACT-R&lt;br /&gt;
* EJ - Design Guidelines&lt;br /&gt;
* Jon - Perception and Action&lt;br /&gt;
* Andrew - Multiple task environments&lt;br /&gt;
* Gideon - Cognition and dual systems&lt;br /&gt;
* Ian - Interface design process&lt;br /&gt;
* Trevor - User trace collection methods (especially any eye-tracking, EEG, ... you want to suggest using)&lt;br /&gt;
&lt;br /&gt;
== Cognitive Models ==&lt;br /&gt;
I plan to port over most of the background on cognitive models of HCI from the old proposal&lt;br /&gt;
&lt;br /&gt;
Additions will comprise of:&lt;br /&gt;
*CPM-GOMS as a bridge from GOMS architecture to the promising procedural optimization of the Model Human Processor&lt;br /&gt;
**Context of CPM development, discuss its relation to original GOMS and KLM&lt;br /&gt;
***Establish the tasks which were relevant for optimization when CPM was developed and note that its obsolescence may have been unavoidable&lt;br /&gt;
**Focus on CPM as the first step in transitioning from descriptive data, provided by mounting efforts in the cognitive sciences realm to discover the nature of task processing and accomplishment, to prescriptive algorithms which can predict an interface’s efficiency and suggest improvements&lt;br /&gt;
**CPM’s purpose as an abstraction of cognitive processing – a symbolic representation not designed for accuracy but precision&lt;br /&gt;
**CPM’s successful trials, e.g. Ernestine&lt;br /&gt;
***Implications of this project include CPM’s ability to accurately estimate processing at a psychomotor level&lt;br /&gt;
***Project does suggest limitations, however, when one attempts to examine more complex tasks which involve deeper and more numerous cognitive processes&lt;br /&gt;
*ACT-R as an example of a progressive cognitive modeling tool&lt;br /&gt;
**A tool clearly built by and for cognitive scientists, and as a result presents a much more accurate view of human processing – helpful for our research&lt;br /&gt;
**Built-in automation, which now seems to be a standard feature of cognitive modeling tools&lt;br /&gt;
**Still an abstraction of cognitive processing, but makes adaptation to cutting-edge cognitive research findings an integral aspect of its modular structure&lt;br /&gt;
**Expand on its focus on multi-tasking, taking what was a huge advance between GOMS and its CPM variation and bringing the simulation several steps closer to approximating the nature of cognition in regards to HCI&lt;br /&gt;
**Far more accessible both for researchers and the lay user/designer in its portability to LISP, pre-construction of modules representing cognitive capacities and underlying algorithms modeling paths of cognitive processing&lt;br /&gt;
&lt;br /&gt;
==Design guidelines==&lt;br /&gt;
A multitude of rule sets exist for the design of not only interface, but architecture, city planning, and software development.  They can range in scale from one primary rule to as many Christopher Alexander&#039;s 253 rules for urban environments,&amp;lt;ref&amp;gt;[http://hci.rwth-aachen.de/materials/publications/borchers2000a.pdf Borchers, Jan O.  &amp;quot;A Pattern Approach to Interaction Design.&amp;quot;  2000.]&amp;lt;/ref&amp;gt; which he introduced with the concept design patterns in the 1970s.  Study has likewise been conducted on the use of these rules:&amp;lt;ref&amp;gt;http://stl.cs.queensu.ca/~graham/cisc836/lectures/readings/tetzlaff-guidelines.pdf&amp;lt;/ref&amp;gt; guidelines are often only partially understood, indistinct to the developer, and &amp;quot;fraught&amp;quot; with potential usability problems given a real-world situation.&lt;br /&gt;
&lt;br /&gt;
===Application to AUE===&lt;br /&gt;
And yet, the vast majority of guideline sets, including the most popular rulesets, have been arrived at heuristically.  The most successful, such as Raskin&#039;s and Schneiderman&#039;s, have been forged from years of observation instead of empirical study and experimentation.  The problem is similar to the problem of circular logic faced by automated usability evaluations: an automated system is limited in the suggestions it can offer to a set of preprogrammed guidelines which have often not been subjected to rigorous experimentation.&amp;lt;ref&amp;gt;[http://www.eecs.berkeley.edu/Pubs/TechRpts/2000/CSD-00-1105.pdf Ivory, M and Hearst, M.  &amp;quot;The State of the Art in Automated Usability Evaluation of User Interfaces.&amp;quot; ACM Computing Surveys (CSUR), 2001.]&amp;lt;/ref&amp;gt;  In the vast majority of existing studies, emphasis has traditionally been placed on either the development of guidelines or the application of existing guidelines to automated evaluation.  A mutually-reinforcing development of both simultaneously has not been attempted.&lt;br /&gt;
&lt;br /&gt;
Overlap between rulesets is inevitable and unavoidable.  For our purposes of evaluating existing rulesets efficiently, without extracting and analyzing each rule individually, it may be desirable to identify the the overarching &#039;&#039;principles&#039;&#039; or &#039;&#039;philosophy&#039;&#039; (max. 2 or 3) for a given ruleset and determining their quantitative relevance to problems of cognition.&lt;br /&gt;
&lt;br /&gt;
===Popular and seminal examples===&lt;br /&gt;
Schneiderman&#039;s [http://faculty.washington.edu/jtenenbg/courses/360/f04/sessions/schneidermanGoldenRules.html Eight Golden Rules] date to 1987 and are arguably the most-cited.  They are heuristic, but can be somewhat classified by cognitive objective: at least two rules apply primarily to &#039;&#039;repeated use&#039;&#039;, versus &#039;&#039;discoverability&#039;&#039;.  Up to five of Schneiderman&#039;s rules emphasize &#039;&#039;predictability&#039;&#039; in the outcomes of operations and &#039;&#039;increased feedback and control&#039;&#039; in the agency of the user.  His final rule, paradoxically, removes control from the user by suggesting a reduced short-term memory load, which we can arguably classify as &#039;&#039;simplicity&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Raskin&#039;s [http://www.mprove.de/script/02/raskin/designrules.html Design Rules] are classified into five principles by the author, augmented by definitions and supporting rules.  While one principle is primarily aesthetic (a design problem arguably out of the bounds of this proposal) and one is a basic endorsement of testing, the remaining three begin to reflect philosophies similar to Schneiderman&#039;s: reliability or &#039;&#039;predictability&#039;&#039;, &#039;&#039;simplicity&#039;&#039; or &#039;&#039;efficiency&#039;&#039; (which we can construe as two sides of the same coin), and finally he introduces a concept of &#039;&#039;uninterruptibility&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Maeda&#039;s [http://lawsofsimplicity.com/?cat=5&amp;amp;order=ASC Laws of Simplicity] are fewer, and ostensibly emphasize &#039;&#039;simplicity&#039;&#039; exclusively, although elements of &#039;&#039;use&#039;&#039; as related by Schneiderman&#039;s rules and &#039;&#039;efficiency&#039;&#039; as defined by Raskin may be facets of this simplicity.  Google&#039;s corporate mission statement presents [http://www.google.com/corporate/ux.html Ten Principles], only half of which can be considered true interface guidelines.  &#039;&#039;Efficiency&#039;&#039; and &#039;&#039;simplicity&#039;&#039; are cited explicitly, aesthetics are once again noted as crucial, and working within a user&#039;s trust is another application of &#039;&#039;predictability&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
===Elements and goals of a guideline set===&lt;br /&gt;
Myriad rulesets exist, but variation becomes scarce—it indeed seems possible to parse these common rulesets into overarching principles that can be converted to or associated with quantifiable cognitive properties.  For example, it is likely &#039;&#039;simplicity&#039;&#039; has an analogue in the short-term memory retention or visual retention of the user, vis a vis the rule of [http://books.google.com/books?hl=en&amp;amp;lr=&amp;amp;id=j5q0VvOGExYC&amp;amp;oi=fnd&amp;amp;pg=PA357&amp;amp;dq=seven+plus+or+minus+two&amp;amp;ots=prI3PKJBar&amp;amp;sig=vOZnqpnkXKGYWxK6_XlA4I_CRyI Seven, Plus or Minus Two].  &#039;&#039;Predictability&#039;&#039; likewise may have an analogue in Activity Theory, in regards to a user&#039;s perceptual expectations for a given action; &#039;&#039;uninterruptibility&#039;&#039; has implications in cognitive task-switching;&amp;lt;ref&amp;gt;[http://portal.acm.org/citation.cfm?id=985692.985715&amp;amp;coll=Portal&amp;amp;dl=ACM&amp;amp;CFID=21136843&amp;amp;CFTOKEN=23841774 Czerwinski, Horvitz, and White. &amp;quot;A Diary Study of Task Switching and Interruptions.&amp;quot;  Proceedings of the SIGCHI conference on Human factors in computing systems, 2004.]&amp;lt;/ref&amp;gt; and so forth.&lt;br /&gt;
&lt;br /&gt;
Within the scope of this proposal, we aim to reduce and refine these philosophies found in seminal rulesets and identify their logical cognitive analogues.  By assigning a quantifiable taxonomy to these principles, we will be able to rank and weight them with regard to their real-world applicability, developing a set of &amp;quot;meta-guidelines&amp;quot; and rules for applying them to a given interface in an automated manner.  Combined with cognitive models and multi-modal HCI analysis, we seek to develop, in parallel with these guidelines, the interface evaluation system responsible for their application.&lt;br /&gt;
&lt;br /&gt;
== Perception and Action (in progress) ==&lt;br /&gt;
&lt;br /&gt;
*Information Processing Approach&lt;br /&gt;
**Advantages&lt;br /&gt;
***Formalism eases translation of theory into scripting language&lt;br /&gt;
**Disadvantages&lt;br /&gt;
***Assumes symbolic representation&lt;br /&gt;
&lt;br /&gt;
*Ecological (Gibsonian) Approach&lt;br /&gt;
**Advantages&lt;br /&gt;
***Emphasis on bodily and environmental constraints&lt;br /&gt;
**Disadvantages&lt;br /&gt;
***Lack of formalism hinders translation of theory into scripting language&lt;br /&gt;
&lt;br /&gt;
= Specific Aims and Contributions (to be separated later) =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Specific Aims&#039;&#039;&#039;&lt;br /&gt;
* Incorporate interaction history mechanisms into a set of existing applications.&lt;br /&gt;
* Perform user-study evaluation of history-collection techniques.&lt;br /&gt;
* Distill a set of cognitive principles/models, and evaluate empirically?&lt;br /&gt;
* Build/buy sensing system to include pupil-tracking, muscle-activity monitoring, auditory recognition.&lt;br /&gt;
* Design techniques for manual/semi-automated/automated construction of &amp;lt;insert favorite cognitive model here&amp;gt; from interaction histories and sensing data.&lt;br /&gt;
* Design system for posterior analysis of interaction history w.r.t. &amp;lt;insert favorite cognitive model here&amp;gt;, evaluating critical path &amp;lt;or equivalent&amp;gt; trajectories.&lt;br /&gt;
* Design cognition-based techniques for detecting bottlenecks in critical paths, and offering optimized alternatives. &lt;br /&gt;
* Perform quantitative user-study evaluations, collect qualitative feedback from expert interface designers.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Contributions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Design-space analysis and quantitative evaluation of cognition-based techniques for assessing user interfaces. &lt;br /&gt;
* Design and quantitative evaluation of techniques for suggesting optimized interface-design changes. &lt;br /&gt;
* An extensible, multimodal software architecture for capturing user traces integrated with pupil-tracking data, auditory recognition, and muscle-activity monitoring. &lt;br /&gt;
* (there may be more here, like testing different cognitive models, generating a markup language to represent interfaces, maybe even a unique metric space for interface usability) &lt;br /&gt;
&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
See the [http://vrl.cs.brown.edu/wiki/images/b/b1/Flowchart2.pdf flowchart] for a visual overview of our aims.&lt;br /&gt;
&lt;br /&gt;
In order to use this framework, a designer will have to provide:&lt;br /&gt;
* Functional specification - what are the possible interactions between the user and the application. This can be thought of as method signatures, with a name (e.g., setVolume), direction (to user or from user) and a list of value types (boolean, number, text, video, ...) for each interaction.&lt;br /&gt;
* GUI specification - a mapping of interactions to interface elements (e.g., setVolume is mapped to the grey knob in the bottom left corner with clockwise turning increasing the input number).&lt;br /&gt;
* Functional user traces - sequences of representative ways in which the application is used. Instead of writing them, the designer could have users use the application with a trial interface and then use our methods to generalize the user traces beyond the specific interface (The second method is depicted in the diagram). As a form of pre-processing, the system also generates an interaction transition matrix which lists the probability of each type of interaction given the previous interaction.&lt;br /&gt;
* Utility function - this is a weighting of various performance metrics (time, cognitive load, fatigue, etc.), where the weighting expresses the importance of a particular dimension to the user. For example, a user at NASA probably cares more about interface accuracy than speed. By passing this information to our committee of experts, we can create interfaces that are tuned to maximize the utility of a particular user type.&lt;br /&gt;
&lt;br /&gt;
Each of the modules can use all of this information or a subset of it. Our approach stresses flexibility and the ability to give more meaningful feedback the more information is provided. After processing the information sent by the system of experts, the aggregator will output:&lt;br /&gt;
* An evaluation of the interface. Evaluations are expressed both in terms of the utility function components (i.e. time, fatigue, cognitive load, etc.), and in terms of the overall utility for this interface (as defined by the utility function). These evaluations are given in the form of an efficiency curve, where the utility received on each dimension can change as the user becomes more accustomed to the interface. &lt;br /&gt;
* Suggested improvements for the GUI are also output. These suggestions are meant to optimize the utility function that was input to the system. If a user values accuracy over time, interface suggestions will be made accordingly.&lt;br /&gt;
&lt;br /&gt;
== Recording User-Interaction Primitives ==&lt;br /&gt;
* Owner: [[User:Trevor O&#039;Brien | Trevor O&#039;Brien]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aims&#039;&#039;&#039;&lt;br /&gt;
* Develop system for logging low-level user-interactions within existing applications.  By low-level interactions, we refer to those interactions for which a quantitative, predictive, GOMS-like model may be generated.&lt;br /&gt;
* At the same scale of granularity, integrate explicit interface-interactions with multimodal-sensing data.  i.e. pupil-tracking, muscle-activity monitoring, auditory recognition, EEG data, and facial and posture-focused video. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Contributions&#039;&#039;&#039;&lt;br /&gt;
* Extensible, multimodal, HCI framework for recording rich interaction-history data in existing applications.  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Significance&#039;&#039;&#039;&lt;br /&gt;
* Provide rich history data to serve as the basis for novel quantitative interface evaluation.&lt;br /&gt;
* Aid expert HCI and visual designers in traditional design processes.&lt;br /&gt;
* Provide data for automated machine-learning strategies applied to interaction.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Background and Related Work&#039;&#039;&#039;&lt;br /&gt;
* The utility of interaction histories with respect to assessing interface design has been demonstrated in &amp;lt;ref&amp;gt; [http://www.cs.brown.edu/people/trevor/Papers/Heer-2008-GraphicalHistories.pdf Graphical Histories for Visualization: Supporting Analysis, Communication, and Evaluation] (InfoVis 2008) &amp;lt;/ref&amp;gt;.&lt;br /&gt;
* In addition, data management histories have been shown effective in the visualization community in &amp;lt;ref&amp;gt; [http://www.cs.brown.edu/people/trevor/Papers/Callahan-2006-MED.pdf Callahan-2006-MED] &amp;lt;/ref&amp;gt;  &amp;lt;ref&amp;gt; [http://www.cs.brown.edu/people/trevor/Papers/Callahan-2006-VVM.pdf Callahan-2006-VVM] &amp;lt;/ref&amp;gt; &amp;lt;ref&amp;gt; [http://www.cs.brown.edu/people/trevor/Papers/Bavoil-2005-VEI.pdf Bavoil-2005-VEI]&amp;lt;/ref&amp;gt;, providing visualizations by analogy &amp;lt;ref&amp;gt; [http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&amp;amp;arnumber=4376187&amp;amp;isnumber=4376125 Querying and Creating Visualizations by Analogy] &amp;lt;/ref&amp;gt; and offering automated suggestions &amp;lt;ref&amp;gt; [http://www.cs.utah.edu/~juliana/pub/tvcg-recommendation2008.pdf VisComplete: Automating Suggestions from Visualization Pipelines] &amp;lt;/ref&amp;gt;, which we expect to generalize to user interaction history.&lt;br /&gt;
&lt;br /&gt;
== Semantic-level Interaction Chunking ==&lt;br /&gt;
* Owner: [[User:Trevor O&#039;Brien | Trevor O&#039;Brien]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aims&#039;&#039;&#039;&lt;br /&gt;
* Develop techniques for &#039;&#039;chunking&#039;&#039; low-level interaction primitives into &#039;&#039;semantic-level&#039;&#039; interactions, given an application&#039;s functionality and data-context.  (And de-chunking? Invertible mapping needed?)&lt;br /&gt;
* Perform user-study evaluation to validate chunking methods.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Contributions&#039;&#039;&#039;&lt;br /&gt;
* Design and user-study evaluation of semantic chunking techniques.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Significance&#039;&#039;&#039;&lt;br /&gt;
* Low-level &amp;lt;--&amp;gt; semantic-level mapping allows for cognitive-modeling to be applied at a functionality level, where low-level interaction techniques can be swapped out.  This will allow our interface assessment system to make feasible suggestions for more optimal interface design.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Background and Related Work&#039;&#039;&#039;&lt;br /&gt;
* Chunking interactions has been studied in the HCI community as in &amp;lt;ref&amp;gt; [http://www.cs.brown.edu/people/trevor/Papers/Heer-2008-GraphicalHistories.pdf Graphical Histories for Visualization: Supporting Analysis, Communication, and Evaluation] (InfoVis 2008) &amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Parallel Framework for Evaluation Modules ==&lt;br /&gt;
* Owner: [[User:Adam Darlow | Adam Darlow]], [[User:Eric Sodomka | Eric Sodomka]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This section will describe in more detail the inputs, outputs and architecture that were presented in the introduction.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Module Inputs (Incomplete) ====&lt;br /&gt;
* A set of utility dimensions {d1, d2, ...} are defined in the framework. These could be {d1=&amp;quot;time&amp;quot;, d2=&amp;quot;fatigue&amp;quot;, ...}&lt;br /&gt;
* A set of interaction functions. These specify all of the information that the application wants to give users or get from them. It is not tied to a specific interface. For example, the fact that an applications shows videos would be included here. Whether it displays them embedded, in a pop-up window or fullscreen would not.&lt;br /&gt;
* A mapping of interaction functions to interface elements (e.g., buttons, windows, dials,...). Lots of optional information describing visual properties, associated text, physical interactions (e.g., turning the dial clockwise increases the input value) and timing.&lt;br /&gt;
* Functional user traces - sequences of interaction functions that represent typical user interactions with the application. Could include a goal hierarchy, in which case the function sequence is at the bottom of the hierarchy.&lt;br /&gt;
&lt;br /&gt;
==== Module Outputs ====&lt;br /&gt;
* Every module ouputs at least one of the following:&lt;br /&gt;
** An evaluation of the interface&lt;br /&gt;
*** This can be on any or all of the utility dimensions, e.g. evaluation={d1=score1, d2=score2, ...}&lt;br /&gt;
*** This can alternately be an overall evaluation, ignoring dimensions, e.g. evaluation={score}&lt;br /&gt;
**** In this case, the aggregator will treat this as the module giving the same score to all dimensions. Which dimension this evaluator actually predicts well on can be learned by the aggregator over time.&lt;br /&gt;
** Recommendation(s) for improving the interface&lt;br /&gt;
***This can be a textual description of what changes the designer should make&lt;br /&gt;
***This can alternately be a transformation that can automatically be applied to the interface language (without designer intervention)&lt;br /&gt;
***In addition to the textual or transformational description of the recommendation, a &amp;quot;change in evaluation&amp;quot; is output to describe how specifically the value will improve the interface&lt;br /&gt;
****Recommendation = {description=&amp;quot;make this change&amp;quot;, Δevaluation={d1=score1, d2=score2, ...}&lt;br /&gt;
****Like before, this Δevaluation can cover any number of dimensions, or it can be generic.&lt;br /&gt;
***Either a single recommendation or a set of recommendations can be output&lt;br /&gt;
&lt;br /&gt;
==== Aggregator Inputs ====&lt;br /&gt;
The aggregator receives as input the outputs of all the modules.&lt;br /&gt;
&lt;br /&gt;
==== Aggregator Outputs ====&lt;br /&gt;
&lt;br /&gt;
Outputs for the aggregator are the same as the outputs for each module. The difference is that the aggregator will consider all the module outputs, and arrive at a merged output based on the past performance of each of the modules.&lt;br /&gt;
&lt;br /&gt;
== Evaluation and Recommendation via Modules ==&lt;br /&gt;
* Owner: [[User:E J Kalafarski | E J Kalafarski]]&lt;br /&gt;
&lt;br /&gt;
A &amp;quot;meta-module&amp;quot; called the aggregator will be responsible for assembling and formatting the output of all other modules into a structure that is both extensible and immediately usable, by both an automated designer or a human designer.&lt;br /&gt;
&lt;br /&gt;
===Requirements===&lt;br /&gt;
The aggregator&#039;s functionality, then, is defined by its &#039;&#039;&#039;inputs&#039;&#039;&#039;, the outputs of the other modules, and the desired &#039;&#039;&#039;output&#039;&#039;&#039; of the system as a whole, per its position in the architecture.  Its purpose is largely formatting and reconciliation of the products of the multitudinous (and extensible) modules.  The output of the aggregator must meet several requirements: first, to generate a set of human-readable suggestions for the improvement of the given interface; second, to generate a machine-readable, but also analyzable, evaluation of the various characteristics of the interface and accompanying user traces.&lt;br /&gt;
&lt;br /&gt;
From these specifications, it is logical to assume that a common language or format will be required for the output of individual modules.  We propose an XML-based file format, allowing: (1) a section for the standardized identification of problem areas, applicable rules, and proposed improvements, generalized by the individual module and mapped to a single element, or group of elements, in the original interface specification; (2) a section for specification of generalizable &amp;quot;utility&amp;quot; functions, allowing a module to specify how much a measurable quantity of utility is positively or negatively affected by properties of the input interface; (3) new, user-definable sections for evaluations of the given interface not covered by the first two sections.  The first two sections are capable of conveying the vast majority of module outputs predicted at this time, but the XML can extensibly allow modules to pass on whatever information may become prominent in the future.&lt;br /&gt;
&lt;br /&gt;
===Specification===&lt;br /&gt;
 &amp;lt;module id=&amp;quot;Fitts-Law&amp;quot;&amp;gt;&lt;br /&gt;
 	&amp;lt;interface-elements&amp;gt;&lt;br /&gt;
 		&amp;lt;element&amp;gt;&lt;br /&gt;
 			&amp;lt;desc&amp;gt;submit button&amp;lt;/desc&amp;gt;&lt;br /&gt;
 			&amp;lt;problem&amp;gt;&lt;br /&gt;
 				&amp;lt;desc&amp;gt;size&amp;lt;/desc&amp;gt;&lt;br /&gt;
 				&amp;lt;suggestion&amp;gt;width *= 2&amp;lt;/suggestion&amp;gt;&lt;br /&gt;
 				&amp;lt;suggetsion&amp;gt;height *= 2&amp;lt;/suggestions&amp;gt;&lt;br /&gt;
 				&amp;lt;human-suggestion&amp;gt;Increase size relative to other elements&amp;lt;/human-suggestion&amp;gt;&lt;br /&gt;
 			&amp;lt;/problem&amp;gt;&lt;br /&gt;
 		&amp;lt;/element&amp;gt;&lt;br /&gt;
 	&amp;lt;/interface-elements&amp;gt;&lt;br /&gt;
 	&amp;lt;utility&amp;gt;&lt;br /&gt;
 		&amp;lt;dimension&amp;gt;&lt;br /&gt;
 			&amp;lt;desc&amp;gt;time&amp;lt;/desc&amp;gt;&lt;br /&gt;
 			&amp;lt;value&amp;gt;0:15:35&amp;lt;/value&amp;gt;&lt;br /&gt;
 		&amp;lt;/dimension&amp;gt;&lt;br /&gt;
 		&amp;lt;dimension&amp;gt;&lt;br /&gt;
 			&amp;lt;desc&amp;gt;frustration&amp;lt;/desc&amp;gt;&lt;br /&gt;
 			&amp;lt;value&amp;gt;pulling hair out&amp;lt;/value&amp;gt;&lt;br /&gt;
 		&amp;lt;/dimension&amp;gt;&lt;br /&gt;
 		&amp;lt;dimension&amp;gt;&lt;br /&gt;
 			&amp;lt;desc&amp;gt;efficiency&amp;lt;/desc&amp;gt;&lt;br /&gt;
 			&amp;lt;value&amp;gt;13.2s/KPM task&amp;lt;/value&amp;gt;&lt;br /&gt;
 			&amp;lt;value&amp;gt;0.56m/CPM task&amp;lt;/value&amp;gt;&lt;br /&gt;
 		&amp;lt;/dimension&amp;gt;&lt;br /&gt;
 	&amp;lt;/utility&amp;gt;&lt;br /&gt;
 	&amp;lt;tasks&amp;gt;&lt;br /&gt;
 		&amp;lt;task&amp;gt;&lt;br /&gt;
 			&amp;lt;desc&amp;gt;complete form&amp;lt;/desc&amp;gt;&lt;br /&gt;
 		&amp;lt;/task&amp;gt;&lt;br /&gt;
 		&amp;lt;task&amp;gt;&lt;br /&gt;
 			&amp;lt;desc&amp;gt;lookup SSN&amp;lt;/desc&amp;gt;&lt;br /&gt;
 		&amp;lt;/task&amp;gt;&lt;br /&gt;
 		&amp;lt;task&amp;gt;&lt;br /&gt;
 			&amp;lt;desc&amp;gt;format phone number&amp;lt;/desc&amp;gt;&lt;br /&gt;
 		&amp;lt;/task&amp;gt;&lt;br /&gt;
 	&amp;lt;/tasks&amp;gt;&lt;br /&gt;
 &amp;lt;/module&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Logic===&lt;br /&gt;
This file provided by each module is then the input for the aggregator.  The aggregator&#039;s most straightforward function is the compilation of the &amp;quot;problem areas,&amp;quot; assembling them and noting problem areas and suggestions that are recommended by more than one module, and weighting them accordingly in its final report.  These weightings can begin in an equal state, but the aggregator should be capable of learning iteratively which modules&#039; results are most relevant to the user and update weightings accordingly.  This may need to be accomplished with manual tuning, or a machine-learning algorithm capable of determining which modules most often agree with others.&lt;br /&gt;
&lt;br /&gt;
Secondly, the aggregator compiles the utility functions provided by the module specs.  This, again, is a summation of similarly-described values from the various modules.&lt;br /&gt;
&lt;br /&gt;
When confronted with user-defined sections of the XML spec, the aggregator is primarily responsible for compiling them and sending them along to the output of the machine.  Even if the aggregator does not recognize a section or property of the evaluative spec, if it sees the property reported by more than one module it should be capable of aggregating these intelligently.  In future versions of the spec, it should be possible for a module to provide instructions for the aggregator on how to handle unrecognized sections of the XML.&lt;br /&gt;
&lt;br /&gt;
From these compilations, then, the aggregator should be capable of outputting both aggregated human-readable suggestions on interface improvements for a human designer, as well as a comprehensive evaluation of the interface&#039;s effectiveness at the given task traces.  Again, this is dependent on the specification of the system as a whole, but is likely to include measures and comparisons, graphings of task versus utility, and quantitative measures of an element&#039;s effectiveness.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This section is necessarily defined by the output of the individual modules (which I already expect to be of varied and arbitrary structure) and the desired output of the machine as a whole.  It will likely need to be revised heavily after other modules and the &amp;quot;Parellel Framework&amp;quot; section are defined.&#039;&#039; [[User:E J Kalafarski|E J Kalafarski]] 12:34, 24 April 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This section describes the aggregator, which takes the output of multiple independent modules and aggregates the results to provide (1) an evaluation and (2) recommendations for the user interface. We should explain how the aggregator weights the output of different modules (this could be based on historical performance of each module, or perhaps based on E.J.&#039;s cognitive/HCI guidelines).&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Sample Modules ==&lt;br /&gt;
&lt;br /&gt;
=== CPM-GOMS ===&lt;br /&gt;
* Owners: [[User:Steven Ellis | Steven Ellis]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This module will provide interface evaluations and suggestions based on a CPM-GOMS model of cognition for the given interface. It will provide a quantitative, predictive, cognition-based parameterization of usability. From empirically collected data, user trajectories through the model (critical paths) will be examined, highlighting bottlenecks within the interface, and offering suggested alterations to the interface to induce more optimal user trajectories.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
I’m hoping to have some input on this section, because it seems to be the crux of the “black box” into which we take the inputs of interface description, user traces, etc. and get our outputs (time, recommendations, etc.).  I know at least a few people have pretty strong thoughts on the matter and we ought to discuss the final structure.&lt;br /&gt;
&lt;br /&gt;
That said – my proposal for the module:&lt;br /&gt;
*In my opinion the concept of the Model Human Processor (at least as applied in CPM) is outdated – it’s too economic/overly parsimonious in its conception of human activity.  I think we need to create a structure which accounts for more realistic conditions of HCI including multitasking, aspects of distributed cognition (and other relevant uses of tools – as far as I can tell CPM doesn’t take into account any sort of productivity aids), executive control processes of attention, etc.  ACT-R appears to take steps towards this but we would probably need to look at their algorithms to know for sure.&lt;br /&gt;
*Critical paths will continue to play an important role – we should in fact emphasize that part of this tool’s purpose will be a description not only of ways in which the interface should be modified to best fit a critical path, but also ways in which the user’s ought to be instructed in their use of the path.  This feedback mechanism could be bidirectional – if the model’s predictions of the user’s goals are incorrect, the critical path determined will also be incorrect and the interface inherently suboptimal.  The user could be prompted with a tooltip explaining in brief why and how the interface has changed, along with options to revert, select other configurations (euphemized by goals), and to view a short video detailing how to properly use the interface.&lt;br /&gt;
*Call me crazy but, if we assume designers will be willing to code a model of their interfaces into our ACT-R-esque language, could we allow that model to be fairly transparent to the user, who could use a gui to input their goals to find an analogue in the program which would subsequently rearrange its interface to fit the user’s needs?  Even if not useful to the users, such dynamic modeling could really help designers (IMO)&lt;br /&gt;
*I think the model should do its best to accept models written for ACT-R and whatever other cognitive models there are out there – gives us the best chance of early adoption&lt;br /&gt;
*I would particularly appreciate input on the number/complexity/type of inputs we’ll be using, as well as the same qualities for the output.&lt;br /&gt;
&lt;br /&gt;
=== HCI Guidelines ===&lt;br /&gt;
* Owner: [[User:E J Kalafarski | E J Kalafarski]]&lt;br /&gt;
&lt;br /&gt;
Schneiderman&#039;s Eight Golden Rules and Jakob Nielsen&#039;s Ten Heuristics are perhaps the most famous and well-regarded heuristic design guidelines to emerge over the last twenty years.  Although the explicit theoretical basis for such heuristics is controversial and not well-explored, the empirical success of these guidelines is established and accepted.  This module will parse out up to three or four common (that is, intersecting) principles from these accepted guidelines and apply them to the input interface.&lt;br /&gt;
&lt;br /&gt;
As an example, we identify an analogous principle that appears in Schneiderman (&amp;quot;Reduce short-term memory load&amp;quot;)&amp;lt;ref&amp;gt;http://faculty.washington.edu/jtenenbg/courses/360/f04/sessions/schneidermanGoldenRules.html&amp;lt;/ref&amp;gt; and Nielsen (&amp;quot;Recognition rather than recall/Minimize the user&#039;s memory load&amp;quot;)&amp;lt;ref&amp;gt;http://www.useit.com/papers/heuristic/heuristic_list.html&amp;lt;/ref&amp;gt;.  The input interface is then evaluated for the consideration of the principle, based on an explicit formal description of the interface, such as XAML or XUL.  The module attempts to determine how effectively the interface demonstrates the principle.  When analyzing an interface for several principles that may be conflicting or opposing in a given context, the module makes use of a hard-coded but iterative (and evolving) weighting of these principles, based on (1) how often they appear in the training set of accepted sets of guidelines, (2) how analogues a heuristic principle is to a cognitive principle in a parallel training set, and (3) how effective the principle&#039;s associated suggestion is found to be using a feedback mechanism.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inputs&#039;&#039;&#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
# A formal description of the interface and its elements (e.g. buttons).&lt;br /&gt;
# A formal description of a particular task and the possible paths through a subset of interface elements that permit the user to accomplish that task.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Output&#039;&#039;&#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
Standard XML-formatted file containing problem areas of the input interface, suggestions for each problem area based on principles that were found to have a strong application to a problem element and the problem itself, and a human-readable generated analysis of the element&#039;s affinity for the principle.  Quantitative outputs will not be possible based on heuristic guidelines, and the &amp;quot;utility&amp;quot; section of this module&#039;s output is likely to be blank.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This section could include an example or two of established design guidelines that could easily be implemented as modules.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Fitts&#039;s Law ===&lt;br /&gt;
* Owner: [[User:Jon Ericson | Jon Ericson]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This module provides an estimate of the required time to complete various tasks that have been decomposed into formalized sequences of interactions with interface elements, and will provide evaluations and recommendations for optimizing the time required to complete those tasks using the interface.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1. A formal description of the interface and its elements (e.g. buttons).&lt;br /&gt;
&lt;br /&gt;
2. A formal description of a particular task and the possible paths through a subset of interface elements that permit the user to accomplish that task.&lt;br /&gt;
&lt;br /&gt;
3. The physical distances between interface elements along those paths.&lt;br /&gt;
&lt;br /&gt;
4. The width of those elements along the most likely axes of motion.&lt;br /&gt;
&lt;br /&gt;
5. Device (e.g. mouse) characteristics including start/stop time and the inherent speed limitations of the device.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Output&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The module will then use the Shannon formulation of Fitt&#039;s Law to compute the average time needed to complete the task along those paths.&lt;br /&gt;
&lt;br /&gt;
=== Affordances ===&lt;br /&gt;
* Owner: [[User:Jon Ericson | Jon Ericson]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This simple module will provide interface evaluations and recommendations based on a measure of the extent to which the user perceives the relevant affordances of the interface when performing a number of specified tasks.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inputs&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Formalized descriptions of...&lt;br /&gt;
&lt;br /&gt;
1. Interface elements&lt;br /&gt;
&lt;br /&gt;
2. Their associated actions&lt;br /&gt;
&lt;br /&gt;
3. The functions of those actions&lt;br /&gt;
&lt;br /&gt;
4. A particular task&lt;br /&gt;
&lt;br /&gt;
5. User traces for that task.  &lt;br /&gt;
&lt;br /&gt;
Inputs (1-4) are then used to generate a &amp;quot;user-independent&amp;quot; space of possible functions that the interface is capable of performing with respect to a given task -- what the interface &amp;quot;affords&amp;quot; the user.  From this set of possible interactions, our model will then determine the subset of optimal paths for performing a particular task.  The user trace (5) is then used to determine what functions actually were performed in the course of a given task of interest and this information is then compared to the optimal path data to determine the extent to which affordances of the interface are present but not perceived.  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Output&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The output of this module is a simple ratio of (affordances perceived) / [(relevant affordances present) * (time to complete task)] which provides a quantitative measure of the extent to which the interface is &amp;quot;natural&amp;quot; to use for a particular task.&lt;br /&gt;
&lt;br /&gt;
=== Workflow, Multi-tasking and Interruptions ===&lt;br /&gt;
* Owner: [[User:Andrew Bragdon | Andrew Bragdon]]&lt;br /&gt;
&lt;br /&gt;
There are, at least, two levels at which users work ([http://portal.acm.org/citation.cfm?id=985692.985707&amp;amp;coll=portal&amp;amp;dl=ACM&amp;amp;CFID=20781736&amp;amp;CFTOKEN=83176621 Gonzales, et al., 2004]).  Users accomplish individual low-level tasks which are part of larger &#039;&#039;working spheres&#039;&#039;; for example, an office worker might send several emails, create several Post-It (TM) note reminders, and then edit a word document, each of these smaller tasks being part of a single larger working sphere of &amp;quot;adding a new section to the website.&amp;quot;  Thus, it is important to understand this larger workflow context - which often involves extensive levels of multi-tasking, as well as switching between a variety of computing devices and traditional tools, such as notebooks.  In this study it was found that the information workers surveyed typically switch individual tasks every 2 minutes and have many simultaneous working spheres which they switch between, on average every 12 minutes.  This frenzied pace of switching tasks and switching working spheres suggests that users will not be using a single application or device for a long period of time, and that affordances to support this characteristic pattern of information work are important.&lt;br /&gt;
&lt;br /&gt;
The purpose of this module is to integrate existing work on multi-tasking, interruption and higher-level workflow into a framework which can predict user recovery times from interruptions.  Specifically, the goals of this framework will be to:&lt;br /&gt;
&lt;br /&gt;
* Understand the role of the larger workflow context in user interfaces&lt;br /&gt;
* Understand the impact of interruptions on user workflow&lt;br /&gt;
* Understand how to design software which fits into the larger working spheres in which information work takes place&lt;br /&gt;
&lt;br /&gt;
It is important to point out that because workflow and multi-tasking rely heavily on higher-level brain functioning, it is unrealistic within the scope of this grant to propose a system which can predict user performance given a description of a set of arbitrary software programs.  Therefore, we believe this module will function much more in a qualitative role to provide context to the rest of the model.  Specifically, our findings related to interruption and multi-tasking will advance the basic research question of &amp;quot;how do you users react to interruptions when using working sets of varying sizes?&amp;quot;.  This core HCI contribution will help to inform the rest of the outputs of the model in a qualitative manner.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
N/A&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Outputs&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
N/A&lt;br /&gt;
&lt;br /&gt;
=== Working Memory Load ===&lt;br /&gt;
* Owner: [[User:Gideon Goldin | Gideon Goldin]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This module measures how much information the user needs to retain in memory while interacting with the interface and makes suggestions for improvements.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Models&lt;br /&gt;
** Beddeley&#039;s Model of Working Memory&amp;lt;ref&amp;gt;http://en.wikipedia.org/wiki/Baddeley%27s_model_of_working_memory&amp;lt;/ref&amp;gt;&lt;br /&gt;
*** Episodic Buffer&lt;br /&gt;
** George Miller&#039;s &amp;quot;The magic number 7 plus or minus 2&amp;quot;&amp;lt;ref&amp;gt;http://en.wikipedia.org/wiki/The_Magical_Number_Seven,_Plus_or_Minus_Two&amp;lt;/ref&amp;gt;&lt;br /&gt;
** The magic number 4&amp;lt;ref&amp;gt;Cowan, N. (2001). The magical number 4 in short-term memory: A reconsideration of mental storage capacity. Behavioral and Brain Sciences, 24, 87-185.&amp;lt;/ref&amp;gt;&lt;br /&gt;
* Chunking&amp;lt;ref&amp;gt;http://en.wikipedia.org/wiki/Chunking_(psychology)&amp;lt;/ref&amp;gt;&lt;br /&gt;
* Priming&amp;lt;ref&amp;gt;http://en.wikipedia.org/wiki/Priming_(psychology)&amp;lt;/ref&amp;gt;&lt;br /&gt;
* Subitizing and Counting&amp;lt;ref&amp;gt;http://en.wikipedia.org/wiki/Subitizing&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
* Visual Stimuli&lt;br /&gt;
* Audio Stimuli&lt;br /&gt;
&#039;&#039;&#039;Outputs&#039;&#039;&#039;&lt;br /&gt;
* Remembered percepts&lt;br /&gt;
* Half-Life of percepts&lt;br /&gt;
&lt;br /&gt;
=== Automaticity of Interaction ===&lt;br /&gt;
* Owner: [[User:Gideon Goldin | Gideon Goldin]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Measures how easily the interaction with the interface becomes automatic with experience and makes suggestions for improvements.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Learning&amp;lt;ref&amp;gt;http://en.wikipedia.org/wiki/Learning#Mathematical_models_of_learning&amp;lt;/ref&amp;gt;&lt;br /&gt;
** Logan&#039;s instance theory of automatization&amp;lt;ref&amp;gt;http://74.125.95.132/search?q=cache:IZ-Zccsu3SEJ:psych.wisc.edu/ugstudies/psych733/logan_1988.pdf+logan+isntance+teory&amp;amp;cd=1&amp;amp;hl=en&amp;amp;ct=clnk&amp;amp;gl=us&amp;amp;client=firefox-a&amp;lt;/ref&amp;gt;&lt;br /&gt;
* Fluency&lt;br /&gt;
** As meta-cognitive information &amp;lt;ref&amp;gt;http://www.sciencedirect.com/science?_ob=ArticleURL&amp;amp;_udi=B6VH9-4SM7PFK-4&amp;amp;_user=10&amp;amp;_rdoc=1&amp;amp;_fmt=&amp;amp;_orig=search&amp;amp;_sort=d&amp;amp;view=c&amp;amp;_acct=C000050221&amp;amp;_version=1&amp;amp;_urlVersion=0&amp;amp;_userid=10&amp;amp;md5=10cd279fa80958981fcc3c06684c09af&amp;lt;/ref&amp;gt;&lt;br /&gt;
** As a cognitive &#039;&#039;heuristic&#039;&#039;&amp;lt;ref&amp;gt;http://en.wikipedia.org/wiki/Fluency_heuristic&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
* Interface&lt;br /&gt;
* User goals&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Outputs&#039;&#039;&#039;&lt;br /&gt;
* Learning curve&lt;br /&gt;
&lt;br /&gt;
== Integration into the Design Process ==&lt;br /&gt;
* Owner: [[User:Ian Spector | Ian Spector]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This section outlines the process of designing an HCI interface and at what stages our proposal fits in and how.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Preliminary Results =&lt;br /&gt;
&lt;br /&gt;
===Workflow, Multi-tasking, and Interruption===&lt;br /&gt;
&lt;br /&gt;
====I.  &#039;&#039;&#039;Goals&#039;&#039;&#039;====&lt;br /&gt;
&lt;br /&gt;
The goals of the preliminary work are to gain qualitative insight into how information workers practice metawork, and to determine whether people might be better-supported with software which facillitates metawork and interruptions.  Thus, the preliminary work should investigate, and demonstrate, the need and impact of the core goals of the project.&lt;br /&gt;
&lt;br /&gt;
====II.  &#039;&#039;&#039;Methodology&#039;&#039;&#039;====&lt;br /&gt;
&lt;br /&gt;
Seven information workers, ages 20-38 (5 male, 2 female), were interviewed to determine which methods they use to &amp;quot;stay organized&amp;quot;.  An initial list of metawork strategies was established from two pilot interviews, and then a final list was compiled.  Participants then responded to a series of 17 questions designed to gain insight into their metawork strategies and process.  In addition, verbal interviews were conducted to get additional open-ended feedback.&lt;br /&gt;
&lt;br /&gt;
====III.  &#039;&#039;&#039;Final Results&#039;&#039;&#039;====&lt;br /&gt;
A histogram of methods people use to &amp;quot;stay organized&amp;quot; in terms of tracking things they need to do (TODOs), appointments and meetings, etc. is shown in the figure below.&lt;br /&gt;
&lt;br /&gt;
[[Image:AcbGraph.jpg]]&lt;br /&gt;
&lt;br /&gt;
In addition to these methods, participants also used a number of other methods, including:&lt;br /&gt;
&lt;br /&gt;
* iCal&lt;br /&gt;
* Notes written in xterms&lt;br /&gt;
* &amp;quot;Inbox zero&amp;quot; method of email organization&lt;br /&gt;
* iGoogle Notepad (for tasks)&lt;br /&gt;
* Tag emails as &amp;quot;TODO&amp;quot;, &amp;quot;Important&amp;quot;, etc.&lt;br /&gt;
* Things (Organizer Software)&lt;br /&gt;
* Physical items placed to &amp;quot;remind me of things&amp;quot;&lt;br /&gt;
* Sometimes arranging windows on desk&lt;br /&gt;
* Keeping browser tabs open&lt;br /&gt;
* Bookmarking web pages&lt;br /&gt;
* Keep programs/files open scrolled to certain locations sometimes with things selected&lt;br /&gt;
&lt;br /&gt;
In addition, three participants said that when interrupted they &amp;quot;rarely&amp;quot; or &amp;quot;very rarely&amp;quot; were able to resume the task they were working on prior to the interruption.  Three of the participants said that they would not actively recommend their metawork strategies for other people, and two said that staying organized was &amp;quot;difficult&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Four participants were neutral to the idea of new tools to help them stay organized and three said that they would like to have such a tool/tools.&lt;br /&gt;
&lt;br /&gt;
====IV.  &#039;&#039;&#039;Discussion&#039;&#039;&#039;====&lt;br /&gt;
These results qunatiatively support our hypothesis that there is no clearly dominant set of metawork strategies employed by information workers.  This highly fragemented landscape is surprising, even though most information workers work in a similar environment - at a desk, on the phone, in meetings - and with the same types of tools - computers, pens, paper, etc.  We believe that this suggests that there are complex tradeoffs between these methods and that no single method is sufficient.  We therefore believe that users will be better supported with a new set of software-based metawork tools.&lt;br /&gt;
&lt;br /&gt;
= [Criticisms] =&lt;br /&gt;
* Owner: [[User:Andrew Bragdon | Andrew Bragdon]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Any criticisms or questions we have regarding the proposal can go here.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=References=&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Trevor O&#039;Brien</name></author>
	</entry>
	<entry>
		<id>http://vrl.cs.brown.edu/wiki/index.php?title=CS295J/Research_proposal_(draft_2)&amp;diff=3169</id>
		<title>CS295J/Research proposal (draft 2)</title>
		<link rel="alternate" type="text/html" href="http://vrl.cs.brown.edu/wiki/index.php?title=CS295J/Research_proposal_(draft_2)&amp;diff=3169"/>
		<updated>2009-04-24T16:57:46Z</updated>

		<summary type="html">&lt;p&gt;Trevor O&amp;#039;Brien: /* Semantic-level Interaction Chunking */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
* Owners: [[User:Adam Darlow | Adam Darlow]], [[User:Eric Sodomka | Eric Sodomka]], [[User: Trevor O&#039;Brien | Trevor]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Propose:&#039;&#039;&#039; The design, application and evaluation of a novel, cognition-based, computational framework for assessing interface design and providing automated suggestions to optimize usability.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Evaluation Methodology:&#039;&#039;&#039;  Our techniques will be evaluated quantitatively through a series of user-study trials, as well as qualitatively by a team of expert interface designers. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Contributions and Significance:&#039;&#039;&#039;  We expect this work to make the following contributions:  &lt;br /&gt;
# design-space analysis and quantitative evaluation of cognition-based techniques for assessing user interfaces.  &lt;br /&gt;
# design and quantitative evaluation of techniques for suggesting optimized interface-design changes. &lt;br /&gt;
# an extensible, multimodal software architecture for capturing user traces integrated with pupil-tracking data, auditory recognition, and muscle-activity monitoring.  &lt;br /&gt;
# specification (language?) of how to define an interface evaluation module and how to integrate it into a larger system.  &lt;br /&gt;
# (there may be more here, like testing different cognitive models, generating a markup language to represent interfaces, maybe even a unique metric space for interface usability)&lt;br /&gt;
&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
We propose a framework for interface evaluation and recommendation that integrates behavioral models and design guidelines from both cognitive science and HCI. Our framework behaves like a committee of specialized experts, where each expert provides its own assessment of the interface, given its particular knowledge of HCI or cognitive science. For example, an expert may provide an evaluation based on the GOMS method, Fitts&#039;s law, Maeda&#039;s design principles, or cognitive models of learning and memory. An aggregator collects all of these assessments and weights the opinions of each expert, and outputs to the developer a merged evaluation score and a weighted set of recommendations.&lt;br /&gt;
&lt;br /&gt;
Systematic methods of estimating human performance with computer interfaces are used only sparsely despite their obvious benefits, the reason being the overhead involved in implementing them. In order to test an interface, both manual coding systems like the GOMS variations and user simulations like those based on ACT-R/PM and EPIC require detailed pseudo-code descriptions of the user workflow with the application interface. Any change to the interface then requires extensive changes to the pseudo-code, a major problem because of the trial-and-error nature of interface design. Updating the models themselves is even more complicated. Even an expert in CPM-GOMS, for example, can&#039;t necessarily adapt it to take into account results from new cognitive research.&lt;br /&gt;
&lt;br /&gt;
Our proposal makes automatic interface evaluation easier to use in several ways. First of all, we propose to divide the input to the system into three separate parts, functionality, user traces and interface. By separating the functionality from the interface, even radical interface changes will require updating only that part of the input. The user traces are also defined over the functionality so that they too translate across different interfaces. Second, the parallel modular architecture allows for a lower &amp;quot;entry cost&amp;quot; for using the tool. The system includes a broad array of evaluation modules some of which are very simple and some more complex. The simpler modules use only a subset of the input that a system like GOMS or ACT-R would require. This means that while more input will still lead to better output, interface designers can get minimal evaluations with only minimal information. For example, a visual search module may not require any functionality or user traces in order to determine whether all interface elements are distinct enough to be easy to find. Finally, a parallel modular architecture is much easier to augment with relevant cognitive and design evaluations.&lt;br /&gt;
&lt;br /&gt;
= Background / Related Work =&lt;br /&gt;
&lt;br /&gt;
Each person should add the background related to their specific aims.&lt;br /&gt;
&lt;br /&gt;
* Steven Ellis - Cognitive models of HCI, including GOMS variations and ACT-R&lt;br /&gt;
* EJ - Design Guidelines&lt;br /&gt;
* Jon - Perception and Action&lt;br /&gt;
* Andrew - Multiple task environments&lt;br /&gt;
* Gideon - Cognition and dual systems&lt;br /&gt;
* Ian - Interface design process&lt;br /&gt;
* Trevor - User trace collection methods (especially any eye-tracking, EEG, ... you want to suggest using)&lt;br /&gt;
&lt;br /&gt;
== Cognitive Models ==&lt;br /&gt;
I plan to port over most of the background on cognitive models of HCI from the old proposal&lt;br /&gt;
&lt;br /&gt;
Additions will comprise of:&lt;br /&gt;
*CPM-GOMS as a bridge from GOMS architecture to the promising procedural optimization of the Model Human Processor&lt;br /&gt;
**Context of CPM development, discuss its relation to original GOMS and KLM&lt;br /&gt;
***Establish the tasks which were relevant for optimization when CPM was developed and note that its obsolescence may have been unavoidable&lt;br /&gt;
**Focus on CPM as the first step in transitioning from descriptive data, provided by mounting efforts in the cognitive sciences realm to discover the nature of task processing and accomplishment, to prescriptive algorithms which can predict an interface’s efficiency and suggest improvements&lt;br /&gt;
**CPM’s purpose as an abstraction of cognitive processing – a symbolic representation not designed for accuracy but precision&lt;br /&gt;
**CPM’s successful trials, e.g. Ernestine&lt;br /&gt;
***Implications of this project include CPM’s ability to accurately estimate processing at a psychomotor level&lt;br /&gt;
***Project does suggest limitations, however, when one attempts to examine more complex tasks which involve deeper and more numerous cognitive processes&lt;br /&gt;
*ACT-R as an example of a progressive cognitive modeling tool&lt;br /&gt;
**A tool clearly built by and for cognitive scientists, and as a result presents a much more accurate view of human processing – helpful for our research&lt;br /&gt;
**Built-in automation, which now seems to be a standard feature of cognitive modeling tools&lt;br /&gt;
**Still an abstraction of cognitive processing, but makes adaptation to cutting-edge cognitive research findings an integral aspect of its modular structure&lt;br /&gt;
**Expand on its focus on multi-tasking, taking what was a huge advance between GOMS and its CPM variation and bringing the simulation several steps closer to approximating the nature of cognition in regards to HCI&lt;br /&gt;
**Far more accessible both for researchers and the lay user/designer in its portability to LISP, pre-construction of modules representing cognitive capacities and underlying algorithms modeling paths of cognitive processing&lt;br /&gt;
&lt;br /&gt;
==Design guidelines==&lt;br /&gt;
A multitude of rule sets exist for the design of not only interface, but architecture, city planning, and software development.  They can range in scale from one primary rule to as many Christopher Alexander&#039;s 253 rules for urban environments,&amp;lt;ref&amp;gt;[http://hci.rwth-aachen.de/materials/publications/borchers2000a.pdf Borchers, Jan O.  &amp;quot;A Pattern Approach to Interaction Design.&amp;quot;  2000.]&amp;lt;/ref&amp;gt; which he introduced with the concept design patterns in the 1970s.  Study has likewise been conducted on the use of these rules:&amp;lt;ref&amp;gt;http://stl.cs.queensu.ca/~graham/cisc836/lectures/readings/tetzlaff-guidelines.pdf&amp;lt;/ref&amp;gt; guidelines are often only partially understood, indistinct to the developer, and &amp;quot;fraught&amp;quot; with potential usability problems given a real-world situation.&lt;br /&gt;
&lt;br /&gt;
===Application to AUE===&lt;br /&gt;
And yet, the vast majority of guideline sets, including the most popular rulesets, have been arrived at heuristically.  The most successful, such as Raskin&#039;s and Schneiderman&#039;s, have been forged from years of observation instead of empirical study and experimentation.  The problem is similar to the problem of circular logic faced by automated usability evaluations: an automated system is limited in the suggestions it can offer to a set of preprogrammed guidelines which have often not been subjected to rigorous experimentation.&amp;lt;ref&amp;gt;[http://www.eecs.berkeley.edu/Pubs/TechRpts/2000/CSD-00-1105.pdf Ivory, M and Hearst, M.  &amp;quot;The State of the Art in Automated Usability Evaluation of User Interfaces.&amp;quot; ACM Computing Surveys (CSUR), 2001.]&amp;lt;/ref&amp;gt;  In the vast majority of existing studies, emphasis has traditionally been placed on either the development of guidelines or the application of existing guidelines to automated evaluation.  A mutually-reinforcing development of both simultaneously has not been attempted.&lt;br /&gt;
&lt;br /&gt;
Overlap between rulesets is inevitable and unavoidable.  For our purposes of evaluating existing rulesets efficiently, without extracting and analyzing each rule individually, it may be desirable to identify the the overarching &#039;&#039;principles&#039;&#039; or &#039;&#039;philosophy&#039;&#039; (max. 2 or 3) for a given ruleset and determining their quantitative relevance to problems of cognition.&lt;br /&gt;
&lt;br /&gt;
===Popular and seminal examples===&lt;br /&gt;
Schneiderman&#039;s [http://faculty.washington.edu/jtenenbg/courses/360/f04/sessions/schneidermanGoldenRules.html Eight Golden Rules] date to 1987 and are arguably the most-cited.  They are heuristic, but can be somewhat classified by cognitive objective: at least two rules apply primarily to &#039;&#039;repeated use&#039;&#039;, versus &#039;&#039;discoverability&#039;&#039;.  Up to five of Schneiderman&#039;s rules emphasize &#039;&#039;predictability&#039;&#039; in the outcomes of operations and &#039;&#039;increased feedback and control&#039;&#039; in the agency of the user.  His final rule, paradoxically, removes control from the user by suggesting a reduced short-term memory load, which we can arguably classify as &#039;&#039;simplicity&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Raskin&#039;s [http://www.mprove.de/script/02/raskin/designrules.html Design Rules] are classified into five principles by the author, augmented by definitions and supporting rules.  While one principle is primarily aesthetic (a design problem arguably out of the bounds of this proposal) and one is a basic endorsement of testing, the remaining three begin to reflect philosophies similar to Schneiderman&#039;s: reliability or &#039;&#039;predictability&#039;&#039;, &#039;&#039;simplicity&#039;&#039; or &#039;&#039;efficiency&#039;&#039; (which we can construe as two sides of the same coin), and finally he introduces a concept of &#039;&#039;uninterruptibility&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Maeda&#039;s [http://lawsofsimplicity.com/?cat=5&amp;amp;order=ASC Laws of Simplicity] are fewer, and ostensibly emphasize &#039;&#039;simplicity&#039;&#039; exclusively, although elements of &#039;&#039;use&#039;&#039; as related by Schneiderman&#039;s rules and &#039;&#039;efficiency&#039;&#039; as defined by Raskin may be facets of this simplicity.  Google&#039;s corporate mission statement presents [http://www.google.com/corporate/ux.html Ten Principles], only half of which can be considered true interface guidelines.  &#039;&#039;Efficiency&#039;&#039; and &#039;&#039;simplicity&#039;&#039; are cited explicitly, aesthetics are once again noted as crucial, and working within a user&#039;s trust is another application of &#039;&#039;predictability&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
===Elements and goals of a guideline set===&lt;br /&gt;
Myriad rulesets exist, but variation becomes scarce—it indeed seems possible to parse these common rulesets into overarching principles that can be converted to or associated with quantifiable cognitive properties.  For example, it is likely &#039;&#039;simplicity&#039;&#039; has an analogue in the short-term memory retention or visual retention of the user, vis a vis the rule of [http://books.google.com/books?hl=en&amp;amp;lr=&amp;amp;id=j5q0VvOGExYC&amp;amp;oi=fnd&amp;amp;pg=PA357&amp;amp;dq=seven+plus+or+minus+two&amp;amp;ots=prI3PKJBar&amp;amp;sig=vOZnqpnkXKGYWxK6_XlA4I_CRyI Seven, Plus or Minus Two].  &#039;&#039;Predictability&#039;&#039; likewise may have an analogue in Activity Theory, in regards to a user&#039;s perceptual expectations for a given action; &#039;&#039;uninterruptibility&#039;&#039; has implications in cognitive task-switching;&amp;lt;ref&amp;gt;[http://portal.acm.org/citation.cfm?id=985692.985715&amp;amp;coll=Portal&amp;amp;dl=ACM&amp;amp;CFID=21136843&amp;amp;CFTOKEN=23841774 Czerwinski, Horvitz, and White. &amp;quot;A Diary Study of Task Switching and Interruptions.&amp;quot;  Proceedings of the SIGCHI conference on Human factors in computing systems, 2004.]&amp;lt;/ref&amp;gt; and so forth.&lt;br /&gt;
&lt;br /&gt;
Within the scope of this proposal, we aim to reduce and refine these philosophies found in seminal rulesets and identify their logical cognitive analogues.  By assigning a quantifiable taxonomy to these principles, we will be able to rank and weight them with regard to their real-world applicability, developing a set of &amp;quot;meta-guidelines&amp;quot; and rules for applying them to a given interface in an automated manner.  Combined with cognitive models and multi-modal HCI analysis, we seek to develop, in parallel with these guidelines, the interface evaluation system responsible for their application.&lt;br /&gt;
&lt;br /&gt;
== Perception and Action (in progress) ==&lt;br /&gt;
&lt;br /&gt;
*Information Processing Approach&lt;br /&gt;
**Advantages&lt;br /&gt;
***Formalism eases translation of theory into scripting language&lt;br /&gt;
**Disadvantages&lt;br /&gt;
***Assumes symbolic representation&lt;br /&gt;
&lt;br /&gt;
*Ecological (Gibsonian) Approach&lt;br /&gt;
**Advantages&lt;br /&gt;
***Emphasis on bodily and environmental constraints&lt;br /&gt;
**Disadvantages&lt;br /&gt;
***Lack of formalism hinders translation of theory into scripting language&lt;br /&gt;
&lt;br /&gt;
= Specific Aims and Contributions (to be separated later) =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Specific Aims&#039;&#039;&#039;&lt;br /&gt;
* Incorporate interaction history mechanisms into a set of existing applications.&lt;br /&gt;
* Perform user-study evaluation of history-collection techniques.&lt;br /&gt;
* Distill a set of cognitive principles/models, and evaluate empirically?&lt;br /&gt;
* Build/buy sensing system to include pupil-tracking, muscle-activity monitoring, auditory recognition.&lt;br /&gt;
* Design techniques for manual/semi-automated/automated construction of &amp;lt;insert favorite cognitive model here&amp;gt; from interaction histories and sensing data.&lt;br /&gt;
* Design system for posterior analysis of interaction history w.r.t. &amp;lt;insert favorite cognitive model here&amp;gt;, evaluating critical path &amp;lt;or equivalent&amp;gt; trajectories.&lt;br /&gt;
* Design cognition-based techniques for detecting bottlenecks in critical paths, and offering optimized alternatives. &lt;br /&gt;
* Perform quantitative user-study evaluations, collect qualitative feedback from expert interface designers.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Contributions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Design-space analysis and quantitative evaluation of cognition-based techniques for assessing user interfaces. &lt;br /&gt;
* Design and quantitative evaluation of techniques for suggesting optimized interface-design changes. &lt;br /&gt;
* An extensible, multimodal software architecture for capturing user traces integrated with pupil-tracking data, auditory recognition, and muscle-activity monitoring. &lt;br /&gt;
* (there may be more here, like testing different cognitive models, generating a markup language to represent interfaces, maybe even a unique metric space for interface usability) &lt;br /&gt;
&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
See the [http://vrl.cs.brown.edu/wiki/images/b/b1/Flowchart2.pdf flowchart] for a visual overview of our aims.&lt;br /&gt;
&lt;br /&gt;
In order to use this framework, a designer will have to provide:&lt;br /&gt;
* Functional specification - what are the possible interactions between the user and the application. This can be thought of as method signatures, with a name (e.g., setVolume), direction (to user or from user) and a list of value types (boolean, number, text, video, ...) for each interaction.&lt;br /&gt;
* GUI specification - a mapping of interactions to interface elements (e.g., setVolume is mapped to the grey knob in the bottom left corner with clockwise turning increasing the input number).&lt;br /&gt;
* Functional user traces - sequences of representative ways in which the application is used. Instead of writing them, the designer could have users use the application with a trial interface and then use our methods to generalize the user traces beyond the specific interface (The second method is depicted in the diagram). As a form of pre-processing, the system also generates an interaction transition matrix which lists the probability of each type of interaction given the previous interaction.&lt;br /&gt;
* Utility function - this is a weighting of various performance metrics (time, cognitive load, fatigue, etc.), where the weighting expresses the importance of a particular dimension to the user. For example, a user at NASA probably cares more about interface accuracy than speed. By passing this information to our committee of experts, we can create interfaces that are tuned to maximize the utility of a particular user type.&lt;br /&gt;
&lt;br /&gt;
Each of the modules can use all of this information or a subset of it. Our approach stresses flexibility and the ability to give more meaningful feedback the more information is provided. After processing the information sent by the system of experts, the aggregator will output:&lt;br /&gt;
* An evaluation of the interface. Evaluations are expressed both in terms of the utility function components (i.e. time, fatigue, cognitive load, etc.), and in terms of the overall utility for this interface (as defined by the utility function). These evaluations are given in the form of an efficiency curve, where the utility received on each dimension can change as the user becomes more accustomed to the interface. &lt;br /&gt;
* Suggested improvements for the GUI are also output. These suggestions are meant to optimize the utility function that was input to the system. If a user values accuracy over time, interface suggestions will be made accordingly.&lt;br /&gt;
&lt;br /&gt;
== Recording User-Interaction Primitives ==&lt;br /&gt;
* Owner: [[User:Trevor O&#039;Brien | Trevor O&#039;Brien]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aims&#039;&#039;&#039;&lt;br /&gt;
* Develop system for logging low-level user-interactions within existing applications.  By low-level interactions, we refer to those interactions for which a quantitative, predictive, GOMS-like model may be generated.&lt;br /&gt;
* At the same scale of granularity, integrate explicit interface-interactions with multimodal-sensing data.  i.e. pupil-tracking, muscle-activity monitoring, auditory recognition, EEG data, and facial and posture-focused video. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Contributions&#039;&#039;&#039;&lt;br /&gt;
* Extensible, multimodal, HCI framework for recording rich interaction-history data in existing applications.  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Significance&#039;&#039;&#039;&lt;br /&gt;
* Provide rich history data to serve as the basis for novel quantitative interface evaluation.&lt;br /&gt;
* Aid expert HCI and visual designers in traditional design processes.&lt;br /&gt;
* Provide data for automated machine-learning strategies applied to interaction.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Background and Related Work&#039;&#039;&#039;&lt;br /&gt;
* The utility of interaction histories with respect to assessing interface design has been demonstrated in &amp;lt;ref&amp;gt; [http://www.cs.brown.edu/people/trevor/Papers/Heer-2008-GraphicalHistories.pdf Graphical Histories for Visualization: Supporting Analysis, Communication, and Evaluation] (InfoVis 2008) &amp;lt;/ref&amp;gt;.&lt;br /&gt;
* In addition, data management histories have been shown effective in the visualization community in &amp;lt;ref&amp;gt; [http://www.cs.brown.edu/people/trevor/Papers/Callahan-2006-MED.pdf Callahan-2006-MED] &amp;lt;/ref&amp;gt;  &amp;lt;ref&amp;gt; [http://www.cs.brown.edu/people/trevor/Papers/Callahan-2006-VVM.pdf Callahan-2006-VVM] &amp;lt;/ref&amp;gt; &amp;lt;ref&amp;gt; [http://www.cs.brown.edu/people/trevor/Papers/Bavoil-2005-VEI.pdf Bavoil-2005-VEI]&amp;lt;/ref&amp;gt;, providing visualizations by analogy &amp;lt;ref&amp;gt; [http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&amp;amp;arnumber=4376187&amp;amp;isnumber=4376125 Querying and Creating Visualizations by Analogy] &amp;lt;/ref&amp;gt; and offering automated suggestions &amp;lt;ref&amp;gt; [http://www.cs.utah.edu/~juliana/pub/tvcg-recommendation2008.pdf VisComplete: Automating Suggestions from Visualization Pipelines] &amp;lt;/ref&amp;gt;, which we expect to generalize to user interaction history.&lt;br /&gt;
&lt;br /&gt;
== Semantic-level Interaction Chunking ==&lt;br /&gt;
* Owner: [[User:Trevor O&#039;Brien | Trevor O&#039;Brien]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aims&#039;&#039;&#039;&lt;br /&gt;
* Develop techniques for &#039;&#039;chunking&#039;&#039; low-level interaction primitives into &#039;&#039;semantic-level&#039;&#039; interactions, given an application&#039;s functionality and data-context.  (And de-chunking? Invertible mapping needed?)&lt;br /&gt;
* Perform user-study evaluation to validate chunking methods.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Contributions&#039;&#039;&#039;&lt;br /&gt;
* Design and user-study evaluation of semantic chunking techniques.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Significance&#039;&#039;&#039;&lt;br /&gt;
* Low-level &amp;lt;--&amp;gt; semantic-level mapping allows for cognitive-modeling to be applied at a functionality level, where low-level interaction techniques can be swapped out.  This will allow our interface assessment system to make feasible suggestions for more optimal interface design.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Background and Related Work&#039;&#039;&#039;&lt;br /&gt;
* Chunking interactions has been studied in the HCI community as in &amp;lt;ref&amp;gt; [http://www.cs.brown.edu/people/trevor/Papers/Heer-2008-GraphicalHistories.pdf Graphical Histories for Visualization: Supporting Analysis, Communication, and Evaluation] (InfoVis 2008) &amp;lt;\ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Parallel Framework for Evaluation Modules ==&lt;br /&gt;
* Owner: [[User:Adam Darlow | Adam Darlow]], [[User:Eric Sodomka | Eric Sodomka]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This section will describe in more detail the inputs, outputs and architecture that were presented in the introduction.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Module Inputs (Incomplete) ====&lt;br /&gt;
* A set of utility dimensions {d1, d2, ...} are defined in the framework. These could be {d1=&amp;quot;time&amp;quot;, d2=&amp;quot;fatigue&amp;quot;, ...}&lt;br /&gt;
* A set of interaction functions. These specify all of the information that the application wants to give users or get from them. It is not tied to a specific interface. For example, the fact that an applications shows videos would be included here. Whether it displays them embedded, in a pop-up window or fullscreen would not.&lt;br /&gt;
* A mapping of interaction functions to interface elements (e.g., buttons, windows, dials,...). Lots of optional information describing visual properties, associated text, physical interactions (e.g., turning the dial clockwise increases the input value) and timing.&lt;br /&gt;
* Functional user traces - sequences of interaction functions that represent typical user interactions with the application. Could include a goal hierarchy, in which case the function sequence is at the bottom of the hierarchy.&lt;br /&gt;
&lt;br /&gt;
==== Module Outputs ====&lt;br /&gt;
* Every module ouputs at least one of the following:&lt;br /&gt;
** An evaluation of the interface&lt;br /&gt;
*** This can be on any or all of the utility dimensions, e.g. evaluation={d1=score1, d2=score2, ...}&lt;br /&gt;
*** This can alternately be an overall evaluation, ignoring dimensions, e.g. evaluation={score}&lt;br /&gt;
**** In this case, the aggregator will treat this as the module giving the same score to all dimensions. Which dimension this evaluator actually predicts well on can be learned by the aggregator over time.&lt;br /&gt;
** Recommendation(s) for improving the interface&lt;br /&gt;
***This can be a textual description of what changes the designer should make&lt;br /&gt;
***This can alternately be a transformation that can automatically be applied to the interface language (without designer intervention)&lt;br /&gt;
***In addition to the textual or transformational description of the recommendation, a &amp;quot;change in evaluation&amp;quot; is output to describe how specifically the value will improve the interface&lt;br /&gt;
****Recommendation = {description=&amp;quot;make this change&amp;quot;, Δevaluation={d1=score1, d2=score2, ...}&lt;br /&gt;
****Like before, this Δevaluation can cover any number of dimensions, or it can be generic.&lt;br /&gt;
***Either a single recommendation or a set of recommendations can be output&lt;br /&gt;
&lt;br /&gt;
==== Aggregator Inputs ====&lt;br /&gt;
The aggregator receives as input the outputs of all the modules.&lt;br /&gt;
&lt;br /&gt;
==== Aggregator Outputs ====&lt;br /&gt;
&lt;br /&gt;
Outputs for the aggregator are the same as the outputs for each module. The difference is that the aggregator will consider all the module outputs, and arrive at a merged output based on the past performance of each of the modules.&lt;br /&gt;
&lt;br /&gt;
== Evaluation and Recommendation via Modules ==&lt;br /&gt;
* Owner: [[User:E J Kalafarski | E J Kalafarski]]&lt;br /&gt;
&lt;br /&gt;
A &amp;quot;meta-module&amp;quot; called the aggregator will be responsible for assembling and formatting the output of all other modules into a structure that is both extensible and immediately usable, by both an automated designer or a human designer.&lt;br /&gt;
&lt;br /&gt;
===Requirements===&lt;br /&gt;
The aggregator&#039;s functionality, then, is defined by its &#039;&#039;&#039;inputs&#039;&#039;&#039;, the outputs of the other modules, and the desired &#039;&#039;&#039;output&#039;&#039;&#039; of the system as a whole, per its position in the architecture.  Its purpose is largely formatting and reconciliation of the products of the multitudinous (and extensible) modules.  The output of the aggregator must meet several requirements: first, to generate a set of human-readable suggestions for the improvement of the given interface; second, to generate a machine-readable, but also analyzable, evaluation of the various characteristics of the interface and accompanying user traces.&lt;br /&gt;
&lt;br /&gt;
From these specifications, it is logical to assume that a common language or format will be required for the output of individual modules.  We propose an XML-based file format, allowing: (1) a section for the standardized identification of problem areas, applicable rules, and proposed improvements, generalized by the individual module and mapped to a single element, or group of elements, in the original interface specification; (2) a section for specification of generalizable &amp;quot;utility&amp;quot; functions, allowing a module to specify how much a measurable quantity of utility is positively or negatively affected by properties of the input interface; (3) new, user-definable sections for evaluations of the given interface not covered by the first two sections.  The first two sections are capable of conveying the vast majority of module outputs predicted at this time, but the XML can extensibly allow modules to pass on whatever information may become prominent in the future.&lt;br /&gt;
&lt;br /&gt;
===Specification===&lt;br /&gt;
 &amp;lt;module id=&amp;quot;Fitts-Law&amp;quot;&amp;gt;&lt;br /&gt;
 	&amp;lt;interface-elements&amp;gt;&lt;br /&gt;
 		&amp;lt;element&amp;gt;&lt;br /&gt;
 			&amp;lt;desc&amp;gt;submit button&amp;lt;/desc&amp;gt;&lt;br /&gt;
 			&amp;lt;problem&amp;gt;&lt;br /&gt;
 				&amp;lt;desc&amp;gt;size&amp;lt;/desc&amp;gt;&lt;br /&gt;
 				&amp;lt;suggestion&amp;gt;width *= 2&amp;lt;/suggestion&amp;gt;&lt;br /&gt;
 				&amp;lt;suggetsion&amp;gt;height *= 2&amp;lt;/suggestions&amp;gt;&lt;br /&gt;
 				&amp;lt;human-suggestion&amp;gt;Increase size relative to other elements&amp;lt;/human-suggestion&amp;gt;&lt;br /&gt;
 			&amp;lt;/problem&amp;gt;&lt;br /&gt;
 		&amp;lt;/element&amp;gt;&lt;br /&gt;
 	&amp;lt;/interface-elements&amp;gt;&lt;br /&gt;
 	&amp;lt;utility&amp;gt;&lt;br /&gt;
 		&amp;lt;dimension&amp;gt;&lt;br /&gt;
 			&amp;lt;desc&amp;gt;time&amp;lt;/desc&amp;gt;&lt;br /&gt;
 			&amp;lt;value&amp;gt;0:15:35&amp;lt;/value&amp;gt;&lt;br /&gt;
 		&amp;lt;/dimension&amp;gt;&lt;br /&gt;
 		&amp;lt;dimension&amp;gt;&lt;br /&gt;
 			&amp;lt;desc&amp;gt;frustration&amp;lt;/desc&amp;gt;&lt;br /&gt;
 			&amp;lt;value&amp;gt;pulling hair out&amp;lt;/value&amp;gt;&lt;br /&gt;
 		&amp;lt;/dimension&amp;gt;&lt;br /&gt;
 		&amp;lt;dimension&amp;gt;&lt;br /&gt;
 			&amp;lt;desc&amp;gt;efficiency&amp;lt;/desc&amp;gt;&lt;br /&gt;
 			&amp;lt;value&amp;gt;13.2s/KPM task&amp;lt;/value&amp;gt;&lt;br /&gt;
 			&amp;lt;value&amp;gt;0.56m/CPM task&amp;lt;/value&amp;gt;&lt;br /&gt;
 		&amp;lt;/dimension&amp;gt;&lt;br /&gt;
 	&amp;lt;/utility&amp;gt;&lt;br /&gt;
 	&amp;lt;tasks&amp;gt;&lt;br /&gt;
 		&amp;lt;task&amp;gt;&lt;br /&gt;
 			&amp;lt;desc&amp;gt;complete form&amp;lt;/desc&amp;gt;&lt;br /&gt;
 		&amp;lt;/task&amp;gt;&lt;br /&gt;
 		&amp;lt;task&amp;gt;&lt;br /&gt;
 			&amp;lt;desc&amp;gt;lookup SSN&amp;lt;/desc&amp;gt;&lt;br /&gt;
 		&amp;lt;/task&amp;gt;&lt;br /&gt;
 		&amp;lt;task&amp;gt;&lt;br /&gt;
 			&amp;lt;desc&amp;gt;format phone number&amp;lt;/desc&amp;gt;&lt;br /&gt;
 		&amp;lt;/task&amp;gt;&lt;br /&gt;
 	&amp;lt;/tasks&amp;gt;&lt;br /&gt;
 &amp;lt;/module&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Logic===&lt;br /&gt;
This file provided by each module is then the input for the aggregator.  The aggregator&#039;s most straightforward function is the compilation of the &amp;quot;problem areas,&amp;quot; assembling them and noting problem areas and suggestions that are recommended by more than one module, and weighting them accordingly in its final report.  These weightings can begin in an equal state, but the aggregator should be capable of learning iteratively which modules&#039; results are most relevant to the user and update weightings accordingly.  This may need to be accomplished with manual tuning, or a machine-learning algorithm capable of determining which modules most often agree with others.&lt;br /&gt;
&lt;br /&gt;
Secondly, the aggregator compiles the utility functions provided by the module specs.  This, again, is a summation of similarly-described values from the various modules.&lt;br /&gt;
&lt;br /&gt;
When confronted with user-defined sections of the XML spec, the aggregator is primarily responsible for compiling them and sending them along to the output of the machine.  Even if the aggregator does not recognize a section or property of the evaluative spec, if it sees the property reported by more than one module it should be capable of aggregating these intelligently.  In future versions of the spec, it should be possible for a module to provide instructions for the aggregator on how to handle unrecognized sections of the XML.&lt;br /&gt;
&lt;br /&gt;
From these compilations, then, the aggregator should be capable of outputting both aggregated human-readable suggestions on interface improvements for a human designer, as well as a comprehensive evaluation of the interface&#039;s effectiveness at the given task traces.  Again, this is dependent on the specification of the system as a whole, but is likely to include measures and comparisons, graphings of task versus utility, and quantitative measures of an element&#039;s effectiveness.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This section is necessarily defined by the output of the individual modules (which I already expect to be of varied and arbitrary structure) and the desired output of the machine as a whole.  It will likely need to be revised heavily after other modules and the &amp;quot;Parellel Framework&amp;quot; section are defined.&#039;&#039; [[User:E J Kalafarski|E J Kalafarski]] 12:34, 24 April 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This section describes the aggregator, which takes the output of multiple independent modules and aggregates the results to provide (1) an evaluation and (2) recommendations for the user interface. We should explain how the aggregator weights the output of different modules (this could be based on historical performance of each module, or perhaps based on E.J.&#039;s cognitive/HCI guidelines).&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Sample Modules ==&lt;br /&gt;
&lt;br /&gt;
=== CPM-GOMS ===&lt;br /&gt;
* Owners: [[User:Steven Ellis | Steven Ellis]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This module will provide interface evaluations and suggestions based on a CPM-GOMS model of cognition for the given interface. It will provide a quantitative, predictive, cognition-based parameterization of usability. From empirically collected data, user trajectories through the model (critical paths) will be examined, highlighting bottlenecks within the interface, and offering suggested alterations to the interface to induce more optimal user trajectories.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
I’m hoping to have some input on this section, because it seems to be the crux of the “black box” into which we take the inputs of interface description, user traces, etc. and get our outputs (time, recommendations, etc.).  I know at least a few people have pretty strong thoughts on the matter and we ought to discuss the final structure.&lt;br /&gt;
&lt;br /&gt;
That said – my proposal for the module:&lt;br /&gt;
*In my opinion the concept of the Model Human Processor (at least as applied in CPM) is outdated – it’s too economic/overly parsimonious in its conception of human activity.  I think we need to create a structure which accounts for more realistic conditions of HCI including multitasking, aspects of distributed cognition (and other relevant uses of tools – as far as I can tell CPM doesn’t take into account any sort of productivity aids), executive control processes of attention, etc.  ACT-R appears to take steps towards this but we would probably need to look at their algorithms to know for sure.&lt;br /&gt;
*Critical paths will continue to play an important role – we should in fact emphasize that part of this tool’s purpose will be a description not only of ways in which the interface should be modified to best fit a critical path, but also ways in which the user’s ought to be instructed in their use of the path.  This feedback mechanism could be bidirectional – if the model’s predictions of the user’s goals are incorrect, the critical path determined will also be incorrect and the interface inherently suboptimal.  The user could be prompted with a tooltip explaining in brief why and how the interface has changed, along with options to revert, select other configurations (euphemized by goals), and to view a short video detailing how to properly use the interface.&lt;br /&gt;
*Call me crazy but, if we assume designers will be willing to code a model of their interfaces into our ACT-R-esque language, could we allow that model to be fairly transparent to the user, who could use a gui to input their goals to find an analogue in the program which would subsequently rearrange its interface to fit the user’s needs?  Even if not useful to the users, such dynamic modeling could really help designers (IMO)&lt;br /&gt;
*I think the model should do its best to accept models written for ACT-R and whatever other cognitive models there are out there – gives us the best chance of early adoption&lt;br /&gt;
*I would particularly appreciate input on the number/complexity/type of inputs we’ll be using, as well as the same qualities for the output.&lt;br /&gt;
&lt;br /&gt;
=== HCI Guidelines ===&lt;br /&gt;
* Owner: [[User:E J Kalafarski | E J Kalafarski]]&lt;br /&gt;
&lt;br /&gt;
Schneiderman&#039;s Eight Golden Rules and Jakob Nielsen&#039;s Ten Heuristics are perhaps the most famous and well-regarded heuristic design guidelines to emerge over the last twenty years.  Although the explicit theoretical basis for such heuristics is controversial and not well-explored, the empirical success of these guidelines is established and accepted.  This module will parse out up to three or four common (that is, intersecting) principles from these accepted guidelines and apply them to the input interface.&lt;br /&gt;
&lt;br /&gt;
As an example, we identify an analogous principle that appears in Schneiderman (&amp;quot;Reduce short-term memory load&amp;quot;)&amp;lt;ref&amp;gt;http://faculty.washington.edu/jtenenbg/courses/360/f04/sessions/schneidermanGoldenRules.html&amp;lt;/ref&amp;gt; and Nielsen (&amp;quot;Recognition rather than recall/Minimize the user&#039;s memory load&amp;quot;)&amp;lt;ref&amp;gt;http://www.useit.com/papers/heuristic/heuristic_list.html&amp;lt;/ref&amp;gt;.  The input interface is then evaluated for the consideration of the principle, based on an explicit formal description of the interface, such as XAML or XUL.  The module attempts to determine how effectively the interface demonstrates the principle.  When analyzing an interface for several principles that may be conflicting or opposing in a given context, the module makes use of a hard-coded but iterative (and evolving) weighting of these principles, based on (1) how often they appear in the training set of accepted sets of guidelines, (2) how analogues a heuristic principle is to a cognitive principle in a parallel training set, and (3) how effective the principle&#039;s associated suggestion is found to be using a feedback mechanism.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inputs&#039;&#039;&#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
# A formal description of the interface and its elements (e.g. buttons).&lt;br /&gt;
# A formal description of a particular task and the possible paths through a subset of interface elements that permit the user to accomplish that task.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Output&#039;&#039;&#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
Standard XML-formatted file containing problem areas of the input interface, suggestions for each problem area based on principles that were found to have a strong application to a problem element and the problem itself, and a human-readable generated analysis of the element&#039;s affinity for the principle.  Quantitative outputs will not be possible based on heuristic guidelines, and the &amp;quot;utility&amp;quot; section of this module&#039;s output is likely to be blank.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This section could include an example or two of established design guidelines that could easily be implemented as modules.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Fitts&#039;s Law ===&lt;br /&gt;
* Owner: [[User:Jon Ericson | Jon Ericson]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This module provides an estimate of the required time to complete various tasks that have been decomposed into formalized sequences of interactions with interface elements, and will provide evaluations and recommendations for optimizing the time required to complete those tasks using the interface.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1. A formal description of the interface and its elements (e.g. buttons).&lt;br /&gt;
&lt;br /&gt;
2. A formal description of a particular task and the possible paths through a subset of interface elements that permit the user to accomplish that task.&lt;br /&gt;
&lt;br /&gt;
3. The physical distances between interface elements along those paths.&lt;br /&gt;
&lt;br /&gt;
4. The width of those elements along the most likely axes of motion.&lt;br /&gt;
&lt;br /&gt;
5. Device (e.g. mouse) characteristics including start/stop time and the inherent speed limitations of the device.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Output&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The module will then use the Shannon formulation of Fitt&#039;s Law to compute the average time needed to complete the task along those paths.&lt;br /&gt;
&lt;br /&gt;
=== Affordances ===&lt;br /&gt;
* Owner: [[User:Jon Ericson | Jon Ericson]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This simple module will provide interface evaluations and recommendations based on a measure of the extent to which the user perceives the relevant affordances of the interface when performing a number of specified tasks.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inputs&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Formalized descriptions of...&lt;br /&gt;
&lt;br /&gt;
1. Interface elements&lt;br /&gt;
&lt;br /&gt;
2. Their associated actions&lt;br /&gt;
&lt;br /&gt;
3. The functions of those actions&lt;br /&gt;
&lt;br /&gt;
4. A particular task&lt;br /&gt;
&lt;br /&gt;
5. User traces for that task.  &lt;br /&gt;
&lt;br /&gt;
Inputs (1-4) are then used to generate a &amp;quot;user-independent&amp;quot; space of possible functions that the interface is capable of performing with respect to a given task -- what the interface &amp;quot;affords&amp;quot; the user.  From this set of possible interactions, our model will then determine the subset of optimal paths for performing a particular task.  The user trace (5) is then used to determine what functions actually were performed in the course of a given task of interest and this information is then compared to the optimal path data to determine the extent to which affordances of the interface are present but not perceived.  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Output&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The output of this module is a simple ratio of (affordances perceived) / [(relevant affordances present) * (time to complete task)] which provides a quantitative measure of the extent to which the interface is &amp;quot;natural&amp;quot; to use for a particular task.&lt;br /&gt;
&lt;br /&gt;
=== Workflow, Multi-tasking and Interruptions ===&lt;br /&gt;
* Owner: [[User:Andrew Bragdon | Andrew Bragdon]]&lt;br /&gt;
&lt;br /&gt;
There are, at least, two levels at which users work ([http://portal.acm.org/citation.cfm?id=985692.985707&amp;amp;coll=portal&amp;amp;dl=ACM&amp;amp;CFID=20781736&amp;amp;CFTOKEN=83176621 Gonzales, et al., 2004]).  Users accomplish individual low-level tasks which are part of larger &#039;&#039;working spheres&#039;&#039;; for example, an office worker might send several emails, create several Post-It (TM) note reminders, and then edit a word document, each of these smaller tasks being part of a single larger working sphere of &amp;quot;adding a new section to the website.&amp;quot;  Thus, it is important to understand this larger workflow context - which often involves extensive levels of multi-tasking, as well as switching between a variety of computing devices and traditional tools, such as notebooks.  In this study it was found that the information workers surveyed typically switch individual tasks every 2 minutes and have many simultaneous working spheres which they switch between, on average every 12 minutes.  This frenzied pace of switching tasks and switching working spheres suggests that users will not be using a single application or device for a long period of time, and that affordances to support this characteristic pattern of information work are important.&lt;br /&gt;
&lt;br /&gt;
The purpose of this module is to integrate existing work on multi-tasking, interruption and higher-level workflow into a framework which can predict user recovery times from interruptions.  Specifically, the goals of this framework will be to:&lt;br /&gt;
&lt;br /&gt;
* Understand the role of the larger workflow context in user interfaces&lt;br /&gt;
* Understand the impact of interruptions on user workflow&lt;br /&gt;
* Understand how to design software which fits into the larger working spheres in which information work takes place&lt;br /&gt;
&lt;br /&gt;
It is important to point out that because workflow and multi-tasking rely heavily on higher-level brain functioning, it is unrealistic within the scope of this grant to propose a system which can predict user performance given a description of a set of arbitrary software programs.  Therefore, we believe this module will function much more in a qualitative role to provide context to the rest of the model.  Specifically, our findings related to interruption and multi-tasking will advance the basic research question of &amp;quot;how do you users react to interruptions when using working sets of varying sizes?&amp;quot;.  This core HCI contribution will help to inform the rest of the outputs of the model in a qualitative manner.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
N/A&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Outputs&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
N/A&lt;br /&gt;
&lt;br /&gt;
=== Working Memory Load ===&lt;br /&gt;
* Owner: [[User:Gideon Goldin | Gideon Goldin]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This module measures how much information the user needs to retain in memory while interacting with the interface and makes suggestions for improvements.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Models&lt;br /&gt;
** Beddeley&#039;s Model of Working Memory&amp;lt;ref&amp;gt;http://en.wikipedia.org/wiki/Baddeley%27s_model_of_working_memory&amp;lt;/ref&amp;gt;&lt;br /&gt;
*** Episodic Buffer&lt;br /&gt;
** George Miller&#039;s &amp;quot;The magic number 7 plus or minus 2&amp;quot;&amp;lt;ref&amp;gt;http://en.wikipedia.org/wiki/The_Magical_Number_Seven,_Plus_or_Minus_Two&amp;lt;/ref&amp;gt;&lt;br /&gt;
** The magic number 4&amp;lt;ref&amp;gt;Cowan, N. (2001). The magical number 4 in short-term memory: A reconsideration of mental storage capacity. Behavioral and Brain Sciences, 24, 87-185.&amp;lt;/ref&amp;gt;&lt;br /&gt;
* Chunking&amp;lt;ref&amp;gt;http://en.wikipedia.org/wiki/Chunking_(psychology)&amp;lt;/ref&amp;gt;&lt;br /&gt;
* Priming&amp;lt;ref&amp;gt;http://en.wikipedia.org/wiki/Priming_(psychology)&amp;lt;/ref&amp;gt;&lt;br /&gt;
* Subitizing and Counting&amp;lt;ref&amp;gt;http://en.wikipedia.org/wiki/Subitizing&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
* Visual Stimuli&lt;br /&gt;
* Audio Stimuli&lt;br /&gt;
&#039;&#039;&#039;Outputs&#039;&#039;&#039;&lt;br /&gt;
* Remembered percepts&lt;br /&gt;
* Half-Life of percepts&lt;br /&gt;
&lt;br /&gt;
=== Automaticity of Interaction ===&lt;br /&gt;
* Owner: [[User:Gideon Goldin | Gideon Goldin]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Measures how easily the interaction with the interface becomes automatic with experience and makes suggestions for improvements.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Learning&amp;lt;ref&amp;gt;http://en.wikipedia.org/wiki/Learning#Mathematical_models_of_learning&amp;lt;/ref&amp;gt;&lt;br /&gt;
** Logan&#039;s instance theory of automatization&amp;lt;ref&amp;gt;http://74.125.95.132/search?q=cache:IZ-Zccsu3SEJ:psych.wisc.edu/ugstudies/psych733/logan_1988.pdf+logan+isntance+teory&amp;amp;cd=1&amp;amp;hl=en&amp;amp;ct=clnk&amp;amp;gl=us&amp;amp;client=firefox-a&amp;lt;/ref&amp;gt;&lt;br /&gt;
* Fluency&lt;br /&gt;
** As meta-cognitive information &amp;lt;ref&amp;gt;http://www.sciencedirect.com/science?_ob=ArticleURL&amp;amp;_udi=B6VH9-4SM7PFK-4&amp;amp;_user=10&amp;amp;_rdoc=1&amp;amp;_fmt=&amp;amp;_orig=search&amp;amp;_sort=d&amp;amp;view=c&amp;amp;_acct=C000050221&amp;amp;_version=1&amp;amp;_urlVersion=0&amp;amp;_userid=10&amp;amp;md5=10cd279fa80958981fcc3c06684c09af&amp;lt;/ref&amp;gt;&lt;br /&gt;
** As a cognitive &#039;&#039;heuristic&#039;&#039;&amp;lt;ref&amp;gt;http://en.wikipedia.org/wiki/Fluency_heuristic&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
* Interface&lt;br /&gt;
* User goals&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Outputs&#039;&#039;&#039;&lt;br /&gt;
* Learning curve&lt;br /&gt;
&lt;br /&gt;
== Integration into the Design Process ==&lt;br /&gt;
* Owner: [[User:Ian Spector | Ian Spector]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This section outlines the process of designing an HCI interface and at what stages our proposal fits in and how.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Preliminary Results =&lt;br /&gt;
&lt;br /&gt;
===Workflow, Multi-tasking, and Interruption===&lt;br /&gt;
&lt;br /&gt;
====I.  &#039;&#039;&#039;Goals&#039;&#039;&#039;====&lt;br /&gt;
&lt;br /&gt;
The goals of the preliminary work are to gain qualitative insight into how information workers practice metawork, and to determine whether people might be better-supported with software which facillitates metawork and interruptions.  Thus, the preliminary work should investigate, and demonstrate, the need and impact of the core goals of the project.&lt;br /&gt;
&lt;br /&gt;
====II.  &#039;&#039;&#039;Methodology&#039;&#039;&#039;====&lt;br /&gt;
&lt;br /&gt;
Seven information workers, ages 20-38 (5 male, 2 female), were interviewed to determine which methods they use to &amp;quot;stay organized&amp;quot;.  An initial list of metawork strategies was established from two pilot interviews, and then a final list was compiled.  Participants then responded to a series of 17 questions designed to gain insight into their metawork strategies and process.  In addition, verbal interviews were conducted to get additional open-ended feedback.&lt;br /&gt;
&lt;br /&gt;
====III.  &#039;&#039;&#039;Final Results&#039;&#039;&#039;====&lt;br /&gt;
A histogram of methods people use to &amp;quot;stay organized&amp;quot; in terms of tracking things they need to do (TODOs), appointments and meetings, etc. is shown in the figure below.&lt;br /&gt;
&lt;br /&gt;
[[Image:AcbGraph.jpg]]&lt;br /&gt;
&lt;br /&gt;
In addition to these methods, participants also used a number of other methods, including:&lt;br /&gt;
&lt;br /&gt;
* iCal&lt;br /&gt;
* Notes written in xterms&lt;br /&gt;
* &amp;quot;Inbox zero&amp;quot; method of email organization&lt;br /&gt;
* iGoogle Notepad (for tasks)&lt;br /&gt;
* Tag emails as &amp;quot;TODO&amp;quot;, &amp;quot;Important&amp;quot;, etc.&lt;br /&gt;
* Things (Organizer Software)&lt;br /&gt;
* Physical items placed to &amp;quot;remind me of things&amp;quot;&lt;br /&gt;
* Sometimes arranging windows on desk&lt;br /&gt;
* Keeping browser tabs open&lt;br /&gt;
* Bookmarking web pages&lt;br /&gt;
* Keep programs/files open scrolled to certain locations sometimes with things selected&lt;br /&gt;
&lt;br /&gt;
In addition, three participants said that when interrupted they &amp;quot;rarely&amp;quot; or &amp;quot;very rarely&amp;quot; were able to resume the task they were working on prior to the interruption.  Three of the participants said that they would not actively recommend their metawork strategies for other people, and two said that staying organized was &amp;quot;difficult&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Four participants were neutral to the idea of new tools to help them stay organized and three said that they would like to have such a tool/tools.&lt;br /&gt;
&lt;br /&gt;
====IV.  &#039;&#039;&#039;Discussion&#039;&#039;&#039;====&lt;br /&gt;
These results qunatiatively support our hypothesis that there is no clearly dominant set of metawork strategies employed by information workers.  This highly fragemented landscape is surprising, even though most information workers work in a similar environment - at a desk, on the phone, in meetings - and with the same types of tools - computers, pens, paper, etc.  We believe that this suggests that there are complex tradeoffs between these methods and that no single method is sufficient.  We therefore believe that users will be better supported with a new set of software-based metawork tools.&lt;br /&gt;
&lt;br /&gt;
= [Criticisms] =&lt;br /&gt;
* Owner: [[User:Andrew Bragdon | Andrew Bragdon]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Any criticisms or questions we have regarding the proposal can go here.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=References=&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Trevor O&#039;Brien</name></author>
	</entry>
	<entry>
		<id>http://vrl.cs.brown.edu/wiki/index.php?title=CS295J/Research_proposal_(draft_2)&amp;diff=3168</id>
		<title>CS295J/Research proposal (draft 2)</title>
		<link rel="alternate" type="text/html" href="http://vrl.cs.brown.edu/wiki/index.php?title=CS295J/Research_proposal_(draft_2)&amp;diff=3168"/>
		<updated>2009-04-24T16:52:28Z</updated>

		<summary type="html">&lt;p&gt;Trevor O&amp;#039;Brien: /* Recording User-Interaction Primitives */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
* Owners: [[User:Adam Darlow | Adam Darlow]], [[User:Eric Sodomka | Eric Sodomka]], [[User: Trevor O&#039;Brien | Trevor]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Propose:&#039;&#039;&#039; The design, application and evaluation of a novel, cognition-based, computational framework for assessing interface design and providing automated suggestions to optimize usability.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Evaluation Methodology:&#039;&#039;&#039;  Our techniques will be evaluated quantitatively through a series of user-study trials, as well as qualitatively by a team of expert interface designers. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Contributions and Significance:&#039;&#039;&#039;  We expect this work to make the following contributions:  &lt;br /&gt;
# design-space analysis and quantitative evaluation of cognition-based techniques for assessing user interfaces.  &lt;br /&gt;
# design and quantitative evaluation of techniques for suggesting optimized interface-design changes. &lt;br /&gt;
# an extensible, multimodal software architecture for capturing user traces integrated with pupil-tracking data, auditory recognition, and muscle-activity monitoring.  &lt;br /&gt;
# specification (language?) of how to define an interface evaluation module and how to integrate it into a larger system.  &lt;br /&gt;
# (there may be more here, like testing different cognitive models, generating a markup language to represent interfaces, maybe even a unique metric space for interface usability)&lt;br /&gt;
&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
We propose a framework for interface evaluation and recommendation that integrates behavioral models and design guidelines from both cognitive science and HCI. Our framework behaves like a committee of specialized experts, where each expert provides its own assessment of the interface, given its particular knowledge of HCI or cognitive science. For example, an expert may provide an evaluation based on the GOMS method, Fitts&#039;s law, Maeda&#039;s design principles, or cognitive models of learning and memory. An aggregator collects all of these assessments and weights the opinions of each expert, and outputs to the developer a merged evaluation score and a weighted set of recommendations.&lt;br /&gt;
&lt;br /&gt;
Systematic methods of estimating human performance with computer interfaces are used only sparsely despite their obvious benefits, the reason being the overhead involved in implementing them. In order to test an interface, both manual coding systems like the GOMS variations and user simulations like those based on ACT-R/PM and EPIC require detailed pseudo-code descriptions of the user workflow with the application interface. Any change to the interface then requires extensive changes to the pseudo-code, a major problem because of the trial-and-error nature of interface design. Updating the models themselves is even more complicated. Even an expert in CPM-GOMS, for example, can&#039;t necessarily adapt it to take into account results from new cognitive research.&lt;br /&gt;
&lt;br /&gt;
Our proposal makes automatic interface evaluation easier to use in several ways. First of all, we propose to divide the input to the system into three separate parts, functionality, user traces and interface. By separating the functionality from the interface, even radical interface changes will require updating only that part of the input. The user traces are also defined over the functionality so that they too translate across different interfaces. Second, the parallel modular architecture allows for a lower &amp;quot;entry cost&amp;quot; for using the tool. The system includes a broad array of evaluation modules some of which are very simple and some more complex. The simpler modules use only a subset of the input that a system like GOMS or ACT-R would require. This means that while more input will still lead to better output, interface designers can get minimal evaluations with only minimal information. For example, a visual search module may not require any functionality or user traces in order to determine whether all interface elements are distinct enough to be easy to find. Finally, a parallel modular architecture is much easier to augment with relevant cognitive and design evaluations.&lt;br /&gt;
&lt;br /&gt;
= Background / Related Work =&lt;br /&gt;
&lt;br /&gt;
Each person should add the background related to their specific aims.&lt;br /&gt;
&lt;br /&gt;
* Steven Ellis - Cognitive models of HCI, including GOMS variations and ACT-R&lt;br /&gt;
* EJ - Design Guidelines&lt;br /&gt;
* Jon - Perception and Action&lt;br /&gt;
* Andrew - Multiple task environments&lt;br /&gt;
* Gideon - Cognition and dual systems&lt;br /&gt;
* Ian - Interface design process&lt;br /&gt;
* Trevor - User trace collection methods (especially any eye-tracking, EEG, ... you want to suggest using)&lt;br /&gt;
&lt;br /&gt;
== Cognitive Models ==&lt;br /&gt;
I plan to port over most of the background on cognitive models of HCI from the old proposal&lt;br /&gt;
&lt;br /&gt;
Additions will comprise of:&lt;br /&gt;
*CPM-GOMS as a bridge from GOMS architecture to the promising procedural optimization of the Model Human Processor&lt;br /&gt;
**Context of CPM development, discuss its relation to original GOMS and KLM&lt;br /&gt;
***Establish the tasks which were relevant for optimization when CPM was developed and note that its obsolescence may have been unavoidable&lt;br /&gt;
**Focus on CPM as the first step in transitioning from descriptive data, provided by mounting efforts in the cognitive sciences realm to discover the nature of task processing and accomplishment, to prescriptive algorithms which can predict an interface’s efficiency and suggest improvements&lt;br /&gt;
**CPM’s purpose as an abstraction of cognitive processing – a symbolic representation not designed for accuracy but precision&lt;br /&gt;
**CPM’s successful trials, e.g. Ernestine&lt;br /&gt;
***Implications of this project include CPM’s ability to accurately estimate processing at a psychomotor level&lt;br /&gt;
***Project does suggest limitations, however, when one attempts to examine more complex tasks which involve deeper and more numerous cognitive processes&lt;br /&gt;
*ACT-R as an example of a progressive cognitive modeling tool&lt;br /&gt;
**A tool clearly built by and for cognitive scientists, and as a result presents a much more accurate view of human processing – helpful for our research&lt;br /&gt;
**Built-in automation, which now seems to be a standard feature of cognitive modeling tools&lt;br /&gt;
**Still an abstraction of cognitive processing, but makes adaptation to cutting-edge cognitive research findings an integral aspect of its modular structure&lt;br /&gt;
**Expand on its focus on multi-tasking, taking what was a huge advance between GOMS and its CPM variation and bringing the simulation several steps closer to approximating the nature of cognition in regards to HCI&lt;br /&gt;
**Far more accessible both for researchers and the lay user/designer in its portability to LISP, pre-construction of modules representing cognitive capacities and underlying algorithms modeling paths of cognitive processing&lt;br /&gt;
&lt;br /&gt;
==Design guidelines==&lt;br /&gt;
A multitude of rule sets exist for the design of not only interface, but architecture, city planning, and software development.  They can range in scale from one primary rule to as many Christopher Alexander&#039;s 253 rules for urban environments,&amp;lt;ref&amp;gt;[http://hci.rwth-aachen.de/materials/publications/borchers2000a.pdf Borchers, Jan O.  &amp;quot;A Pattern Approach to Interaction Design.&amp;quot;  2000.]&amp;lt;/ref&amp;gt; which he introduced with the concept design patterns in the 1970s.  Study has likewise been conducted on the use of these rules:&amp;lt;ref&amp;gt;http://stl.cs.queensu.ca/~graham/cisc836/lectures/readings/tetzlaff-guidelines.pdf&amp;lt;/ref&amp;gt; guidelines are often only partially understood, indistinct to the developer, and &amp;quot;fraught&amp;quot; with potential usability problems given a real-world situation.&lt;br /&gt;
&lt;br /&gt;
===Application to AUE===&lt;br /&gt;
And yet, the vast majority of guideline sets, including the most popular rulesets, have been arrived at heuristically.  The most successful, such as Raskin&#039;s and Schneiderman&#039;s, have been forged from years of observation instead of empirical study and experimentation.  The problem is similar to the problem of circular logic faced by automated usability evaluations: an automated system is limited in the suggestions it can offer to a set of preprogrammed guidelines which have often not been subjected to rigorous experimentation.&amp;lt;ref&amp;gt;[http://www.eecs.berkeley.edu/Pubs/TechRpts/2000/CSD-00-1105.pdf Ivory, M and Hearst, M.  &amp;quot;The State of the Art in Automated Usability Evaluation of User Interfaces.&amp;quot; ACM Computing Surveys (CSUR), 2001.]&amp;lt;/ref&amp;gt;  In the vast majority of existing studies, emphasis has traditionally been placed on either the development of guidelines or the application of existing guidelines to automated evaluation.  A mutually-reinforcing development of both simultaneously has not been attempted.&lt;br /&gt;
&lt;br /&gt;
Overlap between rulesets is inevitable and unavoidable.  For our purposes of evaluating existing rulesets efficiently, without extracting and analyzing each rule individually, it may be desirable to identify the the overarching &#039;&#039;principles&#039;&#039; or &#039;&#039;philosophy&#039;&#039; (max. 2 or 3) for a given ruleset and determining their quantitative relevance to problems of cognition.&lt;br /&gt;
&lt;br /&gt;
===Popular and seminal examples===&lt;br /&gt;
Schneiderman&#039;s [http://faculty.washington.edu/jtenenbg/courses/360/f04/sessions/schneidermanGoldenRules.html Eight Golden Rules] date to 1987 and are arguably the most-cited.  They are heuristic, but can be somewhat classified by cognitive objective: at least two rules apply primarily to &#039;&#039;repeated use&#039;&#039;, versus &#039;&#039;discoverability&#039;&#039;.  Up to five of Schneiderman&#039;s rules emphasize &#039;&#039;predictability&#039;&#039; in the outcomes of operations and &#039;&#039;increased feedback and control&#039;&#039; in the agency of the user.  His final rule, paradoxically, removes control from the user by suggesting a reduced short-term memory load, which we can arguably classify as &#039;&#039;simplicity&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Raskin&#039;s [http://www.mprove.de/script/02/raskin/designrules.html Design Rules] are classified into five principles by the author, augmented by definitions and supporting rules.  While one principle is primarily aesthetic (a design problem arguably out of the bounds of this proposal) and one is a basic endorsement of testing, the remaining three begin to reflect philosophies similar to Schneiderman&#039;s: reliability or &#039;&#039;predictability&#039;&#039;, &#039;&#039;simplicity&#039;&#039; or &#039;&#039;efficiency&#039;&#039; (which we can construe as two sides of the same coin), and finally he introduces a concept of &#039;&#039;uninterruptibility&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Maeda&#039;s [http://lawsofsimplicity.com/?cat=5&amp;amp;order=ASC Laws of Simplicity] are fewer, and ostensibly emphasize &#039;&#039;simplicity&#039;&#039; exclusively, although elements of &#039;&#039;use&#039;&#039; as related by Schneiderman&#039;s rules and &#039;&#039;efficiency&#039;&#039; as defined by Raskin may be facets of this simplicity.  Google&#039;s corporate mission statement presents [http://www.google.com/corporate/ux.html Ten Principles], only half of which can be considered true interface guidelines.  &#039;&#039;Efficiency&#039;&#039; and &#039;&#039;simplicity&#039;&#039; are cited explicitly, aesthetics are once again noted as crucial, and working within a user&#039;s trust is another application of &#039;&#039;predictability&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
===Elements and goals of a guideline set===&lt;br /&gt;
Myriad rulesets exist, but variation becomes scarce—it indeed seems possible to parse these common rulesets into overarching principles that can be converted to or associated with quantifiable cognitive properties.  For example, it is likely &#039;&#039;simplicity&#039;&#039; has an analogue in the short-term memory retention or visual retention of the user, vis a vis the rule of [http://books.google.com/books?hl=en&amp;amp;lr=&amp;amp;id=j5q0VvOGExYC&amp;amp;oi=fnd&amp;amp;pg=PA357&amp;amp;dq=seven+plus+or+minus+two&amp;amp;ots=prI3PKJBar&amp;amp;sig=vOZnqpnkXKGYWxK6_XlA4I_CRyI Seven, Plus or Minus Two].  &#039;&#039;Predictability&#039;&#039; likewise may have an analogue in Activity Theory, in regards to a user&#039;s perceptual expectations for a given action; &#039;&#039;uninterruptibility&#039;&#039; has implications in cognitive task-switching;&amp;lt;ref&amp;gt;[http://portal.acm.org/citation.cfm?id=985692.985715&amp;amp;coll=Portal&amp;amp;dl=ACM&amp;amp;CFID=21136843&amp;amp;CFTOKEN=23841774 Czerwinski, Horvitz, and White. &amp;quot;A Diary Study of Task Switching and Interruptions.&amp;quot;  Proceedings of the SIGCHI conference on Human factors in computing systems, 2004.]&amp;lt;/ref&amp;gt; and so forth.&lt;br /&gt;
&lt;br /&gt;
Within the scope of this proposal, we aim to reduce and refine these philosophies found in seminal rulesets and identify their logical cognitive analogues.  By assigning a quantifiable taxonomy to these principles, we will be able to rank and weight them with regard to their real-world applicability, developing a set of &amp;quot;meta-guidelines&amp;quot; and rules for applying them to a given interface in an automated manner.  Combined with cognitive models and multi-modal HCI analysis, we seek to develop, in parallel with these guidelines, the interface evaluation system responsible for their application.&lt;br /&gt;
&lt;br /&gt;
== Perception and Action (in progress) ==&lt;br /&gt;
&lt;br /&gt;
*Information Processing Approach&lt;br /&gt;
**Advantages&lt;br /&gt;
***Formalism eases translation of theory into scripting language&lt;br /&gt;
**Disadvantages&lt;br /&gt;
***Assumes symbolic representation&lt;br /&gt;
&lt;br /&gt;
*Ecological (Gibsonian) Approach&lt;br /&gt;
**Advantages&lt;br /&gt;
***Emphasis on bodily and environmental constraints&lt;br /&gt;
**Disadvantages&lt;br /&gt;
***Lack of formalism hinders translation of theory into scripting language&lt;br /&gt;
&lt;br /&gt;
= Specific Aims and Contributions (to be separated later) =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Specific Aims&#039;&#039;&#039;&lt;br /&gt;
* Incorporate interaction history mechanisms into a set of existing applications.&lt;br /&gt;
* Perform user-study evaluation of history-collection techniques.&lt;br /&gt;
* Distill a set of cognitive principles/models, and evaluate empirically?&lt;br /&gt;
* Build/buy sensing system to include pupil-tracking, muscle-activity monitoring, auditory recognition.&lt;br /&gt;
* Design techniques for manual/semi-automated/automated construction of &amp;lt;insert favorite cognitive model here&amp;gt; from interaction histories and sensing data.&lt;br /&gt;
* Design system for posterior analysis of interaction history w.r.t. &amp;lt;insert favorite cognitive model here&amp;gt;, evaluating critical path &amp;lt;or equivalent&amp;gt; trajectories.&lt;br /&gt;
* Design cognition-based techniques for detecting bottlenecks in critical paths, and offering optimized alternatives. &lt;br /&gt;
* Perform quantitative user-study evaluations, collect qualitative feedback from expert interface designers.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Contributions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Design-space analysis and quantitative evaluation of cognition-based techniques for assessing user interfaces. &lt;br /&gt;
* Design and quantitative evaluation of techniques for suggesting optimized interface-design changes. &lt;br /&gt;
* An extensible, multimodal software architecture for capturing user traces integrated with pupil-tracking data, auditory recognition, and muscle-activity monitoring. &lt;br /&gt;
* (there may be more here, like testing different cognitive models, generating a markup language to represent interfaces, maybe even a unique metric space for interface usability) &lt;br /&gt;
&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
See the [http://vrl.cs.brown.edu/wiki/images/b/b1/Flowchart2.pdf flowchart] for a visual overview of our aims.&lt;br /&gt;
&lt;br /&gt;
In order to use this framework, a designer will have to provide:&lt;br /&gt;
* Functional specification - what are the possible interactions between the user and the application. This can be thought of as method signatures, with a name (e.g., setVolume), direction (to user or from user) and a list of value types (boolean, number, text, video, ...) for each interaction.&lt;br /&gt;
* GUI specification - a mapping of interactions to interface elements (e.g., setVolume is mapped to the grey knob in the bottom left corner with clockwise turning increasing the input number).&lt;br /&gt;
* Functional user traces - sequences of representative ways in which the application is used. Instead of writing them, the designer could have users use the application with a trial interface and then use our methods to generalize the user traces beyond the specific interface (The second method is depicted in the diagram). As a form of pre-processing, the system also generates an interaction transition matrix which lists the probability of each type of interaction given the previous interaction.&lt;br /&gt;
* Utility function - this is a weighting of various performance metrics (time, cognitive load, fatigue, etc.), where the weighting expresses the importance of a particular dimension to the user. For example, a user at NASA probably cares more about interface accuracy than speed. By passing this information to our committee of experts, we can create interfaces that are tuned to maximize the utility of a particular user type.&lt;br /&gt;
&lt;br /&gt;
Each of the modules can use all of this information or a subset of it. Our approach stresses flexibility and the ability to give more meaningful feedback the more information is provided. After processing the information sent by the system of experts, the aggregator will output:&lt;br /&gt;
* An evaluation of the interface. Evaluations are expressed both in terms of the utility function components (i.e. time, fatigue, cognitive load, etc.), and in terms of the overall utility for this interface (as defined by the utility function). These evaluations are given in the form of an efficiency curve, where the utility received on each dimension can change as the user becomes more accustomed to the interface. &lt;br /&gt;
* Suggested improvements for the GUI are also output. These suggestions are meant to optimize the utility function that was input to the system. If a user values accuracy over time, interface suggestions will be made accordingly.&lt;br /&gt;
&lt;br /&gt;
== Recording User-Interaction Primitives ==&lt;br /&gt;
* Owner: [[User:Trevor O&#039;Brien | Trevor O&#039;Brien]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aims&#039;&#039;&#039;&lt;br /&gt;
* Develop system for logging low-level user-interactions within existing applications.  By low-level interactions, we refer to those interactions for which a quantitative, predictive, GOMS-like model may be generated.&lt;br /&gt;
* At the same scale of granularity, integrate explicit interface-interactions with multimodal-sensing data.  i.e. pupil-tracking, muscle-activity monitoring, auditory recognition, EEG data, and facial and posture-focused video. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Contributions&#039;&#039;&#039;&lt;br /&gt;
* Extensible, multimodal, HCI framework for recording rich interaction-history data in existing applications.  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Significance&#039;&#039;&#039;&lt;br /&gt;
* Provide rich history data to serve as the basis for novel quantitative interface evaluation.&lt;br /&gt;
* Aid expert HCI and visual designers in traditional design processes.&lt;br /&gt;
* Provide data for automated machine-learning strategies applied to interaction.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Background and Related Work&#039;&#039;&#039;&lt;br /&gt;
* The utility of interaction histories with respect to assessing interface design has been demonstrated in &amp;lt;ref&amp;gt; [http://www.cs.brown.edu/people/trevor/Papers/Heer-2008-GraphicalHistories.pdf Graphical Histories for Visualization: Supporting Analysis, Communication, and Evaluation] (InfoVis 2008) &amp;lt;/ref&amp;gt;.&lt;br /&gt;
* In addition, data management histories have been shown effective in the visualization community in &amp;lt;ref&amp;gt; [http://www.cs.brown.edu/people/trevor/Papers/Callahan-2006-MED.pdf Callahan-2006-MED] &amp;lt;/ref&amp;gt;  &amp;lt;ref&amp;gt; [http://www.cs.brown.edu/people/trevor/Papers/Callahan-2006-VVM.pdf Callahan-2006-VVM] &amp;lt;/ref&amp;gt; &amp;lt;ref&amp;gt; [http://www.cs.brown.edu/people/trevor/Papers/Bavoil-2005-VEI.pdf Bavoil-2005-VEI]&amp;lt;/ref&amp;gt;, providing visualizations by analogy &amp;lt;ref&amp;gt; [http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&amp;amp;arnumber=4376187&amp;amp;isnumber=4376125 Querying and Creating Visualizations by Analogy] &amp;lt;/ref&amp;gt; and offering automated suggestions &amp;lt;ref&amp;gt; [http://www.cs.utah.edu/~juliana/pub/tvcg-recommendation2008.pdf VisComplete: Automating Suggestions from Visualization Pipelines] &amp;lt;/ref&amp;gt;, which we expect to generalize to user interaction history.&lt;br /&gt;
&lt;br /&gt;
== Semantic-level Interaction Chunking ==&lt;br /&gt;
* Owner: [[User:Trevor O&#039;Brien | Trevor O&#039;Brien]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aims&#039;&#039;&#039;&lt;br /&gt;
* Develop techniques for &#039;&#039;chunking&#039;&#039; low-level interaction primitives into &#039;&#039;semantic-level&#039;&#039; interactions, given an application&#039;s functionality and data-context.  (And de-chunking? Invertible mapping needed?)&lt;br /&gt;
* Perform user-study evaluation to validate chunking methods.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Contributions&#039;&#039;&#039;&lt;br /&gt;
* Design and user-study evaluation of semantic chunking techniques.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Significance&#039;&#039;&#039;&lt;br /&gt;
* Low-level &amp;lt;--&amp;gt; semantic-level mapping allows for cognitive-modeling to be applied at a functionality level, where low-level interaction techniques can be swapped out.  This will allow our interface assessment system to make feasible suggestions for more optimal interface design.&lt;br /&gt;
&lt;br /&gt;
== Parallel Framework for Evaluation Modules ==&lt;br /&gt;
* Owner: [[User:Adam Darlow | Adam Darlow]], [[User:Eric Sodomka | Eric Sodomka]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This section will describe in more detail the inputs, outputs and architecture that were presented in the introduction.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Module Inputs (Incomplete) ====&lt;br /&gt;
* A set of utility dimensions {d1, d2, ...} are defined in the framework. These could be {d1=&amp;quot;time&amp;quot;, d2=&amp;quot;fatigue&amp;quot;, ...}&lt;br /&gt;
* A set of interaction functions. These specify all of the information that the application wants to give users or get from them. It is not tied to a specific interface. For example, the fact that an applications shows videos would be included here. Whether it displays them embedded, in a pop-up window or fullscreen would not.&lt;br /&gt;
* A mapping of interaction functions to interface elements (e.g., buttons, windows, dials,...). Lots of optional information describing visual properties, associated text, physical interactions (e.g., turning the dial clockwise increases the input value) and timing.&lt;br /&gt;
* Functional user traces - sequences of interaction functions that represent typical user interactions with the application. Could include a goal hierarchy, in which case the function sequence is at the bottom of the hierarchy.&lt;br /&gt;
&lt;br /&gt;
==== Module Outputs ====&lt;br /&gt;
* Every module ouputs at least one of the following:&lt;br /&gt;
** An evaluation of the interface&lt;br /&gt;
*** This can be on any or all of the utility dimensions, e.g. evaluation={d1=score1, d2=score2, ...}&lt;br /&gt;
*** This can alternately be an overall evaluation, ignoring dimensions, e.g. evaluation={score}&lt;br /&gt;
**** In this case, the aggregator will treat this as the module giving the same score to all dimensions. Which dimension this evaluator actually predicts well on can be learned by the aggregator over time.&lt;br /&gt;
** Recommendation(s) for improving the interface&lt;br /&gt;
***This can be a textual description of what changes the designer should make&lt;br /&gt;
***This can alternately be a transformation that can automatically be applied to the interface language (without designer intervention)&lt;br /&gt;
***In addition to the textual or transformational description of the recommendation, a &amp;quot;change in evaluation&amp;quot; is output to describe how specifically the value will improve the interface&lt;br /&gt;
****Recommendation = {description=&amp;quot;make this change&amp;quot;, Δevaluation={d1=score1, d2=score2, ...}&lt;br /&gt;
****Like before, this Δevaluation can cover any number of dimensions, or it can be generic.&lt;br /&gt;
***Either a single recommendation or a set of recommendations can be output&lt;br /&gt;
&lt;br /&gt;
==== Aggregator Inputs ====&lt;br /&gt;
The aggregator receives as input the outputs of all the modules.&lt;br /&gt;
&lt;br /&gt;
==== Aggregator Outputs ====&lt;br /&gt;
&lt;br /&gt;
Outputs for the aggregator are the same as the outputs for each module. The difference is that the aggregator will consider all the module outputs, and arrive at a merged output based on the past performance of each of the modules.&lt;br /&gt;
&lt;br /&gt;
== Evaluation and Recommendation via Modules ==&lt;br /&gt;
* Owner: [[User:E J Kalafarski | E J Kalafarski]]&lt;br /&gt;
&lt;br /&gt;
A &amp;quot;meta-module&amp;quot; called the aggregator will be responsible for assembling and formatting the output of all other modules into a structure that is both extensible and immediately usable, by both an automated designer or a human designer.&lt;br /&gt;
&lt;br /&gt;
===Requirements===&lt;br /&gt;
The aggregator&#039;s functionality, then, is defined by its &#039;&#039;&#039;inputs&#039;&#039;&#039;, the outputs of the other modules, and the desired &#039;&#039;&#039;output&#039;&#039;&#039; of the system as a whole, per its position in the architecture.  Its purpose is largely formatting and reconciliation of the products of the multitudinous (and extensible) modules.  The output of the aggregator must meet several requirements: first, to generate a set of human-readable suggestions for the improvement of the given interface; second, to generate a machine-readable, but also analyzable, evaluation of the various characteristics of the interface and accompanying user traces.&lt;br /&gt;
&lt;br /&gt;
From these specifications, it is logical to assume that a common language or format will be required for the output of individual modules.  We propose an XML-based file format, allowing: (1) a section for the standardized identification of problem areas, applicable rules, and proposed improvements, generalized by the individual module and mapped to a single element, or group of elements, in the original interface specification; (2) a section for specification of generalizable &amp;quot;utility&amp;quot; functions, allowing a module to specify how much a measurable quantity of utility is positively or negatively affected by properties of the input interface; (3) new, user-definable sections for evaluations of the given interface not covered by the first two sections.  The first two sections are capable of conveying the vast majority of module outputs predicted at this time, but the XML can extensibly allow modules to pass on whatever information may become prominent in the future.&lt;br /&gt;
&lt;br /&gt;
===Specification===&lt;br /&gt;
 &amp;lt;module id=&amp;quot;Fitts-Law&amp;quot;&amp;gt;&lt;br /&gt;
 	&amp;lt;interface-elements&amp;gt;&lt;br /&gt;
 		&amp;lt;element&amp;gt;&lt;br /&gt;
 			&amp;lt;desc&amp;gt;submit button&amp;lt;/desc&amp;gt;&lt;br /&gt;
 			&amp;lt;problem&amp;gt;&lt;br /&gt;
 				&amp;lt;desc&amp;gt;size&amp;lt;/desc&amp;gt;&lt;br /&gt;
 				&amp;lt;suggestion&amp;gt;width *= 2&amp;lt;/suggestion&amp;gt;&lt;br /&gt;
 				&amp;lt;suggetsion&amp;gt;height *= 2&amp;lt;/suggestions&amp;gt;&lt;br /&gt;
 				&amp;lt;human-suggestion&amp;gt;Increase size relative to other elements&amp;lt;/human-suggestion&amp;gt;&lt;br /&gt;
 			&amp;lt;/problem&amp;gt;&lt;br /&gt;
 		&amp;lt;/element&amp;gt;&lt;br /&gt;
 	&amp;lt;/interface-elements&amp;gt;&lt;br /&gt;
 	&amp;lt;utility&amp;gt;&lt;br /&gt;
 		&amp;lt;dimension&amp;gt;&lt;br /&gt;
 			&amp;lt;desc&amp;gt;time&amp;lt;/desc&amp;gt;&lt;br /&gt;
 			&amp;lt;value&amp;gt;0:15:35&amp;lt;/value&amp;gt;&lt;br /&gt;
 		&amp;lt;/dimension&amp;gt;&lt;br /&gt;
 		&amp;lt;dimension&amp;gt;&lt;br /&gt;
 			&amp;lt;desc&amp;gt;frustration&amp;lt;/desc&amp;gt;&lt;br /&gt;
 			&amp;lt;value&amp;gt;pulling hair out&amp;lt;/value&amp;gt;&lt;br /&gt;
 		&amp;lt;/dimension&amp;gt;&lt;br /&gt;
 		&amp;lt;dimension&amp;gt;&lt;br /&gt;
 			&amp;lt;desc&amp;gt;efficiency&amp;lt;/desc&amp;gt;&lt;br /&gt;
 			&amp;lt;value&amp;gt;13.2s/KPM task&amp;lt;/value&amp;gt;&lt;br /&gt;
 			&amp;lt;value&amp;gt;0.56m/CPM task&amp;lt;/value&amp;gt;&lt;br /&gt;
 		&amp;lt;/dimension&amp;gt;&lt;br /&gt;
 	&amp;lt;/utility&amp;gt;&lt;br /&gt;
 	&amp;lt;tasks&amp;gt;&lt;br /&gt;
 		&amp;lt;task&amp;gt;&lt;br /&gt;
 			&amp;lt;desc&amp;gt;complete form&amp;lt;/desc&amp;gt;&lt;br /&gt;
 		&amp;lt;/task&amp;gt;&lt;br /&gt;
 		&amp;lt;task&amp;gt;&lt;br /&gt;
 			&amp;lt;desc&amp;gt;lookup SSN&amp;lt;/desc&amp;gt;&lt;br /&gt;
 		&amp;lt;/task&amp;gt;&lt;br /&gt;
 		&amp;lt;task&amp;gt;&lt;br /&gt;
 			&amp;lt;desc&amp;gt;format phone number&amp;lt;/desc&amp;gt;&lt;br /&gt;
 		&amp;lt;/task&amp;gt;&lt;br /&gt;
 	&amp;lt;/tasks&amp;gt;&lt;br /&gt;
 &amp;lt;/module&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Logic===&lt;br /&gt;
This file provided by each module is then the input for the aggregator.  The aggregator&#039;s most straightforward function is the compilation of the &amp;quot;problem areas,&amp;quot; assembling them and noting problem areas and suggestions that are recommended by more than one module, and weighting them accordingly in its final report.  These weightings can begin in an equal state, but the aggregator should be capable of learning iteratively which modules&#039; results are most relevant to the user and update weightings accordingly.  This may need to be accomplished with manual tuning, or a machine-learning algorithm capable of determining which modules most often agree with others.&lt;br /&gt;
&lt;br /&gt;
Secondly, the aggregator compiles the utility functions provided by the module specs.  This, again, is a summation of similarly-described values from the various modules.&lt;br /&gt;
&lt;br /&gt;
When confronted with user-defined sections of the XML spec, the aggregator is primarily responsible for compiling them and sending them along to the output of the machine.  Even if the aggregator does not recognize a section or property of the evaluative spec, if it sees the property reported by more than one module it should be capable of aggregating these intelligently.  In future versions of the spec, it should be possible for a module to provide instructions for the aggregator on how to handle unrecognized sections of the XML.&lt;br /&gt;
&lt;br /&gt;
From these compilations, then, the aggregator should be capable of outputting both aggregated human-readable suggestions on interface improvements for a human designer, as well as a comprehensive evaluation of the interface&#039;s effectiveness at the given task traces.  Again, this is dependent on the specification of the system as a whole, but is likely to include measures and comparisons, graphings of task versus utility, and quantitative measures of an element&#039;s effectiveness.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This section is necessarily defined by the output of the individual modules (which I already expect to be of varied and arbitrary structure) and the desired output of the machine as a whole.  It will likely need to be revised heavily after other modules and the &amp;quot;Parellel Framework&amp;quot; section are defined.&#039;&#039; [[User:E J Kalafarski|E J Kalafarski]] 12:34, 24 April 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This section describes the aggregator, which takes the output of multiple independent modules and aggregates the results to provide (1) an evaluation and (2) recommendations for the user interface. We should explain how the aggregator weights the output of different modules (this could be based on historical performance of each module, or perhaps based on E.J.&#039;s cognitive/HCI guidelines).&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Sample Modules ==&lt;br /&gt;
&lt;br /&gt;
=== CPM-GOMS ===&lt;br /&gt;
* Owners: [[User:Steven Ellis | Steven Ellis]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This module will provide interface evaluations and suggestions based on a CPM-GOMS model of cognition for the given interface. It will provide a quantitative, predictive, cognition-based parameterization of usability. From empirically collected data, user trajectories through the model (critical paths) will be examined, highlighting bottlenecks within the interface, and offering suggested alterations to the interface to induce more optimal user trajectories.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
I’m hoping to have some input on this section, because it seems to be the crux of the “black box” into which we take the inputs of interface description, user traces, etc. and get our outputs (time, recommendations, etc.).  I know at least a few people have pretty strong thoughts on the matter and we ought to discuss the final structure.&lt;br /&gt;
&lt;br /&gt;
That said – my proposal for the module:&lt;br /&gt;
*In my opinion the concept of the Model Human Processor (at least as applied in CPM) is outdated – it’s too economic/overly parsimonious in its conception of human activity.  I think we need to create a structure which accounts for more realistic conditions of HCI including multitasking, aspects of distributed cognition (and other relevant uses of tools – as far as I can tell CPM doesn’t take into account any sort of productivity aids), executive control processes of attention, etc.  ACT-R appears to take steps towards this but we would probably need to look at their algorithms to know for sure.&lt;br /&gt;
*Critical paths will continue to play an important role – we should in fact emphasize that part of this tool’s purpose will be a description not only of ways in which the interface should be modified to best fit a critical path, but also ways in which the user’s ought to be instructed in their use of the path.  This feedback mechanism could be bidirectional – if the model’s predictions of the user’s goals are incorrect, the critical path determined will also be incorrect and the interface inherently suboptimal.  The user could be prompted with a tooltip explaining in brief why and how the interface has changed, along with options to revert, select other configurations (euphemized by goals), and to view a short video detailing how to properly use the interface.&lt;br /&gt;
*Call me crazy but, if we assume designers will be willing to code a model of their interfaces into our ACT-R-esque language, could we allow that model to be fairly transparent to the user, who could use a gui to input their goals to find an analogue in the program which would subsequently rearrange its interface to fit the user’s needs?  Even if not useful to the users, such dynamic modeling could really help designers (IMO)&lt;br /&gt;
*I think the model should do its best to accept models written for ACT-R and whatever other cognitive models there are out there – gives us the best chance of early adoption&lt;br /&gt;
*I would particularly appreciate input on the number/complexity/type of inputs we’ll be using, as well as the same qualities for the output.&lt;br /&gt;
&lt;br /&gt;
=== HCI Guidelines ===&lt;br /&gt;
* Owner: [[User:E J Kalafarski | E J Kalafarski]]&lt;br /&gt;
&lt;br /&gt;
Schneiderman&#039;s Eight Golden Rules and Jakob Nielsen&#039;s Ten Heuristics are perhaps the most famous and well-regarded heuristic design guidelines to emerge over the last twenty years.  Although the explicit theoretical basis for such heuristics is controversial and not well-explored, the empirical success of these guidelines is established and accepted.  This module will parse out up to three or four common (that is, intersecting) principles from these accepted guidelines and apply them to the input interface.&lt;br /&gt;
&lt;br /&gt;
As an example, we identify an analogous principle that appears in Schneiderman (&amp;quot;Reduce short-term memory load&amp;quot;)&amp;lt;ref&amp;gt;http://faculty.washington.edu/jtenenbg/courses/360/f04/sessions/schneidermanGoldenRules.html&amp;lt;/ref&amp;gt; and Nielsen (&amp;quot;Recognition rather than recall/Minimize the user&#039;s memory load&amp;quot;)&amp;lt;ref&amp;gt;http://www.useit.com/papers/heuristic/heuristic_list.html&amp;lt;/ref&amp;gt;.  The input interface is then evaluated for the consideration of the principle, based on an explicit formal description of the interface, such as XAML or XUL.  The module attempts to determine how effectively the interface demonstrates the principle.  When analyzing an interface for several principles that may be conflicting or opposing in a given context, the module makes use of a hard-coded but iterative (and evolving) weighting of these principles, based on (1) how often they appear in the training set of accepted sets of guidelines, (2) how analogues a heuristic principle is to a cognitive principle in a parallel training set, and (3) how effective the principle&#039;s associated suggestion is found to be using a feedback mechanism.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inputs&#039;&#039;&#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
# A formal description of the interface and its elements (e.g. buttons).&lt;br /&gt;
# A formal description of a particular task and the possible paths through a subset of interface elements that permit the user to accomplish that task.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Output&#039;&#039;&#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
Standard XML-formatted file containing problem areas of the input interface, suggestions for each problem area based on principles that were found to have a strong application to a problem element and the problem itself, and a human-readable generated analysis of the element&#039;s affinity for the principle.  Quantitative outputs will not be possible based on heuristic guidelines, and the &amp;quot;utility&amp;quot; section of this module&#039;s output is likely to be blank.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This section could include an example or two of established design guidelines that could easily be implemented as modules.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Fitts&#039;s Law ===&lt;br /&gt;
* Owner: [[User:Jon Ericson | Jon Ericson]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This module provides an estimate of the required time to complete various tasks that have been decomposed into formalized sequences of interactions with interface elements, and will provide evaluations and recommendations for optimizing the time required to complete those tasks using the interface.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1. A formal description of the interface and its elements (e.g. buttons).&lt;br /&gt;
&lt;br /&gt;
2. A formal description of a particular task and the possible paths through a subset of interface elements that permit the user to accomplish that task.&lt;br /&gt;
&lt;br /&gt;
3. The physical distances between interface elements along those paths.&lt;br /&gt;
&lt;br /&gt;
4. The width of those elements along the most likely axes of motion.&lt;br /&gt;
&lt;br /&gt;
5. Device (e.g. mouse) characteristics including start/stop time and the inherent speed limitations of the device.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Output&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The module will then use the Shannon formulation of Fitt&#039;s Law to compute the average time needed to complete the task along those paths.&lt;br /&gt;
&lt;br /&gt;
=== Affordances ===&lt;br /&gt;
* Owner: [[User:Jon Ericson | Jon Ericson]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This simple module will provide interface evaluations and recommendations based on a measure of the extent to which the user perceives the relevant affordances of the interface when performing a number of specified tasks.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inputs&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Formalized descriptions of...&lt;br /&gt;
&lt;br /&gt;
1. Interface elements&lt;br /&gt;
&lt;br /&gt;
2. Their associated actions&lt;br /&gt;
&lt;br /&gt;
3. The functions of those actions&lt;br /&gt;
&lt;br /&gt;
4. A particular task&lt;br /&gt;
&lt;br /&gt;
5. User traces for that task.  &lt;br /&gt;
&lt;br /&gt;
Inputs (1-4) are then used to generate a &amp;quot;user-independent&amp;quot; space of possible functions that the interface is capable of performing with respect to a given task -- what the interface &amp;quot;affords&amp;quot; the user.  From this set of possible interactions, our model will then determine the subset of optimal paths for performing a particular task.  The user trace (5) is then used to determine what functions actually were performed in the course of a given task of interest and this information is then compared to the optimal path data to determine the extent to which affordances of the interface are present but not perceived.  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Output&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The output of this module is a simple ratio of (affordances perceived) / [(relevant affordances present) * (time to complete task)] which provides a quantitative measure of the extent to which the interface is &amp;quot;natural&amp;quot; to use for a particular task.&lt;br /&gt;
&lt;br /&gt;
=== Workflow, Multi-tasking and Interruptions ===&lt;br /&gt;
* Owner: [[User:Andrew Bragdon | Andrew Bragdon]]&lt;br /&gt;
&lt;br /&gt;
There are, at least, two levels at which users work ([http://portal.acm.org/citation.cfm?id=985692.985707&amp;amp;coll=portal&amp;amp;dl=ACM&amp;amp;CFID=20781736&amp;amp;CFTOKEN=83176621 Gonzales, et al., 2004]).  Users accomplish individual low-level tasks which are part of larger &#039;&#039;working spheres&#039;&#039;; for example, an office worker might send several emails, create several Post-It (TM) note reminders, and then edit a word document, each of these smaller tasks being part of a single larger working sphere of &amp;quot;adding a new section to the website.&amp;quot;  Thus, it is important to understand this larger workflow context - which often involves extensive levels of multi-tasking, as well as switching between a variety of computing devices and traditional tools, such as notebooks.  In this study it was found that the information workers surveyed typically switch individual tasks every 2 minutes and have many simultaneous working spheres which they switch between, on average every 12 minutes.  This frenzied pace of switching tasks and switching working spheres suggests that users will not be using a single application or device for a long period of time, and that affordances to support this characteristic pattern of information work are important.&lt;br /&gt;
&lt;br /&gt;
The purpose of this module is to integrate existing work on multi-tasking, interruption and higher-level workflow into a framework which can predict user recovery times from interruptions.  Specifically, the goals of this framework will be to:&lt;br /&gt;
&lt;br /&gt;
* Understand the role of the larger workflow context in user interfaces&lt;br /&gt;
* Understand the impact of interruptions on user workflow&lt;br /&gt;
* Understand how to design software which fits into the larger working spheres in which information work takes place&lt;br /&gt;
&lt;br /&gt;
It is important to point out that because workflow and multi-tasking rely heavily on higher-level brain functioning, it is unrealistic within the scope of this grant to propose a system which can predict user performance given a description of a set of arbitrary software programs.  Therefore, we believe this module will function much more in a qualitative role to provide context to the rest of the model.  Specifically, our findings related to interruption and multi-tasking will advance the basic research question of &amp;quot;how do you users react to interruptions when using working sets of varying sizes?&amp;quot;.  This core HCI contribution will help to inform the rest of the outputs of the model in a qualitative manner.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
N/A&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Outputs&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
N/A&lt;br /&gt;
&lt;br /&gt;
=== Working Memory Load ===&lt;br /&gt;
* Owner: [[User:Gideon Goldin | Gideon Goldin]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This module measures how much information the user needs to retain in memory while interacting with the interface and makes suggestions for improvements.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Models&lt;br /&gt;
** Beddeley&#039;s Model of Working Memory&amp;lt;ref&amp;gt;http://en.wikipedia.org/wiki/Baddeley%27s_model_of_working_memory&amp;lt;/ref&amp;gt;&lt;br /&gt;
*** Episodic Buffer&lt;br /&gt;
** George Miller&#039;s &amp;quot;The magic number 7 plus or minus 2&amp;quot;&amp;lt;ref&amp;gt;http://en.wikipedia.org/wiki/The_Magical_Number_Seven,_Plus_or_Minus_Two&amp;lt;/ref&amp;gt;&lt;br /&gt;
** The magic number 4&amp;lt;ref&amp;gt;Cowan, N. (2001). The magical number 4 in short-term memory: A reconsideration of mental storage capacity. Behavioral and Brain Sciences, 24, 87-185.&amp;lt;/ref&amp;gt;&lt;br /&gt;
* Chunking&amp;lt;ref&amp;gt;http://en.wikipedia.org/wiki/Chunking_(psychology)&amp;lt;/ref&amp;gt;&lt;br /&gt;
* Priming&amp;lt;ref&amp;gt;http://en.wikipedia.org/wiki/Priming_(psychology)&amp;lt;/ref&amp;gt;&lt;br /&gt;
* Subitizing and Counting&amp;lt;ref&amp;gt;http://en.wikipedia.org/wiki/Subitizing&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
* Visual Stimuli&lt;br /&gt;
* Audio Stimuli&lt;br /&gt;
&#039;&#039;&#039;Outputs&#039;&#039;&#039;&lt;br /&gt;
* Remembered percepts&lt;br /&gt;
* Half-Life of percepts&lt;br /&gt;
&lt;br /&gt;
=== Automaticity of Interaction ===&lt;br /&gt;
* Owner: [[User:Gideon Goldin | Gideon Goldin]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Measures how easily the interaction with the interface becomes automatic with experience and makes suggestions for improvements.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Learning&amp;lt;ref&amp;gt;http://en.wikipedia.org/wiki/Learning#Mathematical_models_of_learning&amp;lt;/ref&amp;gt;&lt;br /&gt;
** Logan&#039;s instance theory of automatization&amp;lt;ref&amp;gt;http://74.125.95.132/search?q=cache:IZ-Zccsu3SEJ:psych.wisc.edu/ugstudies/psych733/logan_1988.pdf+logan+isntance+teory&amp;amp;cd=1&amp;amp;hl=en&amp;amp;ct=clnk&amp;amp;gl=us&amp;amp;client=firefox-a&amp;lt;/ref&amp;gt;&lt;br /&gt;
* Fluency&lt;br /&gt;
** As meta-cognitive information &amp;lt;ref&amp;gt;http://www.sciencedirect.com/science?_ob=ArticleURL&amp;amp;_udi=B6VH9-4SM7PFK-4&amp;amp;_user=10&amp;amp;_rdoc=1&amp;amp;_fmt=&amp;amp;_orig=search&amp;amp;_sort=d&amp;amp;view=c&amp;amp;_acct=C000050221&amp;amp;_version=1&amp;amp;_urlVersion=0&amp;amp;_userid=10&amp;amp;md5=10cd279fa80958981fcc3c06684c09af&amp;lt;/ref&amp;gt;&lt;br /&gt;
** As a cognitive &#039;&#039;heuristic&#039;&#039;&amp;lt;ref&amp;gt;http://en.wikipedia.org/wiki/Fluency_heuristic&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
* Interface&lt;br /&gt;
* User goals&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Outputs&#039;&#039;&#039;&lt;br /&gt;
* Learning curve&lt;br /&gt;
&lt;br /&gt;
== Integration into the Design Process ==&lt;br /&gt;
* Owner: [[User:Ian Spector | Ian Spector]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This section outlines the process of designing an HCI interface and at what stages our proposal fits in and how.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Preliminary Results =&lt;br /&gt;
&lt;br /&gt;
===Workflow, Multi-tasking, and Interruption===&lt;br /&gt;
&lt;br /&gt;
====I.  &#039;&#039;&#039;Goals&#039;&#039;&#039;====&lt;br /&gt;
&lt;br /&gt;
The goals of the preliminary work are to gain qualitative insight into how information workers practice metawork, and to determine whether people might be better-supported with software which facillitates metawork and interruptions.  Thus, the preliminary work should investigate, and demonstrate, the need and impact of the core goals of the project.&lt;br /&gt;
&lt;br /&gt;
====II.  &#039;&#039;&#039;Methodology&#039;&#039;&#039;====&lt;br /&gt;
&lt;br /&gt;
Seven information workers, ages 20-38 (5 male, 2 female), were interviewed to determine which methods they use to &amp;quot;stay organized&amp;quot;.  An initial list of metawork strategies was established from two pilot interviews, and then a final list was compiled.  Participants then responded to a series of 17 questions designed to gain insight into their metawork strategies and process.  In addition, verbal interviews were conducted to get additional open-ended feedback.&lt;br /&gt;
&lt;br /&gt;
====III.  &#039;&#039;&#039;Final Results&#039;&#039;&#039;====&lt;br /&gt;
A histogram of methods people use to &amp;quot;stay organized&amp;quot; in terms of tracking things they need to do (TODOs), appointments and meetings, etc. is shown in the figure below.&lt;br /&gt;
&lt;br /&gt;
[[Image:AcbGraph.jpg]]&lt;br /&gt;
&lt;br /&gt;
In addition to these methods, participants also used a number of other methods, including:&lt;br /&gt;
&lt;br /&gt;
* iCal&lt;br /&gt;
* Notes written in xterms&lt;br /&gt;
* &amp;quot;Inbox zero&amp;quot; method of email organization&lt;br /&gt;
* iGoogle Notepad (for tasks)&lt;br /&gt;
* Tag emails as &amp;quot;TODO&amp;quot;, &amp;quot;Important&amp;quot;, etc.&lt;br /&gt;
* Things (Organizer Software)&lt;br /&gt;
* Physical items placed to &amp;quot;remind me of things&amp;quot;&lt;br /&gt;
* Sometimes arranging windows on desk&lt;br /&gt;
* Keeping browser tabs open&lt;br /&gt;
* Bookmarking web pages&lt;br /&gt;
* Keep programs/files open scrolled to certain locations sometimes with things selected&lt;br /&gt;
&lt;br /&gt;
In addition, three participants said that when interrupted they &amp;quot;rarely&amp;quot; or &amp;quot;very rarely&amp;quot; were able to resume the task they were working on prior to the interruption.  Three of the participants said that they would not actively recommend their metawork strategies for other people, and two said that staying organized was &amp;quot;difficult&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Four participants were neutral to the idea of new tools to help them stay organized and three said that they would like to have such a tool/tools.&lt;br /&gt;
&lt;br /&gt;
====IV.  &#039;&#039;&#039;Discussion&#039;&#039;&#039;====&lt;br /&gt;
These results qunatiatively support our hypothesis that there is no clearly dominant set of metawork strategies employed by information workers.  This highly fragemented landscape is surprising, even though most information workers work in a similar environment - at a desk, on the phone, in meetings - and with the same types of tools - computers, pens, paper, etc.  We believe that this suggests that there are complex tradeoffs between these methods and that no single method is sufficient.  We therefore believe that users will be better supported with a new set of software-based metawork tools.&lt;br /&gt;
&lt;br /&gt;
= [Criticisms] =&lt;br /&gt;
* Owner: [[User:Andrew Bragdon | Andrew Bragdon]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Any criticisms or questions we have regarding the proposal can go here.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=References=&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Trevor O&#039;Brien</name></author>
	</entry>
	<entry>
		<id>http://vrl.cs.brown.edu/wiki/index.php?title=CS295J/Research_proposal_(draft_2)&amp;diff=3167</id>
		<title>CS295J/Research proposal (draft 2)</title>
		<link rel="alternate" type="text/html" href="http://vrl.cs.brown.edu/wiki/index.php?title=CS295J/Research_proposal_(draft_2)&amp;diff=3167"/>
		<updated>2009-04-24T16:39:48Z</updated>

		<summary type="html">&lt;p&gt;Trevor O&amp;#039;Brien: /* Semantic-level Interaction Chunking */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
* Owners: [[User:Adam Darlow | Adam Darlow]], [[User:Eric Sodomka | Eric Sodomka]], [[User: Trevor O&#039;Brien | Trevor]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Propose:&#039;&#039;&#039; The design, application and evaluation of a novel, cognition-based, computational framework for assessing interface design and providing automated suggestions to optimize usability.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Evaluation Methodology:&#039;&#039;&#039;  Our techniques will be evaluated quantitatively through a series of user-study trials, as well as qualitatively by a team of expert interface designers. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Contributions and Significance:&#039;&#039;&#039;  We expect this work to make the following contributions:  &lt;br /&gt;
# design-space analysis and quantitative evaluation of cognition-based techniques for assessing user interfaces.  &lt;br /&gt;
# design and quantitative evaluation of techniques for suggesting optimized interface-design changes. &lt;br /&gt;
# an extensible, multimodal software architecture for capturing user traces integrated with pupil-tracking data, auditory recognition, and muscle-activity monitoring.  &lt;br /&gt;
# specification (language?) of how to define an interface evaluation module and how to integrate it into a larger system.  &lt;br /&gt;
# (there may be more here, like testing different cognitive models, generating a markup language to represent interfaces, maybe even a unique metric space for interface usability)&lt;br /&gt;
&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
We propose a framework for interface evaluation and recommendation that integrates behavioral models and design guidelines from both cognitive science and HCI. Our framework behaves like a committee of specialized experts, where each expert provides its own assessment of the interface, given its particular knowledge of HCI or cognitive science. For example, an expert may provide an evaluation based on the GOMS method, Fitts&#039;s law, Maeda&#039;s design principles, or cognitive models of learning and memory. An aggregator collects all of these assessments and weights the opinions of each expert, and outputs to the developer a merged evaluation score and a weighted set of recommendations.&lt;br /&gt;
&lt;br /&gt;
Systematic methods of estimating human performance with computer interfaces are used only sparsely despite their obvious benefits, the reason being the overhead involved in implementing them. In order to test an interface, both manual coding systems like the GOMS variations and user simulations like those based on ACT-R/PM and EPIC require detailed pseudo-code descriptions of the user workflow with the application interface. Any change to the interface then requires extensive changes to the pseudo-code, a major problem because of the trial-and-error nature of interface design. Updating the models themselves is even more complicated. Even an expert in CPM-GOMS, for example, can&#039;t necessarily adapt it to take into account results from new cognitive research.&lt;br /&gt;
&lt;br /&gt;
Our proposal makes automatic interface evaluation easier to use in several ways. First of all, we propose to divide the input to the system into three separate parts, functionality, user traces and interface. By separating the functionality from the interface, even radical interface changes will require updating only that part of the input. The user traces are also defined over the functionality so that they too translate across different interfaces. Second, the parallel modular architecture allows for a lower &amp;quot;entry cost&amp;quot; for using the tool. The system includes a broad array of evaluation modules some of which are very simple and some more complex. The simpler modules use only a subset of the input that a system like GOMS or ACT-R would require. This means that while more input will still lead to better output, interface designers can get minimal evaluations with only minimal information. For example, a visual search module may not require any functionality or user traces in order to determine whether all interface elements are distinct enough to be easy to find. Finally, a parallel modular architecture is much easier to augment with relevant cognitive and design evaluations.&lt;br /&gt;
&lt;br /&gt;
= Background / Related Work =&lt;br /&gt;
&lt;br /&gt;
Each person should add the background related to their specific aims.&lt;br /&gt;
&lt;br /&gt;
* Steven Ellis - Cognitive models of HCI, including GOMS variations and ACT-R&lt;br /&gt;
* EJ - Design Guidelines&lt;br /&gt;
* Jon - Perception and Action&lt;br /&gt;
* Andrew - Multiple task environments&lt;br /&gt;
* Gideon - Cognition and dual systems&lt;br /&gt;
* Ian - Interface design process&lt;br /&gt;
* Trevor - User trace collection methods (especially any eye-tracking, EEG, ... you want to suggest using)&lt;br /&gt;
&lt;br /&gt;
== Cognitive Models ==&lt;br /&gt;
I plan to port over most of the background on cognitive models of HCI from the old proposal&lt;br /&gt;
&lt;br /&gt;
Additions will comprise of:&lt;br /&gt;
*CPM-GOMS as a bridge from GOMS architecture to the promising procedural optimization of the Model Human Processor&lt;br /&gt;
**Context of CPM development, discuss its relation to original GOMS and KLM&lt;br /&gt;
***Establish the tasks which were relevant for optimization when CPM was developed and note that its obsolescence may have been unavoidable&lt;br /&gt;
**Focus on CPM as the first step in transitioning from descriptive data, provided by mounting efforts in the cognitive sciences realm to discover the nature of task processing and accomplishment, to prescriptive algorithms which can predict an interface’s efficiency and suggest improvements&lt;br /&gt;
**CPM’s purpose as an abstraction of cognitive processing – a symbolic representation not designed for accuracy but precision&lt;br /&gt;
**CPM’s successful trials, e.g. Ernestine&lt;br /&gt;
***Implications of this project include CPM’s ability to accurately estimate processing at a psychomotor level&lt;br /&gt;
***Project does suggest limitations, however, when one attempts to examine more complex tasks which involve deeper and more numerous cognitive processes&lt;br /&gt;
*ACT-R as an example of a progressive cognitive modeling tool&lt;br /&gt;
**A tool clearly built by and for cognitive scientists, and as a result presents a much more accurate view of human processing – helpful for our research&lt;br /&gt;
**Built-in automation, which now seems to be a standard feature of cognitive modeling tools&lt;br /&gt;
**Still an abstraction of cognitive processing, but makes adaptation to cutting-edge cognitive research findings an integral aspect of its modular structure&lt;br /&gt;
**Expand on its focus on multi-tasking, taking what was a huge advance between GOMS and its CPM variation and bringing the simulation several steps closer to approximating the nature of cognition in regards to HCI&lt;br /&gt;
**Far more accessible both for researchers and the lay user/designer in its portability to LISP, pre-construction of modules representing cognitive capacities and underlying algorithms modeling paths of cognitive processing&lt;br /&gt;
&lt;br /&gt;
==Design guidelines==&lt;br /&gt;
A multitude of rule sets exist for the design of not only interface, but architecture, city planning, and software development.  They can range in scale from one primary rule to as many Christopher Alexander&#039;s 253 rules for urban environments,&amp;lt;ref&amp;gt;[http://hci.rwth-aachen.de/materials/publications/borchers2000a.pdf Borchers, Jan O.  &amp;quot;A Pattern Approach to Interaction Design.&amp;quot;  2000.]&amp;lt;/ref&amp;gt; which he introduced with the concept design patterns in the 1970s.  Study has likewise been conducted on the use of these rules:&amp;lt;ref&amp;gt;http://stl.cs.queensu.ca/~graham/cisc836/lectures/readings/tetzlaff-guidelines.pdf&amp;lt;/ref&amp;gt; guidelines are often only partially understood, indistinct to the developer, and &amp;quot;fraught&amp;quot; with potential usability problems given a real-world situation.&lt;br /&gt;
&lt;br /&gt;
===Application to AUE===&lt;br /&gt;
And yet, the vast majority of guideline sets, including the most popular rulesets, have been arrived at heuristically.  The most successful, such as Raskin&#039;s and Schneiderman&#039;s, have been forged from years of observation instead of empirical study and experimentation.  The problem is similar to the problem of circular logic faced by automated usability evaluations: an automated system is limited in the suggestions it can offer to a set of preprogrammed guidelines which have often not been subjected to rigorous experimentation.&amp;lt;ref&amp;gt;[http://www.eecs.berkeley.edu/Pubs/TechRpts/2000/CSD-00-1105.pdf Ivory, M and Hearst, M.  &amp;quot;The State of the Art in Automated Usability Evaluation of User Interfaces.&amp;quot; ACM Computing Surveys (CSUR), 2001.]&amp;lt;/ref&amp;gt;  In the vast majority of existing studies, emphasis has traditionally been placed on either the development of guidelines or the application of existing guidelines to automated evaluation.  A mutually-reinforcing development of both simultaneously has not been attempted.&lt;br /&gt;
&lt;br /&gt;
Overlap between rulesets is inevitable and unavoidable.  For our purposes of evaluating existing rulesets efficiently, without extracting and analyzing each rule individually, it may be desirable to identify the the overarching &#039;&#039;principles&#039;&#039; or &#039;&#039;philosophy&#039;&#039; (max. 2 or 3) for a given ruleset and determining their quantitative relevance to problems of cognition.&lt;br /&gt;
&lt;br /&gt;
===Popular and seminal examples===&lt;br /&gt;
Schneiderman&#039;s [http://faculty.washington.edu/jtenenbg/courses/360/f04/sessions/schneidermanGoldenRules.html Eight Golden Rules] date to 1987 and are arguably the most-cited.  They are heuristic, but can be somewhat classified by cognitive objective: at least two rules apply primarily to &#039;&#039;repeated use&#039;&#039;, versus &#039;&#039;discoverability&#039;&#039;.  Up to five of Schneiderman&#039;s rules emphasize &#039;&#039;predictability&#039;&#039; in the outcomes of operations and &#039;&#039;increased feedback and control&#039;&#039; in the agency of the user.  His final rule, paradoxically, removes control from the user by suggesting a reduced short-term memory load, which we can arguably classify as &#039;&#039;simplicity&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Raskin&#039;s [http://www.mprove.de/script/02/raskin/designrules.html Design Rules] are classified into five principles by the author, augmented by definitions and supporting rules.  While one principle is primarily aesthetic (a design problem arguably out of the bounds of this proposal) and one is a basic endorsement of testing, the remaining three begin to reflect philosophies similar to Schneiderman&#039;s: reliability or &#039;&#039;predictability&#039;&#039;, &#039;&#039;simplicity&#039;&#039; or &#039;&#039;efficiency&#039;&#039; (which we can construe as two sides of the same coin), and finally he introduces a concept of &#039;&#039;uninterruptibility&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Maeda&#039;s [http://lawsofsimplicity.com/?cat=5&amp;amp;order=ASC Laws of Simplicity] are fewer, and ostensibly emphasize &#039;&#039;simplicity&#039;&#039; exclusively, although elements of &#039;&#039;use&#039;&#039; as related by Schneiderman&#039;s rules and &#039;&#039;efficiency&#039;&#039; as defined by Raskin may be facets of this simplicity.  Google&#039;s corporate mission statement presents [http://www.google.com/corporate/ux.html Ten Principles], only half of which can be considered true interface guidelines.  &#039;&#039;Efficiency&#039;&#039; and &#039;&#039;simplicity&#039;&#039; are cited explicitly, aesthetics are once again noted as crucial, and working within a user&#039;s trust is another application of &#039;&#039;predictability&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
===Elements and goals of a guideline set===&lt;br /&gt;
Myriad rulesets exist, but variation becomes scarce—it indeed seems possible to parse these common rulesets into overarching principles that can be converted to or associated with quantifiable cognitive properties.  For example, it is likely &#039;&#039;simplicity&#039;&#039; has an analogue in the short-term memory retention or visual retention of the user, vis a vis the rule of [http://books.google.com/books?hl=en&amp;amp;lr=&amp;amp;id=j5q0VvOGExYC&amp;amp;oi=fnd&amp;amp;pg=PA357&amp;amp;dq=seven+plus+or+minus+two&amp;amp;ots=prI3PKJBar&amp;amp;sig=vOZnqpnkXKGYWxK6_XlA4I_CRyI Seven, Plus or Minus Two].  &#039;&#039;Predictability&#039;&#039; likewise may have an analogue in Activity Theory, in regards to a user&#039;s perceptual expectations for a given action; &#039;&#039;uninterruptibility&#039;&#039; has implications in cognitive task-switching;&amp;lt;ref&amp;gt;[http://portal.acm.org/citation.cfm?id=985692.985715&amp;amp;coll=Portal&amp;amp;dl=ACM&amp;amp;CFID=21136843&amp;amp;CFTOKEN=23841774 Czerwinski, Horvitz, and White. &amp;quot;A Diary Study of Task Switching and Interruptions.&amp;quot;  Proceedings of the SIGCHI conference on Human factors in computing systems, 2004.]&amp;lt;/ref&amp;gt; and so forth.&lt;br /&gt;
&lt;br /&gt;
Within the scope of this proposal, we aim to reduce and refine these philosophies found in seminal rulesets and identify their logical cognitive analogues.  By assigning a quantifiable taxonomy to these principles, we will be able to rank and weight them with regard to their real-world applicability, developing a set of &amp;quot;meta-guidelines&amp;quot; and rules for applying them to a given interface in an automated manner.  Combined with cognitive models and multi-modal HCI analysis, we seek to develop, in parallel with these guidelines, the interface evaluation system responsible for their application.&lt;br /&gt;
&lt;br /&gt;
== Perception and Action (in progress) ==&lt;br /&gt;
&lt;br /&gt;
*Information Processing Approach&lt;br /&gt;
**Advantages&lt;br /&gt;
***Formalism eases translation of theory into scripting language&lt;br /&gt;
**Disadvantages&lt;br /&gt;
***Assumes symbolic representation&lt;br /&gt;
&lt;br /&gt;
*Ecological (Gibsonian) Approach&lt;br /&gt;
**Advantages&lt;br /&gt;
***Emphasis on bodily and environmental constraints&lt;br /&gt;
**Disadvantages&lt;br /&gt;
***Lack of formalism hinders translation of theory into scripting language&lt;br /&gt;
&lt;br /&gt;
= Specific Aims and Contributions (to be separated later) =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Specific Aims&#039;&#039;&#039;&lt;br /&gt;
* Incorporate interaction history mechanisms into a set of existing applications.&lt;br /&gt;
* Perform user-study evaluation of history-collection techniques.&lt;br /&gt;
* Distill a set of cognitive principles/models, and evaluate empirically?&lt;br /&gt;
* Build/buy sensing system to include pupil-tracking, muscle-activity monitoring, auditory recognition.&lt;br /&gt;
* Design techniques for manual/semi-automated/automated construction of &amp;lt;insert favorite cognitive model here&amp;gt; from interaction histories and sensing data.&lt;br /&gt;
* Design system for posterior analysis of interaction history w.r.t. &amp;lt;insert favorite cognitive model here&amp;gt;, evaluating critical path &amp;lt;or equivalent&amp;gt; trajectories.&lt;br /&gt;
* Design cognition-based techniques for detecting bottlenecks in critical paths, and offering optimized alternatives. &lt;br /&gt;
* Perform quantitative user-study evaluations, collect qualitative feedback from expert interface designers.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Contributions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Design-space analysis and quantitative evaluation of cognition-based techniques for assessing user interfaces. &lt;br /&gt;
* Design and quantitative evaluation of techniques for suggesting optimized interface-design changes. &lt;br /&gt;
* An extensible, multimodal software architecture for capturing user traces integrated with pupil-tracking data, auditory recognition, and muscle-activity monitoring. &lt;br /&gt;
* (there may be more here, like testing different cognitive models, generating a markup language to represent interfaces, maybe even a unique metric space for interface usability) &lt;br /&gt;
&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
See the [http://vrl.cs.brown.edu/wiki/images/b/b1/Flowchart2.pdf flowchart] for a visual overview of our aims.&lt;br /&gt;
&lt;br /&gt;
In order to use this framework, a designer will have to provide:&lt;br /&gt;
* Functional specification - what are the possible interactions between the user and the application. This can be thought of as method signatures, with a name (e.g., setVolume), direction (to user or from user) and a list of value types (boolean, number, text, video, ...) for each interaction.&lt;br /&gt;
* GUI specification - a mapping of interactions to interface elements (e.g., setVolume is mapped to the grey knob in the bottom left corner with clockwise turning increasing the input number).&lt;br /&gt;
* Functional user traces - sequences of representative ways in which the application is used. Instead of writing them, the designer could have users use the application with a trial interface and then use our methods to generalize the user traces beyond the specific interface (The second method is depicted in the diagram). As a form of pre-processing, the system also generates an interaction transition matrix which lists the probability of each type of interaction given the previous interaction.&lt;br /&gt;
* Utility function - this is a weighting of various performance metrics (time, cognitive load, fatigue, etc.), where the weighting expresses the importance of a particular dimension to the user. For example, a user at NASA probably cares more about interface accuracy than speed. By passing this information to our committee of experts, we can create interfaces that are tuned to maximize the utility of a particular user type.&lt;br /&gt;
&lt;br /&gt;
Each of the modules can use all of this information or a subset of it. Our approach stresses flexibility and the ability to give more meaningful feedback the more information is provided. After processing the information sent by the system of experts, the aggregator will output:&lt;br /&gt;
* An evaluation of the interface. Evaluations are expressed both in terms of the utility function components (i.e. time, fatigue, cognitive load, etc.), and in terms of the overall utility for this interface (as defined by the utility function). These evaluations are given in the form of an efficiency curve, where the utility received on each dimension can change as the user becomes more accustomed to the interface. &lt;br /&gt;
* Suggested improvements for the GUI are also output. These suggestions are meant to optimize the utility function that was input to the system. If a user values accuracy over time, interface suggestions will be made accordingly.&lt;br /&gt;
&lt;br /&gt;
== Recording User-Interaction Primitives ==&lt;br /&gt;
* Owner: [[User:Trevor O&#039;Brien | Trevor O&#039;Brien]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aims&#039;&#039;&#039;&lt;br /&gt;
* Develop system for logging low-level user-interactions within existing applications.  By low-level interactions, we refer to those interactions for which a quantitative, predictive, GOMS-like model may be generated.&lt;br /&gt;
* At the same scale of granularity, integrate explicit interface-interactions with multimodal-sensing data.  i.e. pupil-tracking, muscle-activity monitoring, auditory recognition, EEG data, and facial and posture-focused video. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Contributions&#039;&#039;&#039;&lt;br /&gt;
* Extensible, multimodal, HCI framework for recording rich interaction-history data in existing applications.  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Significance&#039;&#039;&#039;&lt;br /&gt;
* Provide rich history data to serve as the basis for novel quantitative interface evaluation.&lt;br /&gt;
* Aid expert HCI and visual designers in traditional design processes.&lt;br /&gt;
* Provide data for automated machine-learning strategies applied to interaction.&lt;br /&gt;
&lt;br /&gt;
== Semantic-level Interaction Chunking ==&lt;br /&gt;
* Owner: [[User:Trevor O&#039;Brien | Trevor O&#039;Brien]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aims&#039;&#039;&#039;&lt;br /&gt;
* Develop techniques for &#039;&#039;chunking&#039;&#039; low-level interaction primitives into &#039;&#039;semantic-level&#039;&#039; interactions, given an application&#039;s functionality and data-context.  (And de-chunking? Invertible mapping needed?)&lt;br /&gt;
* Perform user-study evaluation to validate chunking methods.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Contributions&#039;&#039;&#039;&lt;br /&gt;
* Design and user-study evaluation of semantic chunking techniques.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Significance&#039;&#039;&#039;&lt;br /&gt;
* Low-level &amp;lt;--&amp;gt; semantic-level mapping allows for cognitive-modeling to be applied at a functionality level, where low-level interaction techniques can be swapped out.  This will allow our interface assessment system to make feasible suggestions for more optimal interface design.&lt;br /&gt;
&lt;br /&gt;
== Parallel Framework for Evaluation Modules ==&lt;br /&gt;
* Owner: [[User:Adam Darlow | Adam Darlow]], [[User:Eric Sodomka | Eric Sodomka]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This section will describe in more detail the inputs, outputs and architecture that were presented in the introduction.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Module Inputs (Incomplete) ====&lt;br /&gt;
* A set of utility dimensions {d1, d2, ...} are defined in the framework. These could be {d1=&amp;quot;time&amp;quot;, d2=&amp;quot;fatigue&amp;quot;, ...}&lt;br /&gt;
* A set of interaction functions. These specify all of the information that the application wants to give users or get from them. It is not tied to a specific interface. For example, the fact that an applications shows videos would be included here. Whether it displays them embedded, in a pop-up window or fullscreen would not.&lt;br /&gt;
* A mapping of interaction functions to interface elements (e.g., buttons, windows, dials,...). Lots of optional information describing visual properties, associated text, physical interactions (e.g., turning the dial clockwise increases the input value) and timing.&lt;br /&gt;
* Functional user traces - sequences of interaction functions that represent typical user interactions with the application. Could include a goal hierarchy, in which case the function sequence is at the bottom of the hierarchy.&lt;br /&gt;
&lt;br /&gt;
==== Module Outputs ====&lt;br /&gt;
* Every module ouputs at least one of the following:&lt;br /&gt;
** An evaluation of the interface&lt;br /&gt;
*** This can be on any or all of the utility dimensions, e.g. evaluation={d1=score1, d2=score2, ...}&lt;br /&gt;
*** This can alternately be an overall evaluation, ignoring dimensions, e.g. evaluation={score}&lt;br /&gt;
**** In this case, the aggregator will treat this as the module giving the same score to all dimensions. Which dimension this evaluator actually predicts well on can be learned by the aggregator over time.&lt;br /&gt;
** Recommendation(s) for improving the interface&lt;br /&gt;
***This can be a textual description of what changes the designer should make&lt;br /&gt;
***This can alternately be a transformation that can automatically be applied to the interface language (without designer intervention)&lt;br /&gt;
***In addition to the textual or transformational description of the recommendation, a &amp;quot;change in evaluation&amp;quot; is output to describe how specifically the value will improve the interface&lt;br /&gt;
****Recommendation = {description=&amp;quot;make this change&amp;quot;, Δevaluation={d1=score1, d2=score2, ...}&lt;br /&gt;
****Like before, this Δevaluation can cover any number of dimensions, or it can be generic.&lt;br /&gt;
***Either a single recommendation or a set of recommendations can be output&lt;br /&gt;
&lt;br /&gt;
==== Aggregator Inputs ====&lt;br /&gt;
The aggregator receives as input the outputs of all the modules.&lt;br /&gt;
&lt;br /&gt;
==== Aggregator Outputs ====&lt;br /&gt;
&lt;br /&gt;
Outputs for the aggregator are the same as the outputs for each module. The difference is that the aggregator will consider all the module outputs, and arrive at a merged output based on the past performance of each of the modules.&lt;br /&gt;
&lt;br /&gt;
== Evaluation and Recommendation via Modules ==&lt;br /&gt;
* Owner: [[User:E J Kalafarski | E J Kalafarski]]&lt;br /&gt;
&lt;br /&gt;
A &amp;quot;meta-module&amp;quot; called the aggregator will be responsible for assembling and formatting the output of all other modules into a structure that is both extensible and immediately usable, by both an automated designer or a human designer.&lt;br /&gt;
&lt;br /&gt;
===Requirements===&lt;br /&gt;
The aggregator&#039;s functionality, then, is defined by its &#039;&#039;&#039;inputs&#039;&#039;&#039;, the outputs of the other modules, and the desired &#039;&#039;&#039;output&#039;&#039;&#039; of the system as a whole, per its position in the architecture.  Its purpose is largely formatting and reconciliation of the products of the multitudinous (and extensible) modules.  The output of the aggregator must meet several requirements: first, to generate a set of human-readable suggestions for the improvement of the given interface; second, to generate a machine-readable, but also analyzable, evaluation of the various characteristics of the interface and accompanying user traces.&lt;br /&gt;
&lt;br /&gt;
From these specifications, it is logical to assume that a common language or format will be required for the output of individual modules.  We propose an XML-based file format, allowing: (1) a section for the standardized identification of problem areas, applicable rules, and proposed improvements, generalized by the individual module and mapped to a single element, or group of elements, in the original interface specification; (2) a section for specification of generalizable &amp;quot;utility&amp;quot; functions, allowing a module to specify how much a measurable quantity of utility is positively or negatively affected by properties of the input interface; (3) new, user-definable sections for evaluations of the given interface not covered by the first two sections.  The first two sections are capable of conveying the vast majority of module outputs predicted at this time, but the XML can extensibly allow modules to pass on whatever information may become prominent in the future.&lt;br /&gt;
&lt;br /&gt;
===Specification===&lt;br /&gt;
 &amp;lt;module id=&amp;quot;Fitts-Law&amp;quot;&amp;gt;&lt;br /&gt;
 	&amp;lt;interface-elements&amp;gt;&lt;br /&gt;
 		&amp;lt;element&amp;gt;&lt;br /&gt;
 			&amp;lt;desc&amp;gt;submit button&amp;lt;/desc&amp;gt;&lt;br /&gt;
 			&amp;lt;problem&amp;gt;&lt;br /&gt;
 				&amp;lt;desc&amp;gt;size&amp;lt;/desc&amp;gt;&lt;br /&gt;
 				&amp;lt;suggestion&amp;gt;width *= 2&amp;lt;/suggestion&amp;gt;&lt;br /&gt;
 				&amp;lt;suggetsion&amp;gt;height *= 2&amp;lt;/suggestions&amp;gt;&lt;br /&gt;
 				&amp;lt;human-suggestion&amp;gt;Increase size relative to other elements&amp;lt;/human-suggestion&amp;gt;&lt;br /&gt;
 			&amp;lt;/problem&amp;gt;&lt;br /&gt;
 		&amp;lt;/element&amp;gt;&lt;br /&gt;
 	&amp;lt;/interface-elements&amp;gt;&lt;br /&gt;
 	&amp;lt;utility&amp;gt;&lt;br /&gt;
 		&amp;lt;dimension&amp;gt;&lt;br /&gt;
 			&amp;lt;desc&amp;gt;time&amp;lt;/desc&amp;gt;&lt;br /&gt;
 			&amp;lt;value&amp;gt;0:15:35&amp;lt;/value&amp;gt;&lt;br /&gt;
 		&amp;lt;/dimension&amp;gt;&lt;br /&gt;
 		&amp;lt;dimension&amp;gt;&lt;br /&gt;
 			&amp;lt;desc&amp;gt;frustration&amp;lt;/desc&amp;gt;&lt;br /&gt;
 			&amp;lt;value&amp;gt;pulling hair out&amp;lt;/value&amp;gt;&lt;br /&gt;
 		&amp;lt;/dimension&amp;gt;&lt;br /&gt;
 		&amp;lt;dimension&amp;gt;&lt;br /&gt;
 			&amp;lt;desc&amp;gt;efficiency&amp;lt;/desc&amp;gt;&lt;br /&gt;
 			&amp;lt;value&amp;gt;13.2s/KPM task&amp;lt;/value&amp;gt;&lt;br /&gt;
 			&amp;lt;value&amp;gt;0.56m/CPM task&amp;lt;/value&amp;gt;&lt;br /&gt;
 		&amp;lt;/dimension&amp;gt;&lt;br /&gt;
 	&amp;lt;/utility&amp;gt;&lt;br /&gt;
 	&amp;lt;tasks&amp;gt;&lt;br /&gt;
 		&amp;lt;task&amp;gt;&lt;br /&gt;
 			&amp;lt;desc&amp;gt;complete form&amp;lt;/desc&amp;gt;&lt;br /&gt;
 		&amp;lt;/task&amp;gt;&lt;br /&gt;
 		&amp;lt;task&amp;gt;&lt;br /&gt;
 			&amp;lt;desc&amp;gt;lookup SSN&amp;lt;/desc&amp;gt;&lt;br /&gt;
 		&amp;lt;/task&amp;gt;&lt;br /&gt;
 		&amp;lt;task&amp;gt;&lt;br /&gt;
 			&amp;lt;desc&amp;gt;format phone number&amp;lt;/desc&amp;gt;&lt;br /&gt;
 		&amp;lt;/task&amp;gt;&lt;br /&gt;
 	&amp;lt;/tasks&amp;gt;&lt;br /&gt;
 &amp;lt;/module&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Logic===&lt;br /&gt;
This file provided by each module is then the input for the aggregator.  The aggregator&#039;s most straightforward function is the compilation of the &amp;quot;problem areas,&amp;quot; assembling them and noting problem areas and suggestions that are recommended by more than one module, and weighting them accordingly in its final report.  These weightings can begin in an equal state, but the aggregator should be capable of learning iteratively which modules&#039; results are most relevant to the user and update weightings accordingly.  This may need to be accomplished with manual tuning, or a machine-learning algorithm capable of determining which modules most often agree with others.&lt;br /&gt;
&lt;br /&gt;
Secondly, the aggregator compiles the utility functions provided by the module specs.  This, again, is a summation of similarly-described values from the various modules.&lt;br /&gt;
&lt;br /&gt;
When confronted with user-defined sections of the XML spec, the aggregator is primarily responsible for compiling them and sending them along to the output of the machine.  Even if the aggregator does not recognize a section or property of the evaluative spec, if it sees the property reported by more than one module it should be capable of aggregating these intelligently.  In future versions of the spec, it should be possible for a module to provide instructions for the aggregator on how to handle unrecognized sections of the XML.&lt;br /&gt;
&lt;br /&gt;
From these compilations, then, the aggregator should be capable of outputting both aggregated human-readable suggestions on interface improvements for a human designer, as well as a comprehensive evaluation of the interface&#039;s effectiveness at the given task traces.  Again, this is dependent on the specification of the system as a whole, but is likely to include measures and comparisons, graphings of task versus utility, and quantitative measures of an element&#039;s effectiveness.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This section is necessarily defined by the output of the individual modules (which I already expect to be of varied and arbitrary structure) and the desired output of the machine as a whole.  It will likely need to be revised heavily after other modules and the &amp;quot;Parellel Framework&amp;quot; section are defined.&#039;&#039; [[User:E J Kalafarski|E J Kalafarski]] 12:34, 24 April 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This section describes the aggregator, which takes the output of multiple independent modules and aggregates the results to provide (1) an evaluation and (2) recommendations for the user interface. We should explain how the aggregator weights the output of different modules (this could be based on historical performance of each module, or perhaps based on E.J.&#039;s cognitive/HCI guidelines).&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Sample Modules ==&lt;br /&gt;
&lt;br /&gt;
=== CPM-GOMS ===&lt;br /&gt;
* Owners: [[User:Steven Ellis | Steven Ellis]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This module will provide interface evaluations and suggestions based on a CPM-GOMS model of cognition for the given interface. It will provide a quantitative, predictive, cognition-based parameterization of usability. From empirically collected data, user trajectories through the model (critical paths) will be examined, highlighting bottlenecks within the interface, and offering suggested alterations to the interface to induce more optimal user trajectories.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
I’m hoping to have some input on this section, because it seems to be the crux of the “black box” into which we take the inputs of interface description, user traces, etc. and get our outputs (time, recommendations, etc.).  I know at least a few people have pretty strong thoughts on the matter and we ought to discuss the final structure.&lt;br /&gt;
&lt;br /&gt;
That said – my proposal for the module:&lt;br /&gt;
*In my opinion the concept of the Model Human Processor (at least as applied in CPM) is outdated – it’s too economic/overly parsimonious in its conception of human activity.  I think we need to create a structure which accounts for more realistic conditions of HCI including multitasking, aspects of distributed cognition (and other relevant uses of tools – as far as I can tell CPM doesn’t take into account any sort of productivity aids), executive control processes of attention, etc.  ACT-R appears to take steps towards this but we would probably need to look at their algorithms to know for sure.&lt;br /&gt;
*Critical paths will continue to play an important role – we should in fact emphasize that part of this tool’s purpose will be a description not only of ways in which the interface should be modified to best fit a critical path, but also ways in which the user’s ought to be instructed in their use of the path.  This feedback mechanism could be bidirectional – if the model’s predictions of the user’s goals are incorrect, the critical path determined will also be incorrect and the interface inherently suboptimal.  The user could be prompted with a tooltip explaining in brief why and how the interface has changed, along with options to revert, select other configurations (euphemized by goals), and to view a short video detailing how to properly use the interface.&lt;br /&gt;
*Call me crazy but, if we assume designers will be willing to code a model of their interfaces into our ACT-R-esque language, could we allow that model to be fairly transparent to the user, who could use a gui to input their goals to find an analogue in the program which would subsequently rearrange its interface to fit the user’s needs?  Even if not useful to the users, such dynamic modeling could really help designers (IMO)&lt;br /&gt;
*I think the model should do its best to accept models written for ACT-R and whatever other cognitive models there are out there – gives us the best chance of early adoption&lt;br /&gt;
*I would particularly appreciate input on the number/complexity/type of inputs we’ll be using, as well as the same qualities for the output.&lt;br /&gt;
&lt;br /&gt;
=== HCI Guidelines ===&lt;br /&gt;
* Owner: [[User:E J Kalafarski | E J Kalafarski]]&lt;br /&gt;
&lt;br /&gt;
Schneiderman&#039;s Eight Golden Rules and Jakob Nielsen&#039;s Ten Heuristics are perhaps the most famous and well-regarded heuristic design guidelines to emerge over the last twenty years.  Although the explicit theoretical basis for such heuristics is controversial and not well-explored, the empirical success of these guidelines is established and accepted.  This module will parse out up to three or four common (that is, intersecting) principles from these accepted guidelines and apply them to the input interface.&lt;br /&gt;
&lt;br /&gt;
As an example, we identify an analogous principle that appears in Schneiderman (&amp;quot;Reduce short-term memory load&amp;quot;)&amp;lt;ref&amp;gt;http://faculty.washington.edu/jtenenbg/courses/360/f04/sessions/schneidermanGoldenRules.html&amp;lt;/ref&amp;gt; and Nielsen (&amp;quot;Recognition rather than recall/Minimize the user&#039;s memory load&amp;quot;)&amp;lt;ref&amp;gt;http://www.useit.com/papers/heuristic/heuristic_list.html&amp;lt;/ref&amp;gt;.  The input interface is then evaluated for the consideration of the principle, based on an explicit formal description of the interface, such as XAML or XUL.  The module attempts to determine how effectively the interface demonstrates the principle.  When analyzing an interface for several principles that may be conflicting or opposing in a given context, the module makes use of a hard-coded but iterative (and evolving) weighting of these principles, based on (1) how often they appear in the training set of accepted sets of guidelines, (2) how analogues a heuristic principle is to a cognitive principle in a parallel training set, and (3) how effective the principle&#039;s associated suggestion is found to be using a feedback mechanism.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inputs&#039;&#039;&#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
# A formal description of the interface and its elements (e.g. buttons).&lt;br /&gt;
# A formal description of a particular task and the possible paths through a subset of interface elements that permit the user to accomplish that task.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Output&#039;&#039;&#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
Standard XML-formatted file containing problem areas of the input interface, suggestions for each problem area based on principles that were found to have a strong application to a problem element and the problem itself, and a human-readable generated analysis of the element&#039;s affinity for the principle.  Quantitative outputs will not be possible based on heuristic guidelines, and the &amp;quot;utility&amp;quot; section of this module&#039;s output is likely to be blank.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This section could include an example or two of established design guidelines that could easily be implemented as modules.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Fitts&#039;s Law ===&lt;br /&gt;
* Owner: [[User:Jon Ericson | Jon Ericson]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This module provides an estimate of the required time to complete various tasks that have been decomposed into formalized sequences of interactions with interface elements, and will provide evaluations and recommendations for optimizing the time required to complete those tasks using the interface.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1. A formal description of the interface and its elements (e.g. buttons).&lt;br /&gt;
&lt;br /&gt;
2. A formal description of a particular task and the possible paths through a subset of interface elements that permit the user to accomplish that task.&lt;br /&gt;
&lt;br /&gt;
3. The physical distances between interface elements along those paths.&lt;br /&gt;
&lt;br /&gt;
4. The width of those elements along the most likely axes of motion.&lt;br /&gt;
&lt;br /&gt;
5. Device (e.g. mouse) characteristics including start/stop time and the inherent speed limitations of the device.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Output&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The module will then use the Shannon formulation of Fitt&#039;s Law to compute the average time needed to complete the task along those paths.&lt;br /&gt;
&lt;br /&gt;
=== Affordances ===&lt;br /&gt;
* Owner: [[User:Jon Ericson | Jon Ericson]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This simple module will provide interface evaluations and recommendations based on a measure of the extent to which the user perceives the relevant affordances of the interface when performing a number of specified tasks.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inputs&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Formalized descriptions of...&lt;br /&gt;
&lt;br /&gt;
1. Interface elements&lt;br /&gt;
&lt;br /&gt;
2. Their associated actions&lt;br /&gt;
&lt;br /&gt;
3. The functions of those actions&lt;br /&gt;
&lt;br /&gt;
4. A particular task&lt;br /&gt;
&lt;br /&gt;
5. User traces for that task.  &lt;br /&gt;
&lt;br /&gt;
Inputs (1-4) are then used to generate a &amp;quot;user-independent&amp;quot; space of possible functions that the interface is capable of performing with respect to a given task -- what the interface &amp;quot;affords&amp;quot; the user.  From this set of possible interactions, our model will then determine the subset of optimal paths for performing a particular task.  The user trace (5) is then used to determine what functions actually were performed in the course of a given task of interest and this information is then compared to the optimal path data to determine the extent to which affordances of the interface are present but not perceived.  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Output&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The output of this module is a simple ratio of (affordances perceived) / [(relevant affordances present) * (time to complete task)] which provides a quantitative measure of the extent to which the interface is &amp;quot;natural&amp;quot; to use for a particular task.&lt;br /&gt;
&lt;br /&gt;
=== Workflow, Multi-tasking and Interruptions ===&lt;br /&gt;
* Owner: [[User:Andrew Bragdon | Andrew Bragdon]]&lt;br /&gt;
&lt;br /&gt;
There are, at least, two levels at which users work ([http://portal.acm.org/citation.cfm?id=985692.985707&amp;amp;coll=portal&amp;amp;dl=ACM&amp;amp;CFID=20781736&amp;amp;CFTOKEN=83176621 Gonzales, et al., 2004]).  Users accomplish individual low-level tasks which are part of larger &#039;&#039;working spheres&#039;&#039;; for example, an office worker might send several emails, create several Post-It (TM) note reminders, and then edit a word document, each of these smaller tasks being part of a single larger working sphere of &amp;quot;adding a new section to the website.&amp;quot;  Thus, it is important to understand this larger workflow context - which often involves extensive levels of multi-tasking, as well as switching between a variety of computing devices and traditional tools, such as notebooks.  In this study it was found that the information workers surveyed typically switch individual tasks every 2 minutes and have many simultaneous working spheres which they switch between, on average every 12 minutes.  This frenzied pace of switching tasks and switching working spheres suggests that users will not be using a single application or device for a long period of time, and that affordances to support this characteristic pattern of information work are important.&lt;br /&gt;
&lt;br /&gt;
The purpose of this module is to integrate existing work on multi-tasking, interruption and higher-level workflow into a framework which can predict user recovery times from interruptions.  Specifically, the goals of this framework will be to:&lt;br /&gt;
&lt;br /&gt;
* Understand the role of the larger workflow context in user interfaces&lt;br /&gt;
* Understand the impact of interruptions on user workflow&lt;br /&gt;
* Understand how to design software which fits into the larger working spheres in which information work takes place&lt;br /&gt;
&lt;br /&gt;
It is important to point out that because workflow and multi-tasking rely heavily on higher-level brain functioning, it is unrealistic within the scope of this grant to propose a system which can predict user performance given a description of a set of arbitrary software programs.  Therefore, we believe this module will function much more in a qualitative role to provide context to the rest of the model.  Specifically, our findings related to interruption and multi-tasking will advance the basic research question of &amp;quot;how do you users react to interruptions when using working sets of varying sizes?&amp;quot;.  This core HCI contribution will help to inform the rest of the outputs of the model in a qualitative manner.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
N/A&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Outputs&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
N/A&lt;br /&gt;
&lt;br /&gt;
=== Working Memory Load ===&lt;br /&gt;
* Owner: [[User:Gideon Goldin | Gideon Goldin]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This module measures how much information the user needs to retain in memory while interacting with the interface and makes suggestions for improvements.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Models&lt;br /&gt;
** Beddeley&#039;s Model of Working Memory&amp;lt;ref&amp;gt;http://en.wikipedia.org/wiki/Baddeley%27s_model_of_working_memory&amp;lt;/ref&amp;gt;&lt;br /&gt;
*** Episodic Buffer&lt;br /&gt;
** George Miller&#039;s &amp;quot;The magic number 7 plus or minus 2&amp;quot;&amp;lt;ref&amp;gt;http://en.wikipedia.org/wiki/The_Magical_Number_Seven,_Plus_or_Minus_Two&amp;lt;/ref&amp;gt;&lt;br /&gt;
** The magic number 4&amp;lt;ref&amp;gt;Cowan, N. (2001). The magical number 4 in short-term memory: A reconsideration of mental storage capacity. Behavioral and Brain Sciences, 24, 87-185.&amp;lt;/ref&amp;gt;&lt;br /&gt;
* Chunking&amp;lt;ref&amp;gt;http://en.wikipedia.org/wiki/Chunking_(psychology)&amp;lt;/ref&amp;gt;&lt;br /&gt;
* Priming&amp;lt;ref&amp;gt;http://en.wikipedia.org/wiki/Priming_(psychology)&amp;lt;/ref&amp;gt;&lt;br /&gt;
* Subitizing and Counting&amp;lt;ref&amp;gt;http://en.wikipedia.org/wiki/Subitizing&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
* Visual Stimuli&lt;br /&gt;
* Audio Stimuli&lt;br /&gt;
&#039;&#039;&#039;Outputs&#039;&#039;&#039;&lt;br /&gt;
* Remembered percepts&lt;br /&gt;
* Half-Life of percepts&lt;br /&gt;
&lt;br /&gt;
=== Automaticity of Interaction ===&lt;br /&gt;
* Owner: [[User:Gideon Goldin | Gideon Goldin]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Measures how easily the interaction with the interface becomes automatic with experience and makes suggestions for improvements.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Learning&amp;lt;ref&amp;gt;http://en.wikipedia.org/wiki/Learning#Mathematical_models_of_learning&amp;lt;/ref&amp;gt;&lt;br /&gt;
** Logan&#039;s instance theory of automatization&amp;lt;ref&amp;gt;http://74.125.95.132/search?q=cache:IZ-Zccsu3SEJ:psych.wisc.edu/ugstudies/psych733/logan_1988.pdf+logan+isntance+teory&amp;amp;cd=1&amp;amp;hl=en&amp;amp;ct=clnk&amp;amp;gl=us&amp;amp;client=firefox-a&amp;lt;/ref&amp;gt;&lt;br /&gt;
* Fluency&lt;br /&gt;
** As meta-cognitive information &amp;lt;ref&amp;gt;http://www.sciencedirect.com/science?_ob=ArticleURL&amp;amp;_udi=B6VH9-4SM7PFK-4&amp;amp;_user=10&amp;amp;_rdoc=1&amp;amp;_fmt=&amp;amp;_orig=search&amp;amp;_sort=d&amp;amp;view=c&amp;amp;_acct=C000050221&amp;amp;_version=1&amp;amp;_urlVersion=0&amp;amp;_userid=10&amp;amp;md5=10cd279fa80958981fcc3c06684c09af&amp;lt;/ref&amp;gt;&lt;br /&gt;
** As a cognitive &#039;&#039;heuristic&#039;&#039;&amp;lt;ref&amp;gt;http://en.wikipedia.org/wiki/Fluency_heuristic&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
* Interface&lt;br /&gt;
* User goals&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Outputs&#039;&#039;&#039;&lt;br /&gt;
* Learning curve&lt;br /&gt;
&lt;br /&gt;
== Integration into the Design Process ==&lt;br /&gt;
* Owner: [[User:Ian Spector | Ian Spector]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This section outlines the process of designing an HCI interface and at what stages our proposal fits in and how.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Preliminary Results =&lt;br /&gt;
&lt;br /&gt;
===Workflow, Multi-tasking, and Interruption===&lt;br /&gt;
&lt;br /&gt;
====I.  &#039;&#039;&#039;Goals&#039;&#039;&#039;====&lt;br /&gt;
&lt;br /&gt;
The goals of the preliminary work are to gain qualitative insight into how information workers practice metawork, and to determine whether people might be better-supported with software which facillitates metawork and interruptions.  Thus, the preliminary work should investigate, and demonstrate, the need and impact of the core goals of the project.&lt;br /&gt;
&lt;br /&gt;
====II.  &#039;&#039;&#039;Methodology&#039;&#039;&#039;====&lt;br /&gt;
&lt;br /&gt;
Seven information workers, ages 20-38 (5 male, 2 female), were interviewed to determine which methods they use to &amp;quot;stay organized&amp;quot;.  An initial list of metawork strategies was established from two pilot interviews, and then a final list was compiled.  Participants then responded to a series of 17 questions designed to gain insight into their metawork strategies and process.  In addition, verbal interviews were conducted to get additional open-ended feedback.&lt;br /&gt;
&lt;br /&gt;
====III.  &#039;&#039;&#039;Final Results&#039;&#039;&#039;====&lt;br /&gt;
A histogram of methods people use to &amp;quot;stay organized&amp;quot; in terms of tracking things they need to do (TODOs), appointments and meetings, etc. is shown in the figure below.&lt;br /&gt;
&lt;br /&gt;
[[Image:AcbGraph.jpg]]&lt;br /&gt;
&lt;br /&gt;
In addition to these methods, participants also used a number of other methods, including:&lt;br /&gt;
&lt;br /&gt;
* iCal&lt;br /&gt;
* Notes written in xterms&lt;br /&gt;
* &amp;quot;Inbox zero&amp;quot; method of email organization&lt;br /&gt;
* iGoogle Notepad (for tasks)&lt;br /&gt;
* Tag emails as &amp;quot;TODO&amp;quot;, &amp;quot;Important&amp;quot;, etc.&lt;br /&gt;
* Things (Organizer Software)&lt;br /&gt;
* Physical items placed to &amp;quot;remind me of things&amp;quot;&lt;br /&gt;
* Sometimes arranging windows on desk&lt;br /&gt;
* Keeping browser tabs open&lt;br /&gt;
* Bookmarking web pages&lt;br /&gt;
* Keep programs/files open scrolled to certain locations sometimes with things selected&lt;br /&gt;
&lt;br /&gt;
In addition, three participants said that when interrupted they &amp;quot;rarely&amp;quot; or &amp;quot;very rarely&amp;quot; were able to resume the task they were working on prior to the interruption.  Three of the participants said that they would not actively recommend their metawork strategies for other people, and two said that staying organized was &amp;quot;difficult&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Four participants were neutral to the idea of new tools to help them stay organized and three said that they would like to have such a tool/tools.&lt;br /&gt;
&lt;br /&gt;
====IV.  &#039;&#039;&#039;Discussion&#039;&#039;&#039;====&lt;br /&gt;
These results qunatiatively support our hypothesis that there is no clearly dominant set of metawork strategies employed by information workers.  This highly fragemented landscape is surprising, even though most information workers work in a similar environment - at a desk, on the phone, in meetings - and with the same types of tools - computers, pens, paper, etc.  We believe that this suggests that there are complex tradeoffs between these methods and that no single method is sufficient.  We therefore believe that users will be better supported with a new set of software-based metawork tools.&lt;br /&gt;
&lt;br /&gt;
= [Criticisms] =&lt;br /&gt;
* Owner: [[User:Andrew Bragdon | Andrew Bragdon]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Any criticisms or questions we have regarding the proposal can go here.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=References=&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Trevor O&#039;Brien</name></author>
	</entry>
	<entry>
		<id>http://vrl.cs.brown.edu/wiki/index.php?title=CS295J/Research_proposal_(draft_2)&amp;diff=3166</id>
		<title>CS295J/Research proposal (draft 2)</title>
		<link rel="alternate" type="text/html" href="http://vrl.cs.brown.edu/wiki/index.php?title=CS295J/Research_proposal_(draft_2)&amp;diff=3166"/>
		<updated>2009-04-24T16:28:50Z</updated>

		<summary type="html">&lt;p&gt;Trevor O&amp;#039;Brien: /* Recording User-Interaction Primitives */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
* Owners: [[User:Adam Darlow | Adam Darlow]], [[User:Eric Sodomka | Eric Sodomka]], [[User: Trevor O&#039;Brien | Trevor]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Propose:&#039;&#039;&#039; The design, application and evaluation of a novel, cognition-based, computational framework for assessing interface design and providing automated suggestions to optimize usability.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Evaluation Methodology:&#039;&#039;&#039;  Our techniques will be evaluated quantitatively through a series of user-study trials, as well as qualitatively by a team of expert interface designers. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Contributions and Significance:&#039;&#039;&#039;  We expect this work to make the following contributions:  &lt;br /&gt;
# design-space analysis and quantitative evaluation of cognition-based techniques for assessing user interfaces.  &lt;br /&gt;
# design and quantitative evaluation of techniques for suggesting optimized interface-design changes. &lt;br /&gt;
# an extensible, multimodal software architecture for capturing user traces integrated with pupil-tracking data, auditory recognition, and muscle-activity monitoring.  &lt;br /&gt;
# specification (language?) of how to define an interface evaluation module and how to integrate it into a larger system.  &lt;br /&gt;
# (there may be more here, like testing different cognitive models, generating a markup language to represent interfaces, maybe even a unique metric space for interface usability)&lt;br /&gt;
&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
We propose a framework for interface evaluation and recommendation that integrates behavioral models and design guidelines from both cognitive science and HCI. Our framework behaves like a committee of specialized experts, where each expert provides its own assessment of the interface, given its particular knowledge of HCI or cognitive science. For example, an expert may provide an evaluation based on the GOMS method, Fitts&#039;s law, Maeda&#039;s design principles, or cognitive models of learning and memory. An aggregator collects all of these assessments and weights the opinions of each expert, and outputs to the developer a merged evaluation score and a weighted set of recommendations.&lt;br /&gt;
&lt;br /&gt;
Systematic methods of estimating human performance with computer interfaces are used only sparsely despite their obvious benefits, the reason being the overhead involved in implementing them. In order to test an interface, both manual coding systems like the GOMS variations and user simulations like those based on ACT-R/PM and EPIC require detailed pseudo-code descriptions of the user workflow with the application interface. Any change to the interface then requires extensive changes to the pseudo-code, a major problem because of the trial-and-error nature of interface design. Updating the models themselves is even more complicated. Even an expert in CPM-GOMS, for example, can&#039;t necessarily adapt it to take into account results from new cognitive research.&lt;br /&gt;
&lt;br /&gt;
Our proposal makes automatic interface evaluation easier to use in several ways. First of all, we propose to divide the input to the system into three separate parts, functionality, user traces and interface. By separating the functionality from the interface, even radical interface changes will require updating only that part of the input. The user traces are also defined over the functionality so that they too translate across different interfaces. Second, the parallel modular architecture allows for a lower &amp;quot;entry cost&amp;quot; for using the tool. The system includes a broad array of evaluation modules some of which are very simple and some more complex. The simpler modules use only a subset of the input that a system like GOMS or ACT-R would require. This means that while more input will still lead to better output, interface designers can get minimal evaluations with only minimal information. For example, a visual search module may not require any functionality or user traces in order to determine whether all interface elements are distinct enough to be easy to find. Finally, a parallel modular architecture is much easier to augment with relevant cognitive and design evaluations.&lt;br /&gt;
&lt;br /&gt;
= Background / Related Work =&lt;br /&gt;
&lt;br /&gt;
Each person should add the background related to their specific aims.&lt;br /&gt;
&lt;br /&gt;
* Steven Ellis - Cognitive models of HCI, including GOMS variations and ACT-R&lt;br /&gt;
* EJ - Design Guidelines&lt;br /&gt;
* Jon - Perception and Action&lt;br /&gt;
* Andrew - Multiple task environments&lt;br /&gt;
* Gideon - Cognition and dual systems&lt;br /&gt;
* Ian - Interface design process&lt;br /&gt;
* Trevor - User trace collection methods (especially any eye-tracking, EEG, ... you want to suggest using)&lt;br /&gt;
&lt;br /&gt;
== Cognitive Models ==&lt;br /&gt;
I plan to port over most of the background on cognitive models of HCI from the old proposal&lt;br /&gt;
&lt;br /&gt;
Additions will comprise of:&lt;br /&gt;
*CPM-GOMS as a bridge from GOMS architecture to the promising procedural optimization of the Model Human Processor&lt;br /&gt;
**Context of CPM development, discuss its relation to original GOMS and KLM&lt;br /&gt;
***Establish the tasks which were relevant for optimization when CPM was developed and note that its obsolescence may have been unavoidable&lt;br /&gt;
**Focus on CPM as the first step in transitioning from descriptive data, provided by mounting efforts in the cognitive sciences realm to discover the nature of task processing and accomplishment, to prescriptive algorithms which can predict an interface’s efficiency and suggest improvements&lt;br /&gt;
**CPM’s purpose as an abstraction of cognitive processing – a symbolic representation not designed for accuracy but precision&lt;br /&gt;
**CPM’s successful trials, e.g. Ernestine&lt;br /&gt;
***Implications of this project include CPM’s ability to accurately estimate processing at a psychomotor level&lt;br /&gt;
***Project does suggest limitations, however, when one attempts to examine more complex tasks which involve deeper and more numerous cognitive processes&lt;br /&gt;
*ACT-R as an example of a progressive cognitive modeling tool&lt;br /&gt;
**A tool clearly built by and for cognitive scientists, and as a result presents a much more accurate view of human processing – helpful for our research&lt;br /&gt;
**Built-in automation, which now seems to be a standard feature of cognitive modeling tools&lt;br /&gt;
**Still an abstraction of cognitive processing, but makes adaptation to cutting-edge cognitive research findings an integral aspect of its modular structure&lt;br /&gt;
**Expand on its focus on multi-tasking, taking what was a huge advance between GOMS and its CPM variation and bringing the simulation several steps closer to approximating the nature of cognition in regards to HCI&lt;br /&gt;
**Far more accessible both for researchers and the lay user/designer in its portability to LISP, pre-construction of modules representing cognitive capacities and underlying algorithms modeling paths of cognitive processing&lt;br /&gt;
&lt;br /&gt;
==Design guidelines==&lt;br /&gt;
A multitude of rule sets exist for the design of not only interface, but architecture, city planning, and software development.  They can range in scale from one primary rule to as many Christopher Alexander&#039;s 253 rules for urban environments,&amp;lt;ref&amp;gt;[http://hci.rwth-aachen.de/materials/publications/borchers2000a.pdf Borchers, Jan O.  &amp;quot;A Pattern Approach to Interaction Design.&amp;quot;  2000.]&amp;lt;/ref&amp;gt; which he introduced with the concept design patterns in the 1970s.  Study has likewise been conducted on the use of these rules:&amp;lt;ref&amp;gt;http://stl.cs.queensu.ca/~graham/cisc836/lectures/readings/tetzlaff-guidelines.pdf&amp;lt;/ref&amp;gt; guidelines are often only partially understood, indistinct to the developer, and &amp;quot;fraught&amp;quot; with potential usability problems given a real-world situation.&lt;br /&gt;
&lt;br /&gt;
===Application to AUE===&lt;br /&gt;
And yet, the vast majority of guideline sets, including the most popular rulesets, have been arrived at heuristically.  The most successful, such as Raskin&#039;s and Schneiderman&#039;s, have been forged from years of observation instead of empirical study and experimentation.  The problem is similar to the problem of circular logic faced by automated usability evaluations: an automated system is limited in the suggestions it can offer to a set of preprogrammed guidelines which have often not been subjected to rigorous experimentation.&amp;lt;ref&amp;gt;[http://www.eecs.berkeley.edu/Pubs/TechRpts/2000/CSD-00-1105.pdf Ivory, M and Hearst, M.  &amp;quot;The State of the Art in Automated Usability Evaluation of User Interfaces.&amp;quot; ACM Computing Surveys (CSUR), 2001.]&amp;lt;/ref&amp;gt;  In the vast majority of existing studies, emphasis has traditionally been placed on either the development of guidelines or the application of existing guidelines to automated evaluation.  A mutually-reinforcing development of both simultaneously has not been attempted.&lt;br /&gt;
&lt;br /&gt;
Overlap between rulesets is inevitable and unavoidable.  For our purposes of evaluating existing rulesets efficiently, without extracting and analyzing each rule individually, it may be desirable to identify the the overarching &#039;&#039;principles&#039;&#039; or &#039;&#039;philosophy&#039;&#039; (max. 2 or 3) for a given ruleset and determining their quantitative relevance to problems of cognition.&lt;br /&gt;
&lt;br /&gt;
===Popular and seminal examples===&lt;br /&gt;
Schneiderman&#039;s [http://faculty.washington.edu/jtenenbg/courses/360/f04/sessions/schneidermanGoldenRules.html Eight Golden Rules] date to 1987 and are arguably the most-cited.  They are heuristic, but can be somewhat classified by cognitive objective: at least two rules apply primarily to &#039;&#039;repeated use&#039;&#039;, versus &#039;&#039;discoverability&#039;&#039;.  Up to five of Schneiderman&#039;s rules emphasize &#039;&#039;predictability&#039;&#039; in the outcomes of operations and &#039;&#039;increased feedback and control&#039;&#039; in the agency of the user.  His final rule, paradoxically, removes control from the user by suggesting a reduced short-term memory load, which we can arguably classify as &#039;&#039;simplicity&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Raskin&#039;s [http://www.mprove.de/script/02/raskin/designrules.html Design Rules] are classified into five principles by the author, augmented by definitions and supporting rules.  While one principle is primarily aesthetic (a design problem arguably out of the bounds of this proposal) and one is a basic endorsement of testing, the remaining three begin to reflect philosophies similar to Schneiderman&#039;s: reliability or &#039;&#039;predictability&#039;&#039;, &#039;&#039;simplicity&#039;&#039; or &#039;&#039;efficiency&#039;&#039; (which we can construe as two sides of the same coin), and finally he introduces a concept of &#039;&#039;uninterruptibility&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Maeda&#039;s [http://lawsofsimplicity.com/?cat=5&amp;amp;order=ASC Laws of Simplicity] are fewer, and ostensibly emphasize &#039;&#039;simplicity&#039;&#039; exclusively, although elements of &#039;&#039;use&#039;&#039; as related by Schneiderman&#039;s rules and &#039;&#039;efficiency&#039;&#039; as defined by Raskin may be facets of this simplicity.  Google&#039;s corporate mission statement presents [http://www.google.com/corporate/ux.html Ten Principles], only half of which can be considered true interface guidelines.  &#039;&#039;Efficiency&#039;&#039; and &#039;&#039;simplicity&#039;&#039; are cited explicitly, aesthetics are once again noted as crucial, and working within a user&#039;s trust is another application of &#039;&#039;predictability&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
===Elements and goals of a guideline set===&lt;br /&gt;
Myriad rulesets exist, but variation becomes scarce—it indeed seems possible to parse these common rulesets into overarching principles that can be converted to or associated with quantifiable cognitive properties.  For example, it is likely &#039;&#039;simplicity&#039;&#039; has an analogue in the short-term memory retention or visual retention of the user, vis a vis the rule of [http://books.google.com/books?hl=en&amp;amp;lr=&amp;amp;id=j5q0VvOGExYC&amp;amp;oi=fnd&amp;amp;pg=PA357&amp;amp;dq=seven+plus+or+minus+two&amp;amp;ots=prI3PKJBar&amp;amp;sig=vOZnqpnkXKGYWxK6_XlA4I_CRyI Seven, Plus or Minus Two].  &#039;&#039;Predictability&#039;&#039; likewise may have an analogue in Activity Theory, in regards to a user&#039;s perceptual expectations for a given action; &#039;&#039;uninterruptibility&#039;&#039; has implications in cognitive task-switching;&amp;lt;ref&amp;gt;[http://portal.acm.org/citation.cfm?id=985692.985715&amp;amp;coll=Portal&amp;amp;dl=ACM&amp;amp;CFID=21136843&amp;amp;CFTOKEN=23841774 Czerwinski, Horvitz, and White. &amp;quot;A Diary Study of Task Switching and Interruptions.&amp;quot;  Proceedings of the SIGCHI conference on Human factors in computing systems, 2004.]&amp;lt;/ref&amp;gt; and so forth.&lt;br /&gt;
&lt;br /&gt;
Within the scope of this proposal, we aim to reduce and refine these philosophies found in seminal rulesets and identify their logical cognitive analogues.  By assigning a quantifiable taxonomy to these principles, we will be able to rank and weight them with regard to their real-world applicability, developing a set of &amp;quot;meta-guidelines&amp;quot; and rules for applying them to a given interface in an automated manner.  Combined with cognitive models and multi-modal HCI analysis, we seek to develop, in parallel with these guidelines, the interface evaluation system responsible for their application.&lt;br /&gt;
&lt;br /&gt;
== Perception and Action (in progress) ==&lt;br /&gt;
&lt;br /&gt;
*Information Processing Approach&lt;br /&gt;
**Advantages&lt;br /&gt;
***Formalism eases translation of theory into scripting language&lt;br /&gt;
**Disadvantages&lt;br /&gt;
***Assumes symbolic representation&lt;br /&gt;
&lt;br /&gt;
*Ecological (Gibsonian) Approach&lt;br /&gt;
**Advantages&lt;br /&gt;
***Emphasis on bodily and environmental constraints&lt;br /&gt;
**Disadvantages&lt;br /&gt;
***Lack of formalism hinders translation of theory into scripting language&lt;br /&gt;
&lt;br /&gt;
= Specific Aims and Contributions (to be separated later) =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Specific Aims&#039;&#039;&#039;&lt;br /&gt;
* Incorporate interaction history mechanisms into a set of existing applications.&lt;br /&gt;
* Perform user-study evaluation of history-collection techniques.&lt;br /&gt;
* Distill a set of cognitive principles/models, and evaluate empirically?&lt;br /&gt;
* Build/buy sensing system to include pupil-tracking, muscle-activity monitoring, auditory recognition.&lt;br /&gt;
* Design techniques for manual/semi-automated/automated construction of &amp;lt;insert favorite cognitive model here&amp;gt; from interaction histories and sensing data.&lt;br /&gt;
* Design system for posterior analysis of interaction history w.r.t. &amp;lt;insert favorite cognitive model here&amp;gt;, evaluating critical path &amp;lt;or equivalent&amp;gt; trajectories.&lt;br /&gt;
* Design cognition-based techniques for detecting bottlenecks in critical paths, and offering optimized alternatives. &lt;br /&gt;
* Perform quantitative user-study evaluations, collect qualitative feedback from expert interface designers.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Contributions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Design-space analysis and quantitative evaluation of cognition-based techniques for assessing user interfaces. &lt;br /&gt;
* Design and quantitative evaluation of techniques for suggesting optimized interface-design changes. &lt;br /&gt;
* An extensible, multimodal software architecture for capturing user traces integrated with pupil-tracking data, auditory recognition, and muscle-activity monitoring. &lt;br /&gt;
* (there may be more here, like testing different cognitive models, generating a markup language to represent interfaces, maybe even a unique metric space for interface usability) &lt;br /&gt;
&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
See the [http://vrl.cs.brown.edu/wiki/images/b/b1/Flowchart2.pdf flowchart] for a visual overview of our aims.&lt;br /&gt;
&lt;br /&gt;
In order to use this framework, a designer will have to provide:&lt;br /&gt;
* Functional specification - what are the possible interactions between the user and the application. This can be thought of as method signatures, with a name (e.g., setVolume), direction (to user or from user) and a list of value types (boolean, number, text, video, ...) for each interaction.&lt;br /&gt;
* GUI specification - a mapping of interactions to interface elements (e.g., setVolume is mapped to the grey knob in the bottom left corner with clockwise turning increasing the input number).&lt;br /&gt;
* Functional user traces - sequences of representative ways in which the application is used. Instead of writing them, the designer could have users use the application with a trial interface and then use our methods to generalize the user traces beyond the specific interface (The second method is depicted in the diagram). As a form of pre-processing, the system also generates an interaction transition matrix which lists the probability of each type of interaction given the previous interaction.&lt;br /&gt;
* Utility function - this is a weighting of various performance metrics (time, cognitive load, fatigue, etc.), where the weighting expresses the importance of a particular dimension to the user. For example, a user at NASA probably cares more about interface accuracy than speed. By passing this information to our committee of experts, we can create interfaces that are tuned to maximize the utility of a particular user type.&lt;br /&gt;
&lt;br /&gt;
Each of the modules can use all of this information or a subset of it. Our approach stresses flexibility and the ability to give more meaningful feedback the more information is provided. After processing the information sent by the system of experts, the aggregator will output:&lt;br /&gt;
* An evaluation of the interface. Evaluations are expressed both in terms of the utility function components (i.e. time, fatigue, cognitive load, etc.), and in terms of the overall utility for this interface (as defined by the utility function). These evaluations are given in the form of an efficiency curve, where the utility received on each dimension can change as the user becomes more accustomed to the interface. &lt;br /&gt;
* Suggested improvements for the GUI are also output. These suggestions are meant to optimize the utility function that was input to the system. If a user values accuracy over time, interface suggestions will be made accordingly.&lt;br /&gt;
&lt;br /&gt;
== Recording User-Interaction Primitives ==&lt;br /&gt;
* Owner: [[User:Trevor O&#039;Brien | Trevor O&#039;Brien]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aims&#039;&#039;&#039;&lt;br /&gt;
* Develop system for logging low-level user-interactions within existing applications.  By low-level interactions, we refer to those interactions for which a quantitative, predictive, GOMS-like model may be generated.&lt;br /&gt;
* At the same scale of granularity, integrate explicit interface-interactions with multimodal-sensing data.  i.e. pupil-tracking, muscle-activity monitoring, auditory recognition, EEG data, and facial and posture-focused video. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Contributions&#039;&#039;&#039;&lt;br /&gt;
* Extensible, multimodal, HCI framework for recording rich interaction-history data in existing applications.  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Significance&#039;&#039;&#039;&lt;br /&gt;
* Provide rich history data to serve as the basis for novel quantitative interface evaluation.&lt;br /&gt;
* Aid expert HCI and visual designers in traditional design processes.&lt;br /&gt;
* Provide data for automated machine-learning strategies applied to interaction.&lt;br /&gt;
&lt;br /&gt;
== Semantic-level Interaction Chunking ==&lt;br /&gt;
* Owner: [[User:Trevor O&#039;Brien | Trevor O&#039;Brien]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;The user traces that are collected are tied to a specific interface. In order to use them with different interfaces to the same application, they should be generalized to be based only on the functional description of the application and the user&#039;s goal hierarchy. This would abstract away from actions like accessing a menu.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;In addition to specific user traces, many modules could use a transition probability matrix based on interaction predictions.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Parallel Framework for Evaluation Modules ==&lt;br /&gt;
* Owner: [[User:Adam Darlow | Adam Darlow]], [[User:Eric Sodomka | Eric Sodomka]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This section will describe in more detail the inputs, outputs and architecture that were presented in the introduction.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Module Inputs (Incomplete) ====&lt;br /&gt;
* A set of utility dimensions {d1, d2, ...} are defined in the framework. These could be {d1=&amp;quot;time&amp;quot;, d2=&amp;quot;fatigue&amp;quot;, ...}&lt;br /&gt;
* A set of interaction functions. These specify all of the information that the application wants to give users or get from them. It is not tied to a specific interface. For example, the fact that an applications shows videos would be included here. Whether it displays them embedded, in a pop-up window or fullscreen would not.&lt;br /&gt;
* A mapping of interaction functions to interface elements (e.g., buttons, windows, dials,...). Lots of optional information describing visual properties, associated text, physical interactions (e.g., turning the dial clockwise increases the input value) and timing.&lt;br /&gt;
* Functional user traces - sequences of interaction functions that represent typical user interactions with the application. Could include a goal hierarchy, in which case the function sequence is at the bottom of the hierarchy.&lt;br /&gt;
&lt;br /&gt;
==== Module Outputs ====&lt;br /&gt;
* Every module ouputs at least one of the following:&lt;br /&gt;
** An evaluation of the interface&lt;br /&gt;
*** This can be on any or all of the utility dimensions, e.g. evaluation={d1=score1, d2=score2, ...}&lt;br /&gt;
*** This can alternately be an overall evaluation, ignoring dimensions, e.g. evaluation={score}&lt;br /&gt;
**** In this case, the aggregator will treat this as the module giving the same score to all dimensions. Which dimension this evaluator actually predicts well on can be learned by the aggregator over time.&lt;br /&gt;
** Recommendation(s) for improving the interface&lt;br /&gt;
***This can be a textual description of what changes the designer should make&lt;br /&gt;
***This can alternately be a transformation that can automatically be applied to the interface language (without designer intervention)&lt;br /&gt;
***In addition to the textual or transformational description of the recommendation, a &amp;quot;change in evaluation&amp;quot; is output to describe how specifically the value will improve the interface&lt;br /&gt;
****Recommendation = {description=&amp;quot;make this change&amp;quot;, Δevaluation={d1=score1, d2=score2, ...}&lt;br /&gt;
****Like before, this Δevaluation can cover any number of dimensions, or it can be generic.&lt;br /&gt;
***Either a single recommendation or a set of recommendations can be output&lt;br /&gt;
&lt;br /&gt;
==== Aggregator Inputs ====&lt;br /&gt;
The aggregator receives as input the outputs of all the modules.&lt;br /&gt;
&lt;br /&gt;
==== Aggregator Outputs ====&lt;br /&gt;
&lt;br /&gt;
Outputs for the aggregator are the same as the outputs for each module. The difference is that the aggregator will consider all the module outputs, and arrive at a merged output based on the past performance of each of the modules.&lt;br /&gt;
&lt;br /&gt;
== Evaluation and Recommendation via Modules ==&lt;br /&gt;
* Owner: [[User:E J Kalafarski | E J Kalafarski]]&lt;br /&gt;
&lt;br /&gt;
A &amp;quot;meta-module&amp;quot; called the aggregator will be responsible for assembling and formatting the output of all other modules into a structure that is both extensible and immediately usable, by both an automated designer or a human designer.&lt;br /&gt;
&lt;br /&gt;
===Requirements===&lt;br /&gt;
The aggregator&#039;s functionality, then, is defined by its &#039;&#039;&#039;inputs&#039;&#039;&#039;, the outputs of the other modules, and the desired &#039;&#039;&#039;output&#039;&#039;&#039; of the system as a whole, per its position in the architecture.  Its purpose is largely formatting and reconciliation of the products of the multitudinous (and extensible) modules.  The output of the aggregator must meet several requirements: first, to generate a set of human-readable suggestions for the improvement of the given interface; second, to generate a machine-readable, but also analyzable, evaluation of the various characteristics of the interface and accompanying user traces.&lt;br /&gt;
&lt;br /&gt;
From these specifications, it is logical to assume that a common language or format will be required for the output of individual modules.  We propose an XML-based file format, allowing: (1) a section for the standardized identification of problem areas, applicable rules, and proposed improvements, generalized by the individual module and mapped to a single element, or group of elements, in the original interface specification; (2) a section for specification of generalizable &amp;quot;utility&amp;quot; functions, allowing a module to specify how much a measurable quantity of utility is positively or negatively affected by properties of the input interface; (3) new, user-definable sections for evaluations of the given interface not covered by the first two sections.  The first two sections are capable of conveying the vast majority of module outputs predicted at this time, but the XML can extensibly allow modules to pass on whatever information may become prominent in the future.&lt;br /&gt;
&lt;br /&gt;
===Specification===&lt;br /&gt;
 &amp;lt;module id=&amp;quot;Fitts-Law&amp;quot;&amp;gt;&lt;br /&gt;
 	&amp;lt;interface-elements&amp;gt;&lt;br /&gt;
 		&amp;lt;element&amp;gt;&lt;br /&gt;
 			&amp;lt;desc&amp;gt;submit button&amp;lt;/desc&amp;gt;&lt;br /&gt;
 			&amp;lt;problem&amp;gt;&lt;br /&gt;
 				&amp;lt;desc&amp;gt;size&amp;lt;/desc&amp;gt;&lt;br /&gt;
 				&amp;lt;suggestion&amp;gt;width *= 2&amp;lt;/suggestion&amp;gt;&lt;br /&gt;
 				&amp;lt;suggetsion&amp;gt;height *= 2&amp;lt;/suggestions&amp;gt;&lt;br /&gt;
 				&amp;lt;human-suggestion&amp;gt;Increase size relative to other elements&amp;lt;/human-suggestion&amp;gt;&lt;br /&gt;
 			&amp;lt;/problem&amp;gt;&lt;br /&gt;
 		&amp;lt;/element&amp;gt;&lt;br /&gt;
 	&amp;lt;/interface-elements&amp;gt;&lt;br /&gt;
 	&amp;lt;utility&amp;gt;&lt;br /&gt;
 		&amp;lt;dimension&amp;gt;&lt;br /&gt;
 			&amp;lt;desc&amp;gt;time&amp;lt;/desc&amp;gt;&lt;br /&gt;
 			&amp;lt;value&amp;gt;0:15:35&amp;lt;/value&amp;gt;&lt;br /&gt;
 		&amp;lt;/dimension&amp;gt;&lt;br /&gt;
 		&amp;lt;dimension&amp;gt;&lt;br /&gt;
 			&amp;lt;desc&amp;gt;frustration&amp;lt;/desc&amp;gt;&lt;br /&gt;
 			&amp;lt;value&amp;gt;pulling hair out&amp;lt;/value&amp;gt;&lt;br /&gt;
 		&amp;lt;/dimension&amp;gt;&lt;br /&gt;
 		&amp;lt;dimension&amp;gt;&lt;br /&gt;
 			&amp;lt;desc&amp;gt;efficiency&amp;lt;/desc&amp;gt;&lt;br /&gt;
 			&amp;lt;value&amp;gt;13.2s/KPM task&amp;lt;/value&amp;gt;&lt;br /&gt;
 			&amp;lt;value&amp;gt;0.56m/CPM task&amp;lt;/value&amp;gt;&lt;br /&gt;
 		&amp;lt;/dimension&amp;gt;&lt;br /&gt;
 	&amp;lt;/utility&amp;gt;&lt;br /&gt;
 	&amp;lt;tasks&amp;gt;&lt;br /&gt;
 		&amp;lt;task&amp;gt;&lt;br /&gt;
 			&amp;lt;desc&amp;gt;complete form&amp;lt;/desc&amp;gt;&lt;br /&gt;
 		&amp;lt;/task&amp;gt;&lt;br /&gt;
 		&amp;lt;task&amp;gt;&lt;br /&gt;
 			&amp;lt;desc&amp;gt;lookup SSN&amp;lt;/desc&amp;gt;&lt;br /&gt;
 		&amp;lt;/task&amp;gt;&lt;br /&gt;
 		&amp;lt;task&amp;gt;&lt;br /&gt;
 			&amp;lt;desc&amp;gt;format phone number&amp;lt;/desc&amp;gt;&lt;br /&gt;
 		&amp;lt;/task&amp;gt;&lt;br /&gt;
 	&amp;lt;/tasks&amp;gt;&lt;br /&gt;
 &amp;lt;/module&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Logic===&lt;br /&gt;
This file provided by each module is then the input for the aggregator.  The aggregator&#039;s most straightforward function is the compilation of the &amp;quot;problem areas,&amp;quot; assembling them and noting problem areas and suggestions that are recommended by more than one module, and weighting them accordingly in its final report.  These weightings can begin in an equal state, but the aggregator should be capable of learning iteratively which modules&#039; results are most relevant to the user and update weightings accordingly.  This may need to be accomplished with manual tuning, or a machine-learning algorithm capable of determining which modules most often agree with others.&lt;br /&gt;
&lt;br /&gt;
Secondly, the aggregator compiles the utility functions provided by the module specs.  This, again, is a summation of similarly-described values from the various modules.&lt;br /&gt;
&lt;br /&gt;
When confronted with user-defined sections of the XML spec, the aggregator is primarily responsible for compiling them and sending them along to the output of the machine.  Even if the aggregator does not recognize a section or property of the evaluative spec, if it sees the property reported by more than one module it should be capable of aggregating these intelligently.  In future versions of the spec, it should be possible for a module to provide instructions for the aggregator on how to handle unrecognized sections of the XML.&lt;br /&gt;
&lt;br /&gt;
From these compilations, then, the aggregator should be capable of outputting both aggregated human-readable suggestions on interface improvements for a human designer, as well as a comprehensive evaluation of the interface&#039;s effectiveness at the given task traces.  Again, this is dependent on the specification of the system as a whole, but is likely to include measures and comparisons, graphings of task versus utility, and quantitative measures of an element&#039;s effectiveness.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This section is necessarily defined by the output of the individual modules (which I already expect to be of varied and arbitrary structure) and the desired output of the machine as a whole.  It will likely need to be revised heavily after other modules and the &amp;quot;Parellel Framework&amp;quot; section are defined.&#039;&#039; [[User:E J Kalafarski|E J Kalafarski]] 12:34, 24 April 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This section describes the aggregator, which takes the output of multiple independent modules and aggregates the results to provide (1) an evaluation and (2) recommendations for the user interface. We should explain how the aggregator weights the output of different modules (this could be based on historical performance of each module, or perhaps based on E.J.&#039;s cognitive/HCI guidelines).&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Sample Modules ==&lt;br /&gt;
&lt;br /&gt;
=== CPM-GOMS ===&lt;br /&gt;
* Owners: [[User:Steven Ellis | Steven Ellis]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This module will provide interface evaluations and suggestions based on a CPM-GOMS model of cognition for the given interface. It will provide a quantitative, predictive, cognition-based parameterization of usability. From empirically collected data, user trajectories through the model (critical paths) will be examined, highlighting bottlenecks within the interface, and offering suggested alterations to the interface to induce more optimal user trajectories.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
I’m hoping to have some input on this section, because it seems to be the crux of the “black box” into which we take the inputs of interface description, user traces, etc. and get our outputs (time, recommendations, etc.).  I know at least a few people have pretty strong thoughts on the matter and we ought to discuss the final structure.&lt;br /&gt;
&lt;br /&gt;
That said – my proposal for the module:&lt;br /&gt;
*In my opinion the concept of the Model Human Processor (at least as applied in CPM) is outdated – it’s too economic/overly parsimonious in its conception of human activity.  I think we need to create a structure which accounts for more realistic conditions of HCI including multitasking, aspects of distributed cognition (and other relevant uses of tools – as far as I can tell CPM doesn’t take into account any sort of productivity aids), executive control processes of attention, etc.  ACT-R appears to take steps towards this but we would probably need to look at their algorithms to know for sure.&lt;br /&gt;
*Critical paths will continue to play an important role – we should in fact emphasize that part of this tool’s purpose will be a description not only of ways in which the interface should be modified to best fit a critical path, but also ways in which the user’s ought to be instructed in their use of the path.  This feedback mechanism could be bidirectional – if the model’s predictions of the user’s goals are incorrect, the critical path determined will also be incorrect and the interface inherently suboptimal.  The user could be prompted with a tooltip explaining in brief why and how the interface has changed, along with options to revert, select other configurations (euphemized by goals), and to view a short video detailing how to properly use the interface.&lt;br /&gt;
*Call me crazy but, if we assume designers will be willing to code a model of their interfaces into our ACT-R-esque language, could we allow that model to be fairly transparent to the user, who could use a gui to input their goals to find an analogue in the program which would subsequently rearrange its interface to fit the user’s needs?  Even if not useful to the users, such dynamic modeling could really help designers (IMO)&lt;br /&gt;
*I think the model should do its best to accept models written for ACT-R and whatever other cognitive models there are out there – gives us the best chance of early adoption&lt;br /&gt;
*I would particularly appreciate input on the number/complexity/type of inputs we’ll be using, as well as the same qualities for the output.&lt;br /&gt;
&lt;br /&gt;
=== HCI Guidelines ===&lt;br /&gt;
* Owner: [[User:E J Kalafarski | E J Kalafarski]]&lt;br /&gt;
&lt;br /&gt;
Schneiderman&#039;s Eight Golden Rules and Jakob Nielsen&#039;s Ten Heuristics are perhaps the most famous and well-regarded heuristic design guidelines to emerge over the last twenty years.  Although the explicit theoretical basis for such heuristics is controversial and not well-explored, the empirical success of these guidelines is established and accepted.  This module will parse out up to three or four common (that is, intersecting) principles from these accepted guidelines and apply them to the input interface.&lt;br /&gt;
&lt;br /&gt;
As an example, we identify an analogous principle that appears in Schneiderman (&amp;quot;Reduce short-term memory load&amp;quot;)&amp;lt;ref&amp;gt;http://faculty.washington.edu/jtenenbg/courses/360/f04/sessions/schneidermanGoldenRules.html&amp;lt;/ref&amp;gt; and Nielsen (&amp;quot;Recognition rather than recall/Minimize the user&#039;s memory load&amp;quot;)&amp;lt;ref&amp;gt;http://www.useit.com/papers/heuristic/heuristic_list.html&amp;lt;/ref&amp;gt;.  The input interface is then evaluated for the consideration of the principle, based on an explicit formal description of the interface, such as XAML or XUL.  The module attempts to determine how effectively the interface demonstrates the principle.  When analyzing an interface for several principles that may be conflicting or opposing in a given context, the module makes use of a hard-coded but iterative (and evolving) weighting of these principles, based on (1) how often they appear in the training set of accepted sets of guidelines, (2) how analogues a heuristic principle is to a cognitive principle in a parallel training set, and (3) how effective the principle&#039;s associated suggestion is found to be using a feedback mechanism.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inputs&#039;&#039;&#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
# A formal description of the interface and its elements (e.g. buttons).&lt;br /&gt;
# A formal description of a particular task and the possible paths through a subset of interface elements that permit the user to accomplish that task.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Output&#039;&#039;&#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
Standard XML-formatted file containing problem areas of the input interface, suggestions for each problem area based on principles that were found to have a strong application to a problem element and the problem itself, and a human-readable generated analysis of the element&#039;s affinity for the principle.  Quantitative outputs will not be possible based on heuristic guidelines, and the &amp;quot;utility&amp;quot; section of this module&#039;s output is likely to be blank.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This section could include an example or two of established design guidelines that could easily be implemented as modules.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Fitts&#039;s Law ===&lt;br /&gt;
* Owner: [[User:Jon Ericson | Jon Ericson]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This module provides an estimate of the required time to complete various tasks that have been decomposed into formalized sequences of interactions with interface elements, and will provide evaluations and recommendations for optimizing the time required to complete those tasks using the interface.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1. A formal description of the interface and its elements (e.g. buttons).&lt;br /&gt;
&lt;br /&gt;
2. A formal description of a particular task and the possible paths through a subset of interface elements that permit the user to accomplish that task.&lt;br /&gt;
&lt;br /&gt;
3. The physical distances between interface elements along those paths.&lt;br /&gt;
&lt;br /&gt;
4. The width of those elements along the most likely axes of motion.&lt;br /&gt;
&lt;br /&gt;
5. Device (e.g. mouse) characteristics including start/stop time and the inherent speed limitations of the device.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Output&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The module will then use the Shannon formulation of Fitt&#039;s Law to compute the average time needed to complete the task along those paths.&lt;br /&gt;
&lt;br /&gt;
=== Affordances ===&lt;br /&gt;
* Owner: [[User:Jon Ericson | Jon Ericson]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This simple module will provide interface evaluations and recommendations based on a measure of the extent to which the user perceives the relevant affordances of the interface when performing a number of specified tasks.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inputs&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Formalized descriptions of...&lt;br /&gt;
&lt;br /&gt;
1. Interface elements&lt;br /&gt;
&lt;br /&gt;
2. Their associated actions&lt;br /&gt;
&lt;br /&gt;
3. The functions of those actions&lt;br /&gt;
&lt;br /&gt;
4. A particular task&lt;br /&gt;
&lt;br /&gt;
5. User traces for that task.  &lt;br /&gt;
&lt;br /&gt;
Inputs (1-4) are then used to generate a &amp;quot;user-independent&amp;quot; space of possible functions that the interface is capable of performing with respect to a given task -- what the interface &amp;quot;affords&amp;quot; the user.  From this set of possible interactions, our model will then determine the subset of optimal paths for performing a particular task.  The user trace (5) is then used to determine what functions actually were performed in the course of a given task of interest and this information is then compared to the optimal path data to determine the extent to which affordances of the interface are present but not perceived.  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Output&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The output of this module is a simple ratio of (affordances perceived) / [(relevant affordances present) * (time to complete task)] which provides a quantitative measure of the extent to which the interface is &amp;quot;natural&amp;quot; to use for a particular task.&lt;br /&gt;
&lt;br /&gt;
=== Workflow, Multi-tasking and Interruptions ===&lt;br /&gt;
* Owner: [[User:Andrew Bragdon | Andrew Bragdon]]&lt;br /&gt;
&lt;br /&gt;
There are, at least, two levels at which users work ([http://portal.acm.org/citation.cfm?id=985692.985707&amp;amp;coll=portal&amp;amp;dl=ACM&amp;amp;CFID=20781736&amp;amp;CFTOKEN=83176621 Gonzales, et al., 2004]).  Users accomplish individual low-level tasks which are part of larger &#039;&#039;working spheres&#039;&#039;; for example, an office worker might send several emails, create several Post-It (TM) note reminders, and then edit a word document, each of these smaller tasks being part of a single larger working sphere of &amp;quot;adding a new section to the website.&amp;quot;  Thus, it is important to understand this larger workflow context - which often involves extensive levels of multi-tasking, as well as switching between a variety of computing devices and traditional tools, such as notebooks.  In this study it was found that the information workers surveyed typically switch individual tasks every 2 minutes and have many simultaneous working spheres which they switch between, on average every 12 minutes.  This frenzied pace of switching tasks and switching working spheres suggests that users will not be using a single application or device for a long period of time, and that affordances to support this characteristic pattern of information work are important.&lt;br /&gt;
&lt;br /&gt;
The purpose of this module is to integrate existing work on multi-tasking, interruption and higher-level workflow into a framework which can predict user recovery times from interruptions.  Specifically, the goals of this framework will be to:&lt;br /&gt;
&lt;br /&gt;
* Understand the role of the larger workflow context in user interfaces&lt;br /&gt;
* Understand the impact of interruptions on user workflow&lt;br /&gt;
* Understand how to design software which fits into the larger working spheres in which information work takes place&lt;br /&gt;
&lt;br /&gt;
It is important to point out that because workflow and multi-tasking rely heavily on higher-level brain functioning, it is unrealistic within the scope of this grant to propose a system which can predict user performance given a description of a set of arbitrary software programs.  Therefore, we believe this module will function much more in a qualitative role to provide context to the rest of the model.  Specifically, our findings related to interruption and multi-tasking will advance the basic research question of &amp;quot;how do you users react to interruptions when using working sets of varying sizes?&amp;quot;.  This core HCI contribution will help to inform the rest of the outputs of the model in a qualitative manner.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
N/A&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Outputs&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
N/A&lt;br /&gt;
&lt;br /&gt;
=== Working Memory Load ===&lt;br /&gt;
* Owner: [[User:Gideon Goldin | Gideon Goldin]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This module measures how much information the user needs to retain in memory while interacting with the interface and makes suggestions for improvements.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Models&lt;br /&gt;
** Beddeley&#039;s Model of Working Memory&amp;lt;ref&amp;gt;http://en.wikipedia.org/wiki/Baddeley%27s_model_of_working_memory&amp;lt;/ref&amp;gt;&lt;br /&gt;
*** Episodic Buffer&lt;br /&gt;
** George Miller&#039;s &amp;quot;The magic number 7 plus or minus 2&amp;quot;&amp;lt;ref&amp;gt;http://en.wikipedia.org/wiki/The_Magical_Number_Seven,_Plus_or_Minus_Two&amp;lt;/ref&amp;gt;&lt;br /&gt;
** The magic number 4&amp;lt;ref&amp;gt;Cowan, N. (2001). The magical number 4 in short-term memory: A reconsideration of mental storage capacity. Behavioral and Brain Sciences, 24, 87-185.&amp;lt;/ref&amp;gt;&lt;br /&gt;
* Chunking&amp;lt;ref&amp;gt;http://en.wikipedia.org/wiki/Chunking_(psychology)&amp;lt;/ref&amp;gt;&lt;br /&gt;
* Priming&amp;lt;ref&amp;gt;http://en.wikipedia.org/wiki/Priming_(psychology)&amp;lt;/ref&amp;gt;&lt;br /&gt;
* Subitizing and Counting&amp;lt;ref&amp;gt;http://en.wikipedia.org/wiki/Subitizing&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
* Visual Stimuli&lt;br /&gt;
* Audio Stimuli&lt;br /&gt;
&#039;&#039;&#039;Outputs&#039;&#039;&#039;&lt;br /&gt;
* Remembered percepts&lt;br /&gt;
* Half-Life of percepts&lt;br /&gt;
&lt;br /&gt;
=== Automaticity of Interaction ===&lt;br /&gt;
* Owner: [[User:Gideon Goldin | Gideon Goldin]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Measures how easily the interaction with the interface becomes automatic with experience and makes suggestions for improvements.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Learning&amp;lt;ref&amp;gt;http://en.wikipedia.org/wiki/Learning#Mathematical_models_of_learning&amp;lt;/ref&amp;gt;&lt;br /&gt;
** Logan&#039;s instance theory of automatization&amp;lt;ref&amp;gt;http://74.125.95.132/search?q=cache:IZ-Zccsu3SEJ:psych.wisc.edu/ugstudies/psych733/logan_1988.pdf+logan+isntance+teory&amp;amp;cd=1&amp;amp;hl=en&amp;amp;ct=clnk&amp;amp;gl=us&amp;amp;client=firefox-a&amp;lt;/ref&amp;gt;&lt;br /&gt;
* Fluency&lt;br /&gt;
** As meta-cognitive information &amp;lt;ref&amp;gt;http://www.sciencedirect.com/science?_ob=ArticleURL&amp;amp;_udi=B6VH9-4SM7PFK-4&amp;amp;_user=10&amp;amp;_rdoc=1&amp;amp;_fmt=&amp;amp;_orig=search&amp;amp;_sort=d&amp;amp;view=c&amp;amp;_acct=C000050221&amp;amp;_version=1&amp;amp;_urlVersion=0&amp;amp;_userid=10&amp;amp;md5=10cd279fa80958981fcc3c06684c09af&amp;lt;/ref&amp;gt;&lt;br /&gt;
** As a cognitive &#039;&#039;heuristic&#039;&#039;&amp;lt;ref&amp;gt;http://en.wikipedia.org/wiki/Fluency_heuristic&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
* Interface&lt;br /&gt;
* User goals&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Outputs&#039;&#039;&#039;&lt;br /&gt;
* Learning curve&lt;br /&gt;
&lt;br /&gt;
== Integration into the Design Process ==&lt;br /&gt;
* Owner: [[User:Ian Spector | Ian Spector]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This section outlines the process of designing an HCI interface and at what stages our proposal fits in and how.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Preliminary Results =&lt;br /&gt;
&lt;br /&gt;
===Workflow, Multi-tasking, and Interruption===&lt;br /&gt;
&lt;br /&gt;
====I.  &#039;&#039;&#039;Goals&#039;&#039;&#039;====&lt;br /&gt;
&lt;br /&gt;
The goals of the preliminary work are to gain qualitative insight into how information workers practice metawork, and to determine whether people might be better-supported with software which facillitates metawork and interruptions.  Thus, the preliminary work should investigate, and demonstrate, the need and impact of the core goals of the project.&lt;br /&gt;
&lt;br /&gt;
====II.  &#039;&#039;&#039;Methodology&#039;&#039;&#039;====&lt;br /&gt;
&lt;br /&gt;
Seven information workers, ages 20-38 (5 male, 2 female), were interviewed to determine which methods they use to &amp;quot;stay organized&amp;quot;.  An initial list of metawork strategies was established from two pilot interviews, and then a final list was compiled.  Participants then responded to a series of 17 questions designed to gain insight into their metawork strategies and process.  In addition, verbal interviews were conducted to get additional open-ended feedback.&lt;br /&gt;
&lt;br /&gt;
====III.  &#039;&#039;&#039;Final Results&#039;&#039;&#039;====&lt;br /&gt;
A histogram of methods people use to &amp;quot;stay organized&amp;quot; in terms of tracking things they need to do (TODOs), appointments and meetings, etc. is shown in the figure below.&lt;br /&gt;
&lt;br /&gt;
[[Image:AcbGraph.jpg]]&lt;br /&gt;
&lt;br /&gt;
In addition to these methods, participants also used a number of other methods, including:&lt;br /&gt;
&lt;br /&gt;
* iCal&lt;br /&gt;
* Notes written in xterms&lt;br /&gt;
* &amp;quot;Inbox zero&amp;quot; method of email organization&lt;br /&gt;
* iGoogle Notepad (for tasks)&lt;br /&gt;
* Tag emails as &amp;quot;TODO&amp;quot;, &amp;quot;Important&amp;quot;, etc.&lt;br /&gt;
* Things (Organizer Software)&lt;br /&gt;
* Physical items placed to &amp;quot;remind me of things&amp;quot;&lt;br /&gt;
* Sometimes arranging windows on desk&lt;br /&gt;
* Keeping browser tabs open&lt;br /&gt;
* Bookmarking web pages&lt;br /&gt;
* Keep programs/files open scrolled to certain locations sometimes with things selected&lt;br /&gt;
&lt;br /&gt;
In addition, three participants said that when interrupted they &amp;quot;rarely&amp;quot; or &amp;quot;very rarely&amp;quot; were able to resume the task they were working on prior to the interruption.  Three of the participants said that they would not actively recommend their metawork strategies for other people, and two said that staying organized was &amp;quot;difficult&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Four participants were neutral to the idea of new tools to help them stay organized and three said that they would like to have such a tool/tools.&lt;br /&gt;
&lt;br /&gt;
====IV.  &#039;&#039;&#039;Discussion&#039;&#039;&#039;====&lt;br /&gt;
These results qunatiatively support our hypothesis that there is no clearly dominant set of metawork strategies employed by information workers.  This highly fragemented landscape is surprising, even though most information workers work in a similar environment - at a desk, on the phone, in meetings - and with the same types of tools - computers, pens, paper, etc.  We believe that this suggests that there are complex tradeoffs between these methods and that no single method is sufficient.  We therefore believe that users will be better supported with a new set of software-based metawork tools.&lt;br /&gt;
&lt;br /&gt;
= [Criticisms] =&lt;br /&gt;
* Owner: [[User:Andrew Bragdon | Andrew Bragdon]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Any criticisms or questions we have regarding the proposal can go here.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=References=&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Trevor O&#039;Brien</name></author>
	</entry>
	<entry>
		<id>http://vrl.cs.brown.edu/wiki/index.php?title=CS295J/Research_proposal_(draft_2)&amp;diff=3165</id>
		<title>CS295J/Research proposal (draft 2)</title>
		<link rel="alternate" type="text/html" href="http://vrl.cs.brown.edu/wiki/index.php?title=CS295J/Research_proposal_(draft_2)&amp;diff=3165"/>
		<updated>2009-04-24T16:20:26Z</updated>

		<summary type="html">&lt;p&gt;Trevor O&amp;#039;Brien: /* Generalizing User Traces */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
* Owners: [[User:Adam Darlow | Adam Darlow]], [[User:Eric Sodomka | Eric Sodomka]], [[User: Trevor O&#039;Brien | Trevor]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Propose:&#039;&#039;&#039; The design, application and evaluation of a novel, cognition-based, computational framework for assessing interface design and providing automated suggestions to optimize usability.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Evaluation Methodology:&#039;&#039;&#039;  Our techniques will be evaluated quantitatively through a series of user-study trials, as well as qualitatively by a team of expert interface designers. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Contributions and Significance:&#039;&#039;&#039;  We expect this work to make the following contributions:  &lt;br /&gt;
# design-space analysis and quantitative evaluation of cognition-based techniques for assessing user interfaces.  &lt;br /&gt;
# design and quantitative evaluation of techniques for suggesting optimized interface-design changes. &lt;br /&gt;
# an extensible, multimodal software architecture for capturing user traces integrated with pupil-tracking data, auditory recognition, and muscle-activity monitoring.  &lt;br /&gt;
# specification (language?) of how to define an interface evaluation module and how to integrate it into a larger system.  &lt;br /&gt;
# (there may be more here, like testing different cognitive models, generating a markup language to represent interfaces, maybe even a unique metric space for interface usability)&lt;br /&gt;
&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
We propose a framework for interface evaluation and recommendation that integrates behavioral models and design guidelines from both cognitive science and HCI. Our framework behaves like a committee of specialized experts, where each expert provides its own assessment of the interface, given its particular knowledge of HCI or cognitive science. For example, an expert may provide an evaluation based on the GOMS method, Fitts&#039;s law, Maeda&#039;s design principles, or cognitive models of learning and memory. An aggregator collects all of these assessments and weights the opinions of each expert, and outputs to the developer a merged evaluation score and a weighted set of recommendations.&lt;br /&gt;
&lt;br /&gt;
Systematic methods of estimating human performance with computer interfaces are used only sparsely despite their obvious benefits, the reason being the overhead involved in implementing them. In order to test an interface, both manual coding systems like the GOMS variations and user simulations like those based on ACT-R/PM and EPIC require detailed pseudo-code descriptions of the user workflow with the application interface. Any change to the interface then requires extensive changes to the pseudo-code, a major problem because of the trial-and-error nature of interface design. Updating the models themselves is even more complicated. Even an expert in CPM-GOMS, for example, can&#039;t necessarily adapt it to take into account results from new cognitive research.&lt;br /&gt;
&lt;br /&gt;
Our proposal makes automatic interface evaluation easier to use in several ways. First of all, we propose to divide the input to the system into three separate parts, functionality, user traces and interface. By separating the functionality from the interface, even radical interface changes will require updating only that part of the input. The user traces are also defined over the functionality so that they too translate across different interfaces. Second, the parallel modular architecture allows for a lower &amp;quot;entry cost&amp;quot; for using the tool. The system includes a broad array of evaluation modules some of which are very simple and some more complex. The simpler modules use only a subset of the input that a system like GOMS or ACT-R would require. This means that while more input will still lead to better output, interface designers can get minimal evaluations with only minimal information. For example, a visual search module may not require any functionality or user traces in order to determine whether all interface elements are distinct enough to be easy to find. Finally, a parallel modular architecture is much easier to augment with relevant cognitive and design evaluations.&lt;br /&gt;
&lt;br /&gt;
= Background / Related Work =&lt;br /&gt;
&lt;br /&gt;
Each person should add the background related to their specific aims.&lt;br /&gt;
&lt;br /&gt;
* Steven Ellis - Cognitive models of HCI, including GOMS variations and ACT-R&lt;br /&gt;
* EJ - Design Guidelines&lt;br /&gt;
* Jon - Perception and Action&lt;br /&gt;
* Andrew - Multiple task environments&lt;br /&gt;
* Gideon - Cognition and dual systems&lt;br /&gt;
* Ian - Interface design process&lt;br /&gt;
* Trevor - User trace collection methods (especially any eye-tracking, EEG, ... you want to suggest using)&lt;br /&gt;
&lt;br /&gt;
== Cognitive Models ==&lt;br /&gt;
I plan to port over most of the background on cognitive models of HCI from the old proposal&lt;br /&gt;
&lt;br /&gt;
Additions will comprise of:&lt;br /&gt;
*CPM-GOMS as a bridge from GOMS architecture to the promising procedural optimization of the Model Human Processor&lt;br /&gt;
**Context of CPM development, discuss its relation to original GOMS and KLM&lt;br /&gt;
***Establish the tasks which were relevant for optimization when CPM was developed and note that its obsolescence may have been unavoidable&lt;br /&gt;
**Focus on CPM as the first step in transitioning from descriptive data, provided by mounting efforts in the cognitive sciences realm to discover the nature of task processing and accomplishment, to prescriptive algorithms which can predict an interface’s efficiency and suggest improvements&lt;br /&gt;
**CPM’s purpose as an abstraction of cognitive processing – a symbolic representation not designed for accuracy but precision&lt;br /&gt;
**CPM’s successful trials, e.g. Ernestine&lt;br /&gt;
***Implications of this project include CPM’s ability to accurately estimate processing at a psychomotor level&lt;br /&gt;
***Project does suggest limitations, however, when one attempts to examine more complex tasks which involve deeper and more numerous cognitive processes&lt;br /&gt;
*ACT-R as an example of a progressive cognitive modeling tool&lt;br /&gt;
**A tool clearly built by and for cognitive scientists, and as a result presents a much more accurate view of human processing – helpful for our research&lt;br /&gt;
**Built-in automation, which now seems to be a standard feature of cognitive modeling tools&lt;br /&gt;
**Still an abstraction of cognitive processing, but makes adaptation to cutting-edge cognitive research findings an integral aspect of its modular structure&lt;br /&gt;
**Expand on its focus on multi-tasking, taking what was a huge advance between GOMS and its CPM variation and bringing the simulation several steps closer to approximating the nature of cognition in regards to HCI&lt;br /&gt;
**Far more accessible both for researchers and the lay user/designer in its portability to LISP, pre-construction of modules representing cognitive capacities and underlying algorithms modeling paths of cognitive processing&lt;br /&gt;
&lt;br /&gt;
==Design guidelines==&lt;br /&gt;
A multitude of rule sets exist for the design of not only interface, but architecture, city planning, and software development.  They can range in scale from one primary rule to as many Christopher Alexander&#039;s 253 rules for urban environments,&amp;lt;ref&amp;gt;[http://hci.rwth-aachen.de/materials/publications/borchers2000a.pdf Borchers, Jan O.  &amp;quot;A Pattern Approach to Interaction Design.&amp;quot;  2000.]&amp;lt;/ref&amp;gt; which he introduced with the concept design patterns in the 1970s.  Study has likewise been conducted on the use of these rules:&amp;lt;ref&amp;gt;http://stl.cs.queensu.ca/~graham/cisc836/lectures/readings/tetzlaff-guidelines.pdf&amp;lt;/ref&amp;gt; guidelines are often only partially understood, indistinct to the developer, and &amp;quot;fraught&amp;quot; with potential usability problems given a real-world situation.&lt;br /&gt;
&lt;br /&gt;
===Application to AUE===&lt;br /&gt;
And yet, the vast majority of guideline sets, including the most popular rulesets, have been arrived at heuristically.  The most successful, such as Raskin&#039;s and Schneiderman&#039;s, have been forged from years of observation instead of empirical study and experimentation.  The problem is similar to the problem of circular logic faced by automated usability evaluations: an automated system is limited in the suggestions it can offer to a set of preprogrammed guidelines which have often not been subjected to rigorous experimentation.&amp;lt;ref&amp;gt;[http://www.eecs.berkeley.edu/Pubs/TechRpts/2000/CSD-00-1105.pdf Ivory, M and Hearst, M.  &amp;quot;The State of the Art in Automated Usability Evaluation of User Interfaces.&amp;quot; ACM Computing Surveys (CSUR), 2001.]&amp;lt;/ref&amp;gt;  In the vast majority of existing studies, emphasis has traditionally been placed on either the development of guidelines or the application of existing guidelines to automated evaluation.  A mutually-reinforcing development of both simultaneously has not been attempted.&lt;br /&gt;
&lt;br /&gt;
Overlap between rulesets is inevitable and unavoidable.  For our purposes of evaluating existing rulesets efficiently, without extracting and analyzing each rule individually, it may be desirable to identify the the overarching &#039;&#039;principles&#039;&#039; or &#039;&#039;philosophy&#039;&#039; (max. 2 or 3) for a given ruleset and determining their quantitative relevance to problems of cognition.&lt;br /&gt;
&lt;br /&gt;
===Popular and seminal examples===&lt;br /&gt;
Schneiderman&#039;s [http://faculty.washington.edu/jtenenbg/courses/360/f04/sessions/schneidermanGoldenRules.html Eight Golden Rules] date to 1987 and are arguably the most-cited.  They are heuristic, but can be somewhat classified by cognitive objective: at least two rules apply primarily to &#039;&#039;repeated use&#039;&#039;, versus &#039;&#039;discoverability&#039;&#039;.  Up to five of Schneiderman&#039;s rules emphasize &#039;&#039;predictability&#039;&#039; in the outcomes of operations and &#039;&#039;increased feedback and control&#039;&#039; in the agency of the user.  His final rule, paradoxically, removes control from the user by suggesting a reduced short-term memory load, which we can arguably classify as &#039;&#039;simplicity&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Raskin&#039;s [http://www.mprove.de/script/02/raskin/designrules.html Design Rules] are classified into five principles by the author, augmented by definitions and supporting rules.  While one principle is primarily aesthetic (a design problem arguably out of the bounds of this proposal) and one is a basic endorsement of testing, the remaining three begin to reflect philosophies similar to Schneiderman&#039;s: reliability or &#039;&#039;predictability&#039;&#039;, &#039;&#039;simplicity&#039;&#039; or &#039;&#039;efficiency&#039;&#039; (which we can construe as two sides of the same coin), and finally he introduces a concept of &#039;&#039;uninterruptibility&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Maeda&#039;s [http://lawsofsimplicity.com/?cat=5&amp;amp;order=ASC Laws of Simplicity] are fewer, and ostensibly emphasize &#039;&#039;simplicity&#039;&#039; exclusively, although elements of &#039;&#039;use&#039;&#039; as related by Schneiderman&#039;s rules and &#039;&#039;efficiency&#039;&#039; as defined by Raskin may be facets of this simplicity.  Google&#039;s corporate mission statement presents [http://www.google.com/corporate/ux.html Ten Principles], only half of which can be considered true interface guidelines.  &#039;&#039;Efficiency&#039;&#039; and &#039;&#039;simplicity&#039;&#039; are cited explicitly, aesthetics are once again noted as crucial, and working within a user&#039;s trust is another application of &#039;&#039;predictability&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
===Elements and goals of a guideline set===&lt;br /&gt;
Myriad rulesets exist, but variation becomes scarce—it indeed seems possible to parse these common rulesets into overarching principles that can be converted to or associated with quantifiable cognitive properties.  For example, it is likely &#039;&#039;simplicity&#039;&#039; has an analogue in the short-term memory retention or visual retention of the user, vis a vis the rule of [http://books.google.com/books?hl=en&amp;amp;lr=&amp;amp;id=j5q0VvOGExYC&amp;amp;oi=fnd&amp;amp;pg=PA357&amp;amp;dq=seven+plus+or+minus+two&amp;amp;ots=prI3PKJBar&amp;amp;sig=vOZnqpnkXKGYWxK6_XlA4I_CRyI Seven, Plus or Minus Two].  &#039;&#039;Predictability&#039;&#039; likewise may have an analogue in Activity Theory, in regards to a user&#039;s perceptual expectations for a given action; &#039;&#039;uninterruptibility&#039;&#039; has implications in cognitive task-switching;&amp;lt;ref&amp;gt;[http://portal.acm.org/citation.cfm?id=985692.985715&amp;amp;coll=Portal&amp;amp;dl=ACM&amp;amp;CFID=21136843&amp;amp;CFTOKEN=23841774 Czerwinski, Horvitz, and White. &amp;quot;A Diary Study of Task Switching and Interruptions.&amp;quot;  Proceedings of the SIGCHI conference on Human factors in computing systems, 2004.]&amp;lt;/ref&amp;gt; and so forth.&lt;br /&gt;
&lt;br /&gt;
Within the scope of this proposal, we aim to reduce and refine these philosophies found in seminal rulesets and identify their logical cognitive analogues.  By assigning a quantifiable taxonomy to these principles, we will be able to rank and weight them with regard to their real-world applicability, developing a set of &amp;quot;meta-guidelines&amp;quot; and rules for applying them to a given interface in an automated manner.  Combined with cognitive models and multi-modal HCI analysis, we seek to develop, in parallel with these guidelines, the interface evaluation system responsible for their application.&lt;br /&gt;
&lt;br /&gt;
== Perception and Action (in progress) ==&lt;br /&gt;
&lt;br /&gt;
*Information Processing Approach&lt;br /&gt;
**Advantages&lt;br /&gt;
***Formalism eases translation of theory into scripting language&lt;br /&gt;
**Disadvantages&lt;br /&gt;
***Assumes symbolic representation&lt;br /&gt;
&lt;br /&gt;
*Ecological (Gibsonian) Approach&lt;br /&gt;
**Advantages&lt;br /&gt;
***Emphasis on bodily and environmental constraints&lt;br /&gt;
**Disadvantages&lt;br /&gt;
***Lack of formalism hinders translation of theory into scripting language&lt;br /&gt;
&lt;br /&gt;
= Specific Aims and Contributions (to be separated later) =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Specific Aims&#039;&#039;&#039;&lt;br /&gt;
* Incorporate interaction history mechanisms into a set of existing applications.&lt;br /&gt;
* Perform user-study evaluation of history-collection techniques.&lt;br /&gt;
* Distill a set of cognitive principles/models, and evaluate empirically?&lt;br /&gt;
* Build/buy sensing system to include pupil-tracking, muscle-activity monitoring, auditory recognition.&lt;br /&gt;
* Design techniques for manual/semi-automated/automated construction of &amp;lt;insert favorite cognitive model here&amp;gt; from interaction histories and sensing data.&lt;br /&gt;
* Design system for posterior analysis of interaction history w.r.t. &amp;lt;insert favorite cognitive model here&amp;gt;, evaluating critical path &amp;lt;or equivalent&amp;gt; trajectories.&lt;br /&gt;
* Design cognition-based techniques for detecting bottlenecks in critical paths, and offering optimized alternatives. &lt;br /&gt;
* Perform quantitative user-study evaluations, collect qualitative feedback from expert interface designers.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Contributions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Design-space analysis and quantitative evaluation of cognition-based techniques for assessing user interfaces. &lt;br /&gt;
* Design and quantitative evaluation of techniques for suggesting optimized interface-design changes. &lt;br /&gt;
* An extensible, multimodal software architecture for capturing user traces integrated with pupil-tracking data, auditory recognition, and muscle-activity monitoring. &lt;br /&gt;
* (there may be more here, like testing different cognitive models, generating a markup language to represent interfaces, maybe even a unique metric space for interface usability) &lt;br /&gt;
&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
See the [http://vrl.cs.brown.edu/wiki/images/b/b1/Flowchart2.pdf flowchart] for a visual overview of our aims.&lt;br /&gt;
&lt;br /&gt;
In order to use this framework, a designer will have to provide:&lt;br /&gt;
* Functional specification - what are the possible interactions between the user and the application. This can be thought of as method signatures, with a name (e.g., setVolume), direction (to user or from user) and a list of value types (boolean, number, text, video, ...) for each interaction.&lt;br /&gt;
* GUI specification - a mapping of interactions to interface elements (e.g., setVolume is mapped to the grey knob in the bottom left corner with clockwise turning increasing the input number).&lt;br /&gt;
* Functional user traces - sequences of representative ways in which the application is used. Instead of writing them, the designer could have users use the application with a trial interface and then use our methods to generalize the user traces beyond the specific interface (The second method is depicted in the diagram). As a form of pre-processing, the system also generates an interaction transition matrix which lists the probability of each type of interaction given the previous interaction.&lt;br /&gt;
* Utility function - this is a weighting of various performance metrics (time, cognitive load, fatigue, etc.), where the weighting expresses the importance of a particular dimension to the user. For example, a user at NASA probably cares more about interface accuracy than speed. By passing this information to our committee of experts, we can create interfaces that are tuned to maximize the utility of a particular user type.&lt;br /&gt;
&lt;br /&gt;
Each of the modules can use all of this information or a subset of it. Our approach stresses flexibility and the ability to give more meaningful feedback the more information is provided. After processing the information sent by the system of experts, the aggregator will output:&lt;br /&gt;
* An evaluation of the interface. Evaluations are expressed both in terms of the utility function components (i.e. time, fatigue, cognitive load, etc.), and in terms of the overall utility for this interface (as defined by the utility function). These evaluations are given in the form of an efficiency curve, where the utility received on each dimension can change as the user becomes more accustomed to the interface. &lt;br /&gt;
* Suggested improvements for the GUI are also output. These suggestions are meant to optimize the utility function that was input to the system. If a user values accuracy over time, interface suggestions will be made accordingly.&lt;br /&gt;
&lt;br /&gt;
== Recording User-Interaction Primitives ==&lt;br /&gt;
* Owner: [[User:Trevor O&#039;Brien | Trevor O&#039;Brien]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Given an interface, our first step is to run users on the interface and log these user interactions. We want to log actions at a sufficiently low level so that a GOMS model can be generated from the data. When possible, we&#039;d also like to log data using additional sensing technologies, such as pupil-tracking, muscle-activity monitoring and auditory recognition; this information will help to analyze the explicit contributions of perception, cognition and motor skills with respect to user performance.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Semantic-level Interaction Chunking ==&lt;br /&gt;
* Owner: [[User:Trevor O&#039;Brien | Trevor O&#039;Brien]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;The user traces that are collected are tied to a specific interface. In order to use them with different interfaces to the same application, they should be generalized to be based only on the functional description of the application and the user&#039;s goal hierarchy. This would abstract away from actions like accessing a menu.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;In addition to specific user traces, many modules could use a transition probability matrix based on interaction predictions.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Parallel Framework for Evaluation Modules ==&lt;br /&gt;
* Owner: [[User:Adam Darlow | Adam Darlow]], [[User:Eric Sodomka | Eric Sodomka]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This section will describe in more detail the inputs, outputs and architecture that were presented in the introduction.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Module Inputs (Incomplete) ====&lt;br /&gt;
* A set of utility dimensions {d1, d2, ...} are defined in the framework. These could be {d1=&amp;quot;time&amp;quot;, d2=&amp;quot;fatigue&amp;quot;, ...}&lt;br /&gt;
* A set of interaction functions. These specify all of the information that the application wants to give users or get from them. It is not tied to a specific interface. For example, the fact that an applications shows videos would be included here. Whether it displays them embedded, in a pop-up window or fullscreen would not.&lt;br /&gt;
* A mapping of interaction functions to interface elements (e.g., buttons, windows, dials,...). Lots of optional information describing visual properties, associated text, physical interactions (e.g., turning the dial clockwise increases the input value) and timing.&lt;br /&gt;
* Functional user traces - sequences of interaction functions that represent typical user interactions with the application. Could include a goal hierarchy, in which case the function sequence is at the bottom of the hierarchy.&lt;br /&gt;
&lt;br /&gt;
==== Module Outputs ====&lt;br /&gt;
* Every module ouputs at least one of the following:&lt;br /&gt;
** An evaluation of the interface&lt;br /&gt;
*** This can be on any or all of the utility dimensions, e.g. evaluation={d1=score1, d2=score2, ...}&lt;br /&gt;
*** This can alternately be an overall evaluation, ignoring dimensions, e.g. evaluation={score}&lt;br /&gt;
**** In this case, the aggregator will treat this as the module giving the same score to all dimensions. Which dimension this evaluator actually predicts well on can be learned by the aggregator over time.&lt;br /&gt;
** Recommendation(s) for improving the interface&lt;br /&gt;
***This can be a textual description of what changes the designer should make&lt;br /&gt;
***This can alternately be a transformation that can automatically be applied to the interface language (without designer intervention)&lt;br /&gt;
***In addition to the textual or transformational description of the recommendation, a &amp;quot;change in evaluation&amp;quot; is output to describe how specifically the value will improve the interface&lt;br /&gt;
****Recommendation = {description=&amp;quot;make this change&amp;quot;, Δevaluation={d1=score1, d2=score2, ...}&lt;br /&gt;
****Like before, this Δevaluation can cover any number of dimensions, or it can be generic.&lt;br /&gt;
***Either a single recommendation or a set of recommendations can be output&lt;br /&gt;
&lt;br /&gt;
==== Aggregator Inputs ====&lt;br /&gt;
The aggregator receives as input the outputs of all the modules.&lt;br /&gt;
&lt;br /&gt;
==== Aggregator Outputs ====&lt;br /&gt;
&lt;br /&gt;
Outputs for the aggregator are the same as the outputs for each module. The difference is that the aggregator will consider all the module outputs, and arrive at a merged output based on the past performance of each of the modules.&lt;br /&gt;
&lt;br /&gt;
== Evaluation and Recommendation via Modules ==&lt;br /&gt;
* Owner: [[User:E J Kalafarski | E J Kalafarski]]&lt;br /&gt;
&lt;br /&gt;
A &amp;quot;meta-module&amp;quot; called the aggregator will be responsible for assembling and formatting the output of all other modules into a structure that is both extensible and immediately usable, by both an automated designer or a human designer.&lt;br /&gt;
&lt;br /&gt;
===Requirements===&lt;br /&gt;
The aggregator&#039;s functionality, then, is defined by its &#039;&#039;&#039;inputs&#039;&#039;&#039;, the outputs of the other modules, and the desired &#039;&#039;&#039;output&#039;&#039;&#039; of the system as a whole, per its position in the architecture.  Its purpose is largely formatting and reconciliation of the products of the multitudinous (and extensible) modules.  The output of the aggregator must meet several requirements: first, to generate a set of human-readable suggestions for the improvement of the given interface; second, to generate a machine-readable, but also analyzable, evaluation of the various characteristics of the interface and accompanying user traces.&lt;br /&gt;
&lt;br /&gt;
From these specifications, it is logical to assume that a common language or format will be required for the output of individual modules.  We propose an XML-based file format, allowing: (1) a section for the standardized identification of problem areas, applicable rules, and proposed improvements, generalized by the individual module and mapped to a single element, or group of elements, in the original interface specification; (2) a section for specification of generalizable &amp;quot;utility&amp;quot; functions, allowing a module to specify how much a measurable quantity of utility is positively or negatively affected by properties of the input interface; (3) new, user-definable sections for evaluations of the given interface not covered by the first two sections.  The first two sections are capable of conveying the vast majority of module outputs predicted at this time, but the XML can extensibly allow modules to pass on whatever information may become prominent in the future.&lt;br /&gt;
&lt;br /&gt;
===Specification===&lt;br /&gt;
 &amp;lt;module id=&amp;quot;Fitts-Law&amp;quot;&amp;gt;&lt;br /&gt;
 	&amp;lt;interface-elements&amp;gt;&lt;br /&gt;
 		&amp;lt;element&amp;gt;&lt;br /&gt;
 			&amp;lt;desc&amp;gt;submit button&amp;lt;/desc&amp;gt;&lt;br /&gt;
 			&amp;lt;problem&amp;gt;&lt;br /&gt;
 				&amp;lt;desc&amp;gt;size&amp;lt;/desc&amp;gt;&lt;br /&gt;
 				&amp;lt;suggestion&amp;gt;width *= 2&amp;lt;/suggestion&amp;gt;&lt;br /&gt;
 				&amp;lt;suggetsion&amp;gt;height *= 2&amp;lt;/suggestions&amp;gt;&lt;br /&gt;
 				&amp;lt;human-suggestion&amp;gt;Increase size relative to other elements&amp;lt;/human-suggestion&amp;gt;&lt;br /&gt;
 			&amp;lt;/problem&amp;gt;&lt;br /&gt;
 		&amp;lt;/element&amp;gt;&lt;br /&gt;
 	&amp;lt;/interface-elements&amp;gt;&lt;br /&gt;
 	&amp;lt;utility&amp;gt;&lt;br /&gt;
 		&amp;lt;dimension&amp;gt;&lt;br /&gt;
 			&amp;lt;desc&amp;gt;time&amp;lt;/desc&amp;gt;&lt;br /&gt;
 			&amp;lt;value&amp;gt;0:15:35&amp;lt;/value&amp;gt;&lt;br /&gt;
 		&amp;lt;/dimension&amp;gt;&lt;br /&gt;
 		&amp;lt;dimension&amp;gt;&lt;br /&gt;
 			&amp;lt;desc&amp;gt;frustration&amp;lt;/desc&amp;gt;&lt;br /&gt;
 			&amp;lt;value&amp;gt;pulling hair out&amp;lt;/value&amp;gt;&lt;br /&gt;
 		&amp;lt;/dimension&amp;gt;&lt;br /&gt;
 		&amp;lt;dimension&amp;gt;&lt;br /&gt;
 			&amp;lt;desc&amp;gt;efficiency&amp;lt;/desc&amp;gt;&lt;br /&gt;
 			&amp;lt;value&amp;gt;13.2s/KPM task&amp;lt;/value&amp;gt;&lt;br /&gt;
 			&amp;lt;value&amp;gt;0.56m/CPM task&amp;lt;/value&amp;gt;&lt;br /&gt;
 		&amp;lt;/dimension&amp;gt;&lt;br /&gt;
 	&amp;lt;/utility&amp;gt;&lt;br /&gt;
 	&amp;lt;tasks&amp;gt;&lt;br /&gt;
 		&amp;lt;task&amp;gt;&lt;br /&gt;
 			&amp;lt;desc&amp;gt;complete form&amp;lt;/desc&amp;gt;&lt;br /&gt;
 		&amp;lt;/task&amp;gt;&lt;br /&gt;
 		&amp;lt;task&amp;gt;&lt;br /&gt;
 			&amp;lt;desc&amp;gt;lookup SSN&amp;lt;/desc&amp;gt;&lt;br /&gt;
 		&amp;lt;/task&amp;gt;&lt;br /&gt;
 		&amp;lt;task&amp;gt;&lt;br /&gt;
 			&amp;lt;desc&amp;gt;format phone number&amp;lt;/desc&amp;gt;&lt;br /&gt;
 		&amp;lt;/task&amp;gt;&lt;br /&gt;
 	&amp;lt;/tasks&amp;gt;&lt;br /&gt;
 &amp;lt;/module&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Logic===&lt;br /&gt;
This file provided by each module is then the input for the aggregator.  The aggregator&#039;s most straightforward function is the compilation of the &amp;quot;problem areas,&amp;quot; assembling them and noting problem areas and suggestions that are recommended by more than one module, and weighting them accordingly in its final report.  These weightings can begin in an equal state, but the aggregator should be capable of learning iteratively which modules&#039; results are most relevant to the user and update weightings accordingly.  This may need to be accomplished with manual tuning, or a machine-learning algorithm capable of determining which modules most often agree with others.&lt;br /&gt;
&lt;br /&gt;
Secondly, the aggregator compiles the utility functions provided by the module specs.  This, again, is a summation of similarly-described values from the various modules.&lt;br /&gt;
&lt;br /&gt;
When confronted with user-defined sections of the XML spec, the aggregator is primarily responsible for compiling them and sending them along to the output of the machine.  Even if the aggregator does not recognize a section or property of the evaluative spec, if it sees the property reported by more than one module it should be capable of aggregating these intelligently.  In future versions of the spec, it should be possible for a module to provide instructions for the aggregator on how to handle unrecognized sections of the XML.&lt;br /&gt;
&lt;br /&gt;
From these compilations, then, the aggregator should be capable of outputting both aggregated human-readable suggestions on interface improvements for a human designer, as well as a comprehensive evaluation of the interface&#039;s effectiveness at the given task traces.  Again, this is dependent on the specification of the system as a whole, but is likely to include measures and comparisons, graphings of task versus utility, and quantitative measures of an element&#039;s effectiveness.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This section is necessarily defined by the output of the individual modules (which I already expect to be of varied and arbitrary structure) and the desired output of the machine as a whole.  It will likely need to be revised heavily after other modules and the &amp;quot;Parellel Framework&amp;quot; section are defined.&#039;&#039; [[User:E J Kalafarski|E J Kalafarski]] 12:34, 24 April 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This section describes the aggregator, which takes the output of multiple independent modules and aggregates the results to provide (1) an evaluation and (2) recommendations for the user interface. We should explain how the aggregator weights the output of different modules (this could be based on historical performance of each module, or perhaps based on E.J.&#039;s cognitive/HCI guidelines).&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Sample Modules ==&lt;br /&gt;
&lt;br /&gt;
=== CPM-GOMS ===&lt;br /&gt;
* Owners: [[User:Steven Ellis | Steven Ellis]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This module will provide interface evaluations and suggestions based on a CPM-GOMS model of cognition for the given interface. It will provide a quantitative, predictive, cognition-based parameterization of usability. From empirically collected data, user trajectories through the model (critical paths) will be examined, highlighting bottlenecks within the interface, and offering suggested alterations to the interface to induce more optimal user trajectories.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
I’m hoping to have some input on this section, because it seems to be the crux of the “black box” into which we take the inputs of interface description, user traces, etc. and get our outputs (time, recommendations, etc.).  I know at least a few people have pretty strong thoughts on the matter and we ought to discuss the final structure.&lt;br /&gt;
&lt;br /&gt;
That said – my proposal for the module:&lt;br /&gt;
*In my opinion the concept of the Model Human Processor (at least as applied in CPM) is outdated – it’s too economic/overly parsimonious in its conception of human activity.  I think we need to create a structure which accounts for more realistic conditions of HCI including multitasking, aspects of distributed cognition (and other relevant uses of tools – as far as I can tell CPM doesn’t take into account any sort of productivity aids), executive control processes of attention, etc.  ACT-R appears to take steps towards this but we would probably need to look at their algorithms to know for sure.&lt;br /&gt;
*Critical paths will continue to play an important role – we should in fact emphasize that part of this tool’s purpose will be a description not only of ways in which the interface should be modified to best fit a critical path, but also ways in which the user’s ought to be instructed in their use of the path.  This feedback mechanism could be bidirectional – if the model’s predictions of the user’s goals are incorrect, the critical path determined will also be incorrect and the interface inherently suboptimal.  The user could be prompted with a tooltip explaining in brief why and how the interface has changed, along with options to revert, select other configurations (euphemized by goals), and to view a short video detailing how to properly use the interface.&lt;br /&gt;
*Call me crazy but, if we assume designers will be willing to code a model of their interfaces into our ACT-R-esque language, could we allow that model to be fairly transparent to the user, who could use a gui to input their goals to find an analogue in the program which would subsequently rearrange its interface to fit the user’s needs?  Even if not useful to the users, such dynamic modeling could really help designers (IMO)&lt;br /&gt;
*I think the model should do its best to accept models written for ACT-R and whatever other cognitive models there are out there – gives us the best chance of early adoption&lt;br /&gt;
*I would particularly appreciate input on the number/complexity/type of inputs we’ll be using, as well as the same qualities for the output.&lt;br /&gt;
&lt;br /&gt;
=== HCI Guidelines ===&lt;br /&gt;
* Owner: [[User:E J Kalafarski | E J Kalafarski]]&lt;br /&gt;
&lt;br /&gt;
Schneiderman&#039;s Eight Golden Rules and Jakob Nielsen&#039;s Ten Heuristics are perhaps the most famous and well-regarded heuristic design guidelines to emerge over the last twenty years.  Although the explicit theoretical basis for such heuristics is controversial and not well-explored, the empirical success of these guidelines is established and accepted.  This module will parse out up to three or four common (that is, intersecting) principles from these accepted guidelines and apply them to the input interface.&lt;br /&gt;
&lt;br /&gt;
As an example, we identify an analogous principle that appears in Schneiderman (&amp;quot;Reduce short-term memory load&amp;quot;)&amp;lt;ref&amp;gt;http://faculty.washington.edu/jtenenbg/courses/360/f04/sessions/schneidermanGoldenRules.html&amp;lt;/ref&amp;gt; and Nielsen (&amp;quot;Recognition rather than recall/Minimize the user&#039;s memory load&amp;quot;)&amp;lt;ref&amp;gt;http://www.useit.com/papers/heuristic/heuristic_list.html&amp;lt;/ref&amp;gt;.  The input interface is then evaluated for the consideration of the principle, based on an explicit formal description of the interface, such as XAML or XUL.  The module attempts to determine how effectively the interface demonstrates the principle.  When analyzing an interface for several principles that may be conflicting or opposing in a given context, the module makes use of a hard-coded but iterative (and evolving) weighting of these principles, based on (1) how often they appear in the training set of accepted sets of guidelines, (2) how analogues a heuristic principle is to a cognitive principle in a parallel training set, and (3) how effective the principle&#039;s associated suggestion is found to be using a feedback mechanism.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inputs&#039;&#039;&#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
# A formal description of the interface and its elements (e.g. buttons).&lt;br /&gt;
# A formal description of a particular task and the possible paths through a subset of interface elements that permit the user to accomplish that task.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Output&#039;&#039;&#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
Standard XML-formatted file containing problem areas of the input interface, suggestions for each problem area based on principles that were found to have a strong application to a problem element and the problem itself, and a human-readable generated analysis of the element&#039;s affinity for the principle.  Quantitative outputs will not be possible based on heuristic guidelines, and the &amp;quot;utility&amp;quot; section of this module&#039;s output is likely to be blank.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This section could include an example or two of established design guidelines that could easily be implemented as modules.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Fitts&#039;s Law ===&lt;br /&gt;
* Owner: [[User:Jon Ericson | Jon Ericson]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This module provides an estimate of the required time to complete various tasks that have been decomposed into formalized sequences of interactions with interface elements, and will provide evaluations and recommendations for optimizing the time required to complete those tasks using the interface.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1. A formal description of the interface and its elements (e.g. buttons).&lt;br /&gt;
&lt;br /&gt;
2. A formal description of a particular task and the possible paths through a subset of interface elements that permit the user to accomplish that task.&lt;br /&gt;
&lt;br /&gt;
3. The physical distances between interface elements along those paths.&lt;br /&gt;
&lt;br /&gt;
4. The width of those elements along the most likely axes of motion.&lt;br /&gt;
&lt;br /&gt;
5. Device (e.g. mouse) characteristics including start/stop time and the inherent speed limitations of the device.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Output&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The module will then use the Shannon formulation of Fitt&#039;s Law to compute the average time needed to complete the task along those paths.&lt;br /&gt;
&lt;br /&gt;
=== Affordances ===&lt;br /&gt;
* Owner: [[User:Jon Ericson | Jon Ericson]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This simple module will provide interface evaluations and recommendations based on a measure of the extent to which the user perceives the relevant affordances of the interface when performing a number of specified tasks.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inputs&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Formalized descriptions of...&lt;br /&gt;
&lt;br /&gt;
1. Interface elements&lt;br /&gt;
&lt;br /&gt;
2. Their associated actions&lt;br /&gt;
&lt;br /&gt;
3. The functions of those actions&lt;br /&gt;
&lt;br /&gt;
4. A particular task&lt;br /&gt;
&lt;br /&gt;
5. User traces for that task.  &lt;br /&gt;
&lt;br /&gt;
Inputs (1-4) are then used to generate a &amp;quot;user-independent&amp;quot; space of possible functions that the interface is capable of performing with respect to a given task -- what the interface &amp;quot;affords&amp;quot; the user.  From this set of possible interactions, our model will then determine the subset of optimal paths for performing a particular task.  The user trace (5) is then used to determine what functions actually were performed in the course of a given task of interest and this information is then compared to the optimal path data to determine the extent to which affordances of the interface are present but not perceived.  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Output&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The output of this module is a simple ratio of (affordances perceived) / [(relevant affordances present) * (time to complete task)] which provides a quantitative measure of the extent to which the interface is &amp;quot;natural&amp;quot; to use for a particular task.&lt;br /&gt;
&lt;br /&gt;
=== Workflow, Multi-tasking and Interruptions ===&lt;br /&gt;
* Owner: [[User:Andrew Bragdon | Andrew Bragdon]]&lt;br /&gt;
&lt;br /&gt;
There are, at least, two levels at which users work ([http://portal.acm.org/citation.cfm?id=985692.985707&amp;amp;coll=portal&amp;amp;dl=ACM&amp;amp;CFID=20781736&amp;amp;CFTOKEN=83176621 Gonzales, et al., 2004]).  Users accomplish individual low-level tasks which are part of larger &#039;&#039;working spheres&#039;&#039;; for example, an office worker might send several emails, create several Post-It (TM) note reminders, and then edit a word document, each of these smaller tasks being part of a single larger working sphere of &amp;quot;adding a new section to the website.&amp;quot;  Thus, it is important to understand this larger workflow context - which often involves extensive levels of multi-tasking, as well as switching between a variety of computing devices and traditional tools, such as notebooks.  In this study it was found that the information workers surveyed typically switch individual tasks every 2 minutes and have many simultaneous working spheres which they switch between, on average every 12 minutes.  This frenzied pace of switching tasks and switching working spheres suggests that users will not be using a single application or device for a long period of time, and that affordances to support this characteristic pattern of information work are important.&lt;br /&gt;
&lt;br /&gt;
The purpose of this module is to integrate existing work on multi-tasking, interruption and higher-level workflow into a framework which can predict user recovery times from interruptions.  Specifically, the goals of this framework will be to:&lt;br /&gt;
&lt;br /&gt;
* Understand the role of the larger workflow context in user interfaces&lt;br /&gt;
* Understand the impact of interruptions on user workflow&lt;br /&gt;
* Understand how to design software which fits into the larger working spheres in which information work takes place&lt;br /&gt;
&lt;br /&gt;
It is important to point out that because workflow and multi-tasking rely heavily on higher-level brain functioning, it is unrealistic within the scope of this grant to propose a system which can predict user performance given a description of a set of arbitrary software programs.  Therefore, we believe this module will function much more in a qualitative role to provide context to the rest of the model.  Specifically, our findings related to interruption and multi-tasking will advance the basic research question of &amp;quot;how do you users react to interruptions when using working sets of varying sizes?&amp;quot;.  This core HCI contribution will help to inform the rest of the outputs of the model in a qualitative manner.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
N/A&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Outputs&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
N/A&lt;br /&gt;
&lt;br /&gt;
=== Working Memory Load ===&lt;br /&gt;
* Owner: [[User:Gideon Goldin | Gideon Goldin]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This module measures how much information the user needs to retain in memory while interacting with the interface and makes suggestions for improvements.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Models&lt;br /&gt;
** Beddeley&#039;s Model of Working Memory&amp;lt;ref&amp;gt;http://en.wikipedia.org/wiki/Baddeley%27s_model_of_working_memory&amp;lt;/ref&amp;gt;&lt;br /&gt;
*** Episodic Buffer&lt;br /&gt;
** George Miller&#039;s &amp;quot;The magic number 7 plus or minus 2&amp;quot;&amp;lt;ref&amp;gt;http://en.wikipedia.org/wiki/The_Magical_Number_Seven,_Plus_or_Minus_Two&amp;lt;/ref&amp;gt;&lt;br /&gt;
** The magic number 4&amp;lt;ref&amp;gt;Cowan, N. (2001). The magical number 4 in short-term memory: A reconsideration of mental storage capacity. Behavioral and Brain Sciences, 24, 87-185.&amp;lt;/ref&amp;gt;&lt;br /&gt;
* Chunking&amp;lt;ref&amp;gt;http://en.wikipedia.org/wiki/Chunking_(psychology)&amp;lt;/ref&amp;gt;&lt;br /&gt;
* Priming&amp;lt;ref&amp;gt;http://en.wikipedia.org/wiki/Priming_(psychology)&amp;lt;/ref&amp;gt;&lt;br /&gt;
* Subitizing and Counting&amp;lt;ref&amp;gt;http://en.wikipedia.org/wiki/Subitizing&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
* Visual Stimuli&lt;br /&gt;
* Audio Stimuli&lt;br /&gt;
&#039;&#039;&#039;Outputs&#039;&#039;&#039;&lt;br /&gt;
* Remembered percepts&lt;br /&gt;
* Half-Life of percepts&lt;br /&gt;
&lt;br /&gt;
=== Automaticity of Interaction ===&lt;br /&gt;
* Owner: [[User:Gideon Goldin | Gideon Goldin]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Measures how easily the interaction with the interface becomes automatic with experience and makes suggestions for improvements.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Learning&amp;lt;ref&amp;gt;http://en.wikipedia.org/wiki/Learning#Mathematical_models_of_learning&amp;lt;/ref&amp;gt;&lt;br /&gt;
** Logan&#039;s instance theory of automatization&amp;lt;ref&amp;gt;http://74.125.95.132/search?q=cache:IZ-Zccsu3SEJ:psych.wisc.edu/ugstudies/psych733/logan_1988.pdf+logan+isntance+teory&amp;amp;cd=1&amp;amp;hl=en&amp;amp;ct=clnk&amp;amp;gl=us&amp;amp;client=firefox-a&amp;lt;/ref&amp;gt;&lt;br /&gt;
* Fluency&lt;br /&gt;
** As meta-cognitive information &amp;lt;ref&amp;gt;http://www.sciencedirect.com/science?_ob=ArticleURL&amp;amp;_udi=B6VH9-4SM7PFK-4&amp;amp;_user=10&amp;amp;_rdoc=1&amp;amp;_fmt=&amp;amp;_orig=search&amp;amp;_sort=d&amp;amp;view=c&amp;amp;_acct=C000050221&amp;amp;_version=1&amp;amp;_urlVersion=0&amp;amp;_userid=10&amp;amp;md5=10cd279fa80958981fcc3c06684c09af&amp;lt;/ref&amp;gt;&lt;br /&gt;
** As a cognitive &#039;&#039;heuristic&#039;&#039;&amp;lt;ref&amp;gt;http://en.wikipedia.org/wiki/Fluency_heuristic&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
* Interface&lt;br /&gt;
* User goals&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Outputs&#039;&#039;&#039;&lt;br /&gt;
* Learning curve&lt;br /&gt;
&lt;br /&gt;
== Integration into the Design Process ==&lt;br /&gt;
* Owner: [[User:Ian Spector | Ian Spector]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This section outlines the process of designing an HCI interface and at what stages our proposal fits in and how.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Preliminary Results =&lt;br /&gt;
&lt;br /&gt;
===Workflow, Multi-tasking, and Interruption===&lt;br /&gt;
&lt;br /&gt;
====I.  &#039;&#039;&#039;Goals&#039;&#039;&#039;====&lt;br /&gt;
&lt;br /&gt;
The goals of the preliminary work are to gain qualitative insight into how information workers practice metawork, and to determine whether people might be better-supported with software which facillitates metawork and interruptions.  Thus, the preliminary work should investigate, and demonstrate, the need and impact of the core goals of the project.&lt;br /&gt;
&lt;br /&gt;
====II.  &#039;&#039;&#039;Methodology&#039;&#039;&#039;====&lt;br /&gt;
&lt;br /&gt;
Seven information workers, ages 20-38 (5 male, 2 female), were interviewed to determine which methods they use to &amp;quot;stay organized&amp;quot;.  An initial list of metawork strategies was established from two pilot interviews, and then a final list was compiled.  Participants then responded to a series of 17 questions designed to gain insight into their metawork strategies and process.  In addition, verbal interviews were conducted to get additional open-ended feedback.&lt;br /&gt;
&lt;br /&gt;
====III.  &#039;&#039;&#039;Final Results&#039;&#039;&#039;====&lt;br /&gt;
A histogram of methods people use to &amp;quot;stay organized&amp;quot; in terms of tracking things they need to do (TODOs), appointments and meetings, etc. is shown in the figure below.&lt;br /&gt;
&lt;br /&gt;
[[Image:AcbGraph.jpg]]&lt;br /&gt;
&lt;br /&gt;
In addition to these methods, participants also used a number of other methods, including:&lt;br /&gt;
&lt;br /&gt;
* iCal&lt;br /&gt;
* Notes written in xterms&lt;br /&gt;
* &amp;quot;Inbox zero&amp;quot; method of email organization&lt;br /&gt;
* iGoogle Notepad (for tasks)&lt;br /&gt;
* Tag emails as &amp;quot;TODO&amp;quot;, &amp;quot;Important&amp;quot;, etc.&lt;br /&gt;
* Things (Organizer Software)&lt;br /&gt;
* Physical items placed to &amp;quot;remind me of things&amp;quot;&lt;br /&gt;
* Sometimes arranging windows on desk&lt;br /&gt;
* Keeping browser tabs open&lt;br /&gt;
* Bookmarking web pages&lt;br /&gt;
* Keep programs/files open scrolled to certain locations sometimes with things selected&lt;br /&gt;
&lt;br /&gt;
In addition, three participants said that when interrupted they &amp;quot;rarely&amp;quot; or &amp;quot;very rarely&amp;quot; were able to resume the task they were working on prior to the interruption.  Three of the participants said that they would not actively recommend their metawork strategies for other people, and two said that staying organized was &amp;quot;difficult&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Four participants were neutral to the idea of new tools to help them stay organized and three said that they would like to have such a tool/tools.&lt;br /&gt;
&lt;br /&gt;
====IV.  &#039;&#039;&#039;Discussion&#039;&#039;&#039;====&lt;br /&gt;
These results qunatiatively support our hypothesis that there is no clearly dominant set of metawork strategies employed by information workers.  This highly fragemented landscape is surprising, even though most information workers work in a similar environment - at a desk, on the phone, in meetings - and with the same types of tools - computers, pens, paper, etc.  We believe that this suggests that there are complex tradeoffs between these methods and that no single method is sufficient.  We therefore believe that users will be better supported with a new set of software-based metawork tools.&lt;br /&gt;
&lt;br /&gt;
= [Criticisms] =&lt;br /&gt;
* Owner: [[User:Andrew Bragdon | Andrew Bragdon]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Any criticisms or questions we have regarding the proposal can go here.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=References=&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Trevor O&#039;Brien</name></author>
	</entry>
	<entry>
		<id>http://vrl.cs.brown.edu/wiki/index.php?title=CS295J/Research_proposal_(draft_2)&amp;diff=3164</id>
		<title>CS295J/Research proposal (draft 2)</title>
		<link rel="alternate" type="text/html" href="http://vrl.cs.brown.edu/wiki/index.php?title=CS295J/Research_proposal_(draft_2)&amp;diff=3164"/>
		<updated>2009-04-24T16:19:33Z</updated>

		<summary type="html">&lt;p&gt;Trevor O&amp;#039;Brien: /* Collecting User Traces */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
* Owners: [[User:Adam Darlow | Adam Darlow]], [[User:Eric Sodomka | Eric Sodomka]], [[User: Trevor O&#039;Brien | Trevor]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Propose:&#039;&#039;&#039; The design, application and evaluation of a novel, cognition-based, computational framework for assessing interface design and providing automated suggestions to optimize usability.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Evaluation Methodology:&#039;&#039;&#039;  Our techniques will be evaluated quantitatively through a series of user-study trials, as well as qualitatively by a team of expert interface designers. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Contributions and Significance:&#039;&#039;&#039;  We expect this work to make the following contributions:  &lt;br /&gt;
# design-space analysis and quantitative evaluation of cognition-based techniques for assessing user interfaces.  &lt;br /&gt;
# design and quantitative evaluation of techniques for suggesting optimized interface-design changes. &lt;br /&gt;
# an extensible, multimodal software architecture for capturing user traces integrated with pupil-tracking data, auditory recognition, and muscle-activity monitoring.  &lt;br /&gt;
# specification (language?) of how to define an interface evaluation module and how to integrate it into a larger system.  &lt;br /&gt;
# (there may be more here, like testing different cognitive models, generating a markup language to represent interfaces, maybe even a unique metric space for interface usability)&lt;br /&gt;
&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
We propose a framework for interface evaluation and recommendation that integrates behavioral models and design guidelines from both cognitive science and HCI. Our framework behaves like a committee of specialized experts, where each expert provides its own assessment of the interface, given its particular knowledge of HCI or cognitive science. For example, an expert may provide an evaluation based on the GOMS method, Fitts&#039;s law, Maeda&#039;s design principles, or cognitive models of learning and memory. An aggregator collects all of these assessments and weights the opinions of each expert, and outputs to the developer a merged evaluation score and a weighted set of recommendations.&lt;br /&gt;
&lt;br /&gt;
Systematic methods of estimating human performance with computer interfaces are used only sparsely despite their obvious benefits, the reason being the overhead involved in implementing them. In order to test an interface, both manual coding systems like the GOMS variations and user simulations like those based on ACT-R/PM and EPIC require detailed pseudo-code descriptions of the user workflow with the application interface. Any change to the interface then requires extensive changes to the pseudo-code, a major problem because of the trial-and-error nature of interface design. Updating the models themselves is even more complicated. Even an expert in CPM-GOMS, for example, can&#039;t necessarily adapt it to take into account results from new cognitive research.&lt;br /&gt;
&lt;br /&gt;
Our proposal makes automatic interface evaluation easier to use in several ways. First of all, we propose to divide the input to the system into three separate parts, functionality, user traces and interface. By separating the functionality from the interface, even radical interface changes will require updating only that part of the input. The user traces are also defined over the functionality so that they too translate across different interfaces. Second, the parallel modular architecture allows for a lower &amp;quot;entry cost&amp;quot; for using the tool. The system includes a broad array of evaluation modules some of which are very simple and some more complex. The simpler modules use only a subset of the input that a system like GOMS or ACT-R would require. This means that while more input will still lead to better output, interface designers can get minimal evaluations with only minimal information. For example, a visual search module may not require any functionality or user traces in order to determine whether all interface elements are distinct enough to be easy to find. Finally, a parallel modular architecture is much easier to augment with relevant cognitive and design evaluations.&lt;br /&gt;
&lt;br /&gt;
= Background / Related Work =&lt;br /&gt;
&lt;br /&gt;
Each person should add the background related to their specific aims.&lt;br /&gt;
&lt;br /&gt;
* Steven Ellis - Cognitive models of HCI, including GOMS variations and ACT-R&lt;br /&gt;
* EJ - Design Guidelines&lt;br /&gt;
* Jon - Perception and Action&lt;br /&gt;
* Andrew - Multiple task environments&lt;br /&gt;
* Gideon - Cognition and dual systems&lt;br /&gt;
* Ian - Interface design process&lt;br /&gt;
* Trevor - User trace collection methods (especially any eye-tracking, EEG, ... you want to suggest using)&lt;br /&gt;
&lt;br /&gt;
== Cognitive Models ==&lt;br /&gt;
I plan to port over most of the background on cognitive models of HCI from the old proposal&lt;br /&gt;
&lt;br /&gt;
Additions will comprise of:&lt;br /&gt;
*CPM-GOMS as a bridge from GOMS architecture to the promising procedural optimization of the Model Human Processor&lt;br /&gt;
**Context of CPM development, discuss its relation to original GOMS and KLM&lt;br /&gt;
***Establish the tasks which were relevant for optimization when CPM was developed and note that its obsolescence may have been unavoidable&lt;br /&gt;
**Focus on CPM as the first step in transitioning from descriptive data, provided by mounting efforts in the cognitive sciences realm to discover the nature of task processing and accomplishment, to prescriptive algorithms which can predict an interface’s efficiency and suggest improvements&lt;br /&gt;
**CPM’s purpose as an abstraction of cognitive processing – a symbolic representation not designed for accuracy but precision&lt;br /&gt;
**CPM’s successful trials, e.g. Ernestine&lt;br /&gt;
***Implications of this project include CPM’s ability to accurately estimate processing at a psychomotor level&lt;br /&gt;
***Project does suggest limitations, however, when one attempts to examine more complex tasks which involve deeper and more numerous cognitive processes&lt;br /&gt;
*ACT-R as an example of a progressive cognitive modeling tool&lt;br /&gt;
**A tool clearly built by and for cognitive scientists, and as a result presents a much more accurate view of human processing – helpful for our research&lt;br /&gt;
**Built-in automation, which now seems to be a standard feature of cognitive modeling tools&lt;br /&gt;
**Still an abstraction of cognitive processing, but makes adaptation to cutting-edge cognitive research findings an integral aspect of its modular structure&lt;br /&gt;
**Expand on its focus on multi-tasking, taking what was a huge advance between GOMS and its CPM variation and bringing the simulation several steps closer to approximating the nature of cognition in regards to HCI&lt;br /&gt;
**Far more accessible both for researchers and the lay user/designer in its portability to LISP, pre-construction of modules representing cognitive capacities and underlying algorithms modeling paths of cognitive processing&lt;br /&gt;
&lt;br /&gt;
==Design guidelines==&lt;br /&gt;
A multitude of rule sets exist for the design of not only interface, but architecture, city planning, and software development.  They can range in scale from one primary rule to as many Christopher Alexander&#039;s 253 rules for urban environments,&amp;lt;ref&amp;gt;[http://hci.rwth-aachen.de/materials/publications/borchers2000a.pdf Borchers, Jan O.  &amp;quot;A Pattern Approach to Interaction Design.&amp;quot;  2000.]&amp;lt;/ref&amp;gt; which he introduced with the concept design patterns in the 1970s.  Study has likewise been conducted on the use of these rules:&amp;lt;ref&amp;gt;http://stl.cs.queensu.ca/~graham/cisc836/lectures/readings/tetzlaff-guidelines.pdf&amp;lt;/ref&amp;gt; guidelines are often only partially understood, indistinct to the developer, and &amp;quot;fraught&amp;quot; with potential usability problems given a real-world situation.&lt;br /&gt;
&lt;br /&gt;
===Application to AUE===&lt;br /&gt;
And yet, the vast majority of guideline sets, including the most popular rulesets, have been arrived at heuristically.  The most successful, such as Raskin&#039;s and Schneiderman&#039;s, have been forged from years of observation instead of empirical study and experimentation.  The problem is similar to the problem of circular logic faced by automated usability evaluations: an automated system is limited in the suggestions it can offer to a set of preprogrammed guidelines which have often not been subjected to rigorous experimentation.&amp;lt;ref&amp;gt;[http://www.eecs.berkeley.edu/Pubs/TechRpts/2000/CSD-00-1105.pdf Ivory, M and Hearst, M.  &amp;quot;The State of the Art in Automated Usability Evaluation of User Interfaces.&amp;quot; ACM Computing Surveys (CSUR), 2001.]&amp;lt;/ref&amp;gt;  In the vast majority of existing studies, emphasis has traditionally been placed on either the development of guidelines or the application of existing guidelines to automated evaluation.  A mutually-reinforcing development of both simultaneously has not been attempted.&lt;br /&gt;
&lt;br /&gt;
Overlap between rulesets is inevitable and unavoidable.  For our purposes of evaluating existing rulesets efficiently, without extracting and analyzing each rule individually, it may be desirable to identify the the overarching &#039;&#039;principles&#039;&#039; or &#039;&#039;philosophy&#039;&#039; (max. 2 or 3) for a given ruleset and determining their quantitative relevance to problems of cognition.&lt;br /&gt;
&lt;br /&gt;
===Popular and seminal examples===&lt;br /&gt;
Schneiderman&#039;s [http://faculty.washington.edu/jtenenbg/courses/360/f04/sessions/schneidermanGoldenRules.html Eight Golden Rules] date to 1987 and are arguably the most-cited.  They are heuristic, but can be somewhat classified by cognitive objective: at least two rules apply primarily to &#039;&#039;repeated use&#039;&#039;, versus &#039;&#039;discoverability&#039;&#039;.  Up to five of Schneiderman&#039;s rules emphasize &#039;&#039;predictability&#039;&#039; in the outcomes of operations and &#039;&#039;increased feedback and control&#039;&#039; in the agency of the user.  His final rule, paradoxically, removes control from the user by suggesting a reduced short-term memory load, which we can arguably classify as &#039;&#039;simplicity&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Raskin&#039;s [http://www.mprove.de/script/02/raskin/designrules.html Design Rules] are classified into five principles by the author, augmented by definitions and supporting rules.  While one principle is primarily aesthetic (a design problem arguably out of the bounds of this proposal) and one is a basic endorsement of testing, the remaining three begin to reflect philosophies similar to Schneiderman&#039;s: reliability or &#039;&#039;predictability&#039;&#039;, &#039;&#039;simplicity&#039;&#039; or &#039;&#039;efficiency&#039;&#039; (which we can construe as two sides of the same coin), and finally he introduces a concept of &#039;&#039;uninterruptibility&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Maeda&#039;s [http://lawsofsimplicity.com/?cat=5&amp;amp;order=ASC Laws of Simplicity] are fewer, and ostensibly emphasize &#039;&#039;simplicity&#039;&#039; exclusively, although elements of &#039;&#039;use&#039;&#039; as related by Schneiderman&#039;s rules and &#039;&#039;efficiency&#039;&#039; as defined by Raskin may be facets of this simplicity.  Google&#039;s corporate mission statement presents [http://www.google.com/corporate/ux.html Ten Principles], only half of which can be considered true interface guidelines.  &#039;&#039;Efficiency&#039;&#039; and &#039;&#039;simplicity&#039;&#039; are cited explicitly, aesthetics are once again noted as crucial, and working within a user&#039;s trust is another application of &#039;&#039;predictability&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
===Elements and goals of a guideline set===&lt;br /&gt;
Myriad rulesets exist, but variation becomes scarce—it indeed seems possible to parse these common rulesets into overarching principles that can be converted to or associated with quantifiable cognitive properties.  For example, it is likely &#039;&#039;simplicity&#039;&#039; has an analogue in the short-term memory retention or visual retention of the user, vis a vis the rule of [http://books.google.com/books?hl=en&amp;amp;lr=&amp;amp;id=j5q0VvOGExYC&amp;amp;oi=fnd&amp;amp;pg=PA357&amp;amp;dq=seven+plus+or+minus+two&amp;amp;ots=prI3PKJBar&amp;amp;sig=vOZnqpnkXKGYWxK6_XlA4I_CRyI Seven, Plus or Minus Two].  &#039;&#039;Predictability&#039;&#039; likewise may have an analogue in Activity Theory, in regards to a user&#039;s perceptual expectations for a given action; &#039;&#039;uninterruptibility&#039;&#039; has implications in cognitive task-switching;&amp;lt;ref&amp;gt;[http://portal.acm.org/citation.cfm?id=985692.985715&amp;amp;coll=Portal&amp;amp;dl=ACM&amp;amp;CFID=21136843&amp;amp;CFTOKEN=23841774 Czerwinski, Horvitz, and White. &amp;quot;A Diary Study of Task Switching and Interruptions.&amp;quot;  Proceedings of the SIGCHI conference on Human factors in computing systems, 2004.]&amp;lt;/ref&amp;gt; and so forth.&lt;br /&gt;
&lt;br /&gt;
Within the scope of this proposal, we aim to reduce and refine these philosophies found in seminal rulesets and identify their logical cognitive analogues.  By assigning a quantifiable taxonomy to these principles, we will be able to rank and weight them with regard to their real-world applicability, developing a set of &amp;quot;meta-guidelines&amp;quot; and rules for applying them to a given interface in an automated manner.  Combined with cognitive models and multi-modal HCI analysis, we seek to develop, in parallel with these guidelines, the interface evaluation system responsible for their application.&lt;br /&gt;
&lt;br /&gt;
== Perception and Action (in progress) ==&lt;br /&gt;
&lt;br /&gt;
*Information Processing Approach&lt;br /&gt;
**Advantages&lt;br /&gt;
***Formalism eases translation of theory into scripting language&lt;br /&gt;
**Disadvantages&lt;br /&gt;
***Assumes symbolic representation&lt;br /&gt;
&lt;br /&gt;
*Ecological (Gibsonian) Approach&lt;br /&gt;
**Advantages&lt;br /&gt;
***Emphasis on bodily and environmental constraints&lt;br /&gt;
**Disadvantages&lt;br /&gt;
***Lack of formalism hinders translation of theory into scripting language&lt;br /&gt;
&lt;br /&gt;
= Specific Aims and Contributions (to be separated later) =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Specific Aims&#039;&#039;&#039;&lt;br /&gt;
* Incorporate interaction history mechanisms into a set of existing applications.&lt;br /&gt;
* Perform user-study evaluation of history-collection techniques.&lt;br /&gt;
* Distill a set of cognitive principles/models, and evaluate empirically?&lt;br /&gt;
* Build/buy sensing system to include pupil-tracking, muscle-activity monitoring, auditory recognition.&lt;br /&gt;
* Design techniques for manual/semi-automated/automated construction of &amp;lt;insert favorite cognitive model here&amp;gt; from interaction histories and sensing data.&lt;br /&gt;
* Design system for posterior analysis of interaction history w.r.t. &amp;lt;insert favorite cognitive model here&amp;gt;, evaluating critical path &amp;lt;or equivalent&amp;gt; trajectories.&lt;br /&gt;
* Design cognition-based techniques for detecting bottlenecks in critical paths, and offering optimized alternatives. &lt;br /&gt;
* Perform quantitative user-study evaluations, collect qualitative feedback from expert interface designers.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Contributions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Design-space analysis and quantitative evaluation of cognition-based techniques for assessing user interfaces. &lt;br /&gt;
* Design and quantitative evaluation of techniques for suggesting optimized interface-design changes. &lt;br /&gt;
* An extensible, multimodal software architecture for capturing user traces integrated with pupil-tracking data, auditory recognition, and muscle-activity monitoring. &lt;br /&gt;
* (there may be more here, like testing different cognitive models, generating a markup language to represent interfaces, maybe even a unique metric space for interface usability) &lt;br /&gt;
&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
See the [http://vrl.cs.brown.edu/wiki/images/b/b1/Flowchart2.pdf flowchart] for a visual overview of our aims.&lt;br /&gt;
&lt;br /&gt;
In order to use this framework, a designer will have to provide:&lt;br /&gt;
* Functional specification - what are the possible interactions between the user and the application. This can be thought of as method signatures, with a name (e.g., setVolume), direction (to user or from user) and a list of value types (boolean, number, text, video, ...) for each interaction.&lt;br /&gt;
* GUI specification - a mapping of interactions to interface elements (e.g., setVolume is mapped to the grey knob in the bottom left corner with clockwise turning increasing the input number).&lt;br /&gt;
* Functional user traces - sequences of representative ways in which the application is used. Instead of writing them, the designer could have users use the application with a trial interface and then use our methods to generalize the user traces beyond the specific interface (The second method is depicted in the diagram). As a form of pre-processing, the system also generates an interaction transition matrix which lists the probability of each type of interaction given the previous interaction.&lt;br /&gt;
* Utility function - this is a weighting of various performance metrics (time, cognitive load, fatigue, etc.), where the weighting expresses the importance of a particular dimension to the user. For example, a user at NASA probably cares more about interface accuracy than speed. By passing this information to our committee of experts, we can create interfaces that are tuned to maximize the utility of a particular user type.&lt;br /&gt;
&lt;br /&gt;
Each of the modules can use all of this information or a subset of it. Our approach stresses flexibility and the ability to give more meaningful feedback the more information is provided. After processing the information sent by the system of experts, the aggregator will output:&lt;br /&gt;
* An evaluation of the interface. Evaluations are expressed both in terms of the utility function components (i.e. time, fatigue, cognitive load, etc.), and in terms of the overall utility for this interface (as defined by the utility function). These evaluations are given in the form of an efficiency curve, where the utility received on each dimension can change as the user becomes more accustomed to the interface. &lt;br /&gt;
* Suggested improvements for the GUI are also output. These suggestions are meant to optimize the utility function that was input to the system. If a user values accuracy over time, interface suggestions will be made accordingly.&lt;br /&gt;
&lt;br /&gt;
== Recording User-Interaction Primitives ==&lt;br /&gt;
* Owner: [[User:Trevor O&#039;Brien | Trevor O&#039;Brien]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Given an interface, our first step is to run users on the interface and log these user interactions. We want to log actions at a sufficiently low level so that a GOMS model can be generated from the data. When possible, we&#039;d also like to log data using additional sensing technologies, such as pupil-tracking, muscle-activity monitoring and auditory recognition; this information will help to analyze the explicit contributions of perception, cognition and motor skills with respect to user performance.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Generalizing User Traces ==&lt;br /&gt;
* Owner: [[User:Trevor O&#039;Brien | Trevor O&#039;Brien]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;The user traces that are collected are tied to a specific interface. In order to use them with different interfaces to the same application, they should be generalized to be based only on the functional description of the application and the user&#039;s goal hierarchy. This would abstract away from actions like accessing a menu.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;In addition to specific user traces, many modules could use a transition probability matrix based on interaction predictions.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Parallel Framework for Evaluation Modules ==&lt;br /&gt;
* Owner: [[User:Adam Darlow | Adam Darlow]], [[User:Eric Sodomka | Eric Sodomka]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This section will describe in more detail the inputs, outputs and architecture that were presented in the introduction.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Module Inputs (Incomplete) ====&lt;br /&gt;
* A set of utility dimensions {d1, d2, ...} are defined in the framework. These could be {d1=&amp;quot;time&amp;quot;, d2=&amp;quot;fatigue&amp;quot;, ...}&lt;br /&gt;
* A set of interaction functions. These specify all of the information that the application wants to give users or get from them. It is not tied to a specific interface. For example, the fact that an applications shows videos would be included here. Whether it displays them embedded, in a pop-up window or fullscreen would not.&lt;br /&gt;
* A mapping of interaction functions to interface elements (e.g., buttons, windows, dials,...). Lots of optional information describing visual properties, associated text, physical interactions (e.g., turning the dial clockwise increases the input value) and timing.&lt;br /&gt;
* Functional user traces - sequences of interaction functions that represent typical user interactions with the application. Could include a goal hierarchy, in which case the function sequence is at the bottom of the hierarchy.&lt;br /&gt;
&lt;br /&gt;
==== Module Outputs ====&lt;br /&gt;
* Every module ouputs at least one of the following:&lt;br /&gt;
** An evaluation of the interface&lt;br /&gt;
*** This can be on any or all of the utility dimensions, e.g. evaluation={d1=score1, d2=score2, ...}&lt;br /&gt;
*** This can alternately be an overall evaluation, ignoring dimensions, e.g. evaluation={score}&lt;br /&gt;
**** In this case, the aggregator will treat this as the module giving the same score to all dimensions. Which dimension this evaluator actually predicts well on can be learned by the aggregator over time.&lt;br /&gt;
** Recommendation(s) for improving the interface&lt;br /&gt;
***This can be a textual description of what changes the designer should make&lt;br /&gt;
***This can alternately be a transformation that can automatically be applied to the interface language (without designer intervention)&lt;br /&gt;
***In addition to the textual or transformational description of the recommendation, a &amp;quot;change in evaluation&amp;quot; is output to describe how specifically the value will improve the interface&lt;br /&gt;
****Recommendation = {description=&amp;quot;make this change&amp;quot;, Δevaluation={d1=score1, d2=score2, ...}&lt;br /&gt;
****Like before, this Δevaluation can cover any number of dimensions, or it can be generic.&lt;br /&gt;
***Either a single recommendation or a set of recommendations can be output&lt;br /&gt;
&lt;br /&gt;
==== Aggregator Inputs ====&lt;br /&gt;
The aggregator receives as input the outputs of all the modules.&lt;br /&gt;
&lt;br /&gt;
==== Aggregator Outputs ====&lt;br /&gt;
&lt;br /&gt;
Outputs for the aggregator are the same as the outputs for each module. The difference is that the aggregator will consider all the module outputs, and arrive at a merged output based on the past performance of each of the modules.&lt;br /&gt;
&lt;br /&gt;
== Evaluation and Recommendation via Modules ==&lt;br /&gt;
* Owner: [[User:E J Kalafarski | E J Kalafarski]]&lt;br /&gt;
&lt;br /&gt;
A &amp;quot;meta-module&amp;quot; called the aggregator will be responsible for assembling and formatting the output of all other modules into a structure that is both extensible and immediately usable, by both an automated designer or a human designer.&lt;br /&gt;
&lt;br /&gt;
===Requirements===&lt;br /&gt;
The aggregator&#039;s functionality, then, is defined by its &#039;&#039;&#039;inputs&#039;&#039;&#039;, the outputs of the other modules, and the desired &#039;&#039;&#039;output&#039;&#039;&#039; of the system as a whole, per its position in the architecture.  Its purpose is largely formatting and reconciliation of the products of the multitudinous (and extensible) modules.  The output of the aggregator must meet several requirements: first, to generate a set of human-readable suggestions for the improvement of the given interface; second, to generate a machine-readable, but also analyzable, evaluation of the various characteristics of the interface and accompanying user traces.&lt;br /&gt;
&lt;br /&gt;
From these specifications, it is logical to assume that a common language or format will be required for the output of individual modules.  We propose an XML-based file format, allowing: (1) a section for the standardized identification of problem areas, applicable rules, and proposed improvements, generalized by the individual module and mapped to a single element, or group of elements, in the original interface specification; (2) a section for specification of generalizable &amp;quot;utility&amp;quot; functions, allowing a module to specify how much a measurable quantity of utility is positively or negatively affected by properties of the input interface; (3) new, user-definable sections for evaluations of the given interface not covered by the first two sections.  The first two sections are capable of conveying the vast majority of module outputs predicted at this time, but the XML can extensibly allow modules to pass on whatever information may become prominent in the future.&lt;br /&gt;
&lt;br /&gt;
===Specification===&lt;br /&gt;
 &amp;lt;module id=&amp;quot;Fitts-Law&amp;quot;&amp;gt;&lt;br /&gt;
 	&amp;lt;interface-elements&amp;gt;&lt;br /&gt;
 		&amp;lt;element&amp;gt;&lt;br /&gt;
 			&amp;lt;desc&amp;gt;submit button&amp;lt;/desc&amp;gt;&lt;br /&gt;
 			&amp;lt;problem&amp;gt;&lt;br /&gt;
 				&amp;lt;desc&amp;gt;size&amp;lt;/desc&amp;gt;&lt;br /&gt;
 				&amp;lt;suggestion&amp;gt;width *= 2&amp;lt;/suggestion&amp;gt;&lt;br /&gt;
 				&amp;lt;suggetsion&amp;gt;height *= 2&amp;lt;/suggestions&amp;gt;&lt;br /&gt;
 				&amp;lt;human-suggestion&amp;gt;Increase size relative to other elements&amp;lt;/human-suggestion&amp;gt;&lt;br /&gt;
 			&amp;lt;/problem&amp;gt;&lt;br /&gt;
 		&amp;lt;/element&amp;gt;&lt;br /&gt;
 	&amp;lt;/interface-elements&amp;gt;&lt;br /&gt;
 	&amp;lt;utility&amp;gt;&lt;br /&gt;
 		&amp;lt;dimension&amp;gt;&lt;br /&gt;
 			&amp;lt;desc&amp;gt;time&amp;lt;/desc&amp;gt;&lt;br /&gt;
 			&amp;lt;value&amp;gt;0:15:35&amp;lt;/value&amp;gt;&lt;br /&gt;
 		&amp;lt;/dimension&amp;gt;&lt;br /&gt;
 		&amp;lt;dimension&amp;gt;&lt;br /&gt;
 			&amp;lt;desc&amp;gt;frustration&amp;lt;/desc&amp;gt;&lt;br /&gt;
 			&amp;lt;value&amp;gt;pulling hair out&amp;lt;/value&amp;gt;&lt;br /&gt;
 		&amp;lt;/dimension&amp;gt;&lt;br /&gt;
 		&amp;lt;dimension&amp;gt;&lt;br /&gt;
 			&amp;lt;desc&amp;gt;efficiency&amp;lt;/desc&amp;gt;&lt;br /&gt;
 			&amp;lt;value&amp;gt;13.2s/KPM task&amp;lt;/value&amp;gt;&lt;br /&gt;
 			&amp;lt;value&amp;gt;0.56m/CPM task&amp;lt;/value&amp;gt;&lt;br /&gt;
 		&amp;lt;/dimension&amp;gt;&lt;br /&gt;
 	&amp;lt;/utility&amp;gt;&lt;br /&gt;
 	&amp;lt;tasks&amp;gt;&lt;br /&gt;
 		&amp;lt;task&amp;gt;&lt;br /&gt;
 			&amp;lt;desc&amp;gt;complete form&amp;lt;/desc&amp;gt;&lt;br /&gt;
 		&amp;lt;/task&amp;gt;&lt;br /&gt;
 		&amp;lt;task&amp;gt;&lt;br /&gt;
 			&amp;lt;desc&amp;gt;lookup SSN&amp;lt;/desc&amp;gt;&lt;br /&gt;
 		&amp;lt;/task&amp;gt;&lt;br /&gt;
 		&amp;lt;task&amp;gt;&lt;br /&gt;
 			&amp;lt;desc&amp;gt;format phone number&amp;lt;/desc&amp;gt;&lt;br /&gt;
 		&amp;lt;/task&amp;gt;&lt;br /&gt;
 	&amp;lt;/tasks&amp;gt;&lt;br /&gt;
 &amp;lt;/module&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Logic===&lt;br /&gt;
This file provided by each module is then the input for the aggregator.  The aggregator&#039;s most straightforward function is the compilation of the &amp;quot;problem areas,&amp;quot; assembling them and noting problem areas and suggestions that are recommended by more than one module, and weighting them accordingly in its final report.  These weightings can begin in an equal state, but the aggregator should be capable of learning iteratively which modules&#039; results are most relevant to the user and update weightings accordingly.  This may need to be accomplished with manual tuning, or a machine-learning algorithm capable of determining which modules most often agree with others.&lt;br /&gt;
&lt;br /&gt;
Secondly, the aggregator compiles the utility functions provided by the module specs.  This, again, is a summation of similarly-described values from the various modules.&lt;br /&gt;
&lt;br /&gt;
When confronted with user-defined sections of the XML spec, the aggregator is primarily responsible for compiling them and sending them along to the output of the machine.  Even if the aggregator does not recognize a section or property of the evaluative spec, if it sees the property reported by more than one module it should be capable of aggregating these intelligently.  In future versions of the spec, it should be possible for a module to provide instructions for the aggregator on how to handle unrecognized sections of the XML.&lt;br /&gt;
&lt;br /&gt;
From these compilations, then, the aggregator should be capable of outputting both aggregated human-readable suggestions on interface improvements for a human designer, as well as a comprehensive evaluation of the interface&#039;s effectiveness at the given task traces.  Again, this is dependent on the specification of the system as a whole, but is likely to include measures and comparisons, graphings of task versus utility, and quantitative measures of an element&#039;s effectiveness.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This section is necessarily defined by the output of the individual modules (which I already expect to be of varied and arbitrary structure) and the desired output of the machine as a whole.  It will likely need to be revised heavily after other modules and the &amp;quot;Parellel Framework&amp;quot; section are defined.&#039;&#039; [[User:E J Kalafarski|E J Kalafarski]] 12:34, 24 April 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This section describes the aggregator, which takes the output of multiple independent modules and aggregates the results to provide (1) an evaluation and (2) recommendations for the user interface. We should explain how the aggregator weights the output of different modules (this could be based on historical performance of each module, or perhaps based on E.J.&#039;s cognitive/HCI guidelines).&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Sample Modules ==&lt;br /&gt;
&lt;br /&gt;
=== CPM-GOMS ===&lt;br /&gt;
* Owners: [[User:Steven Ellis | Steven Ellis]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This module will provide interface evaluations and suggestions based on a CPM-GOMS model of cognition for the given interface. It will provide a quantitative, predictive, cognition-based parameterization of usability. From empirically collected data, user trajectories through the model (critical paths) will be examined, highlighting bottlenecks within the interface, and offering suggested alterations to the interface to induce more optimal user trajectories.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
I’m hoping to have some input on this section, because it seems to be the crux of the “black box” into which we take the inputs of interface description, user traces, etc. and get our outputs (time, recommendations, etc.).  I know at least a few people have pretty strong thoughts on the matter and we ought to discuss the final structure.&lt;br /&gt;
&lt;br /&gt;
That said – my proposal for the module:&lt;br /&gt;
*In my opinion the concept of the Model Human Processor (at least as applied in CPM) is outdated – it’s too economic/overly parsimonious in its conception of human activity.  I think we need to create a structure which accounts for more realistic conditions of HCI including multitasking, aspects of distributed cognition (and other relevant uses of tools – as far as I can tell CPM doesn’t take into account any sort of productivity aids), executive control processes of attention, etc.  ACT-R appears to take steps towards this but we would probably need to look at their algorithms to know for sure.&lt;br /&gt;
*Critical paths will continue to play an important role – we should in fact emphasize that part of this tool’s purpose will be a description not only of ways in which the interface should be modified to best fit a critical path, but also ways in which the user’s ought to be instructed in their use of the path.  This feedback mechanism could be bidirectional – if the model’s predictions of the user’s goals are incorrect, the critical path determined will also be incorrect and the interface inherently suboptimal.  The user could be prompted with a tooltip explaining in brief why and how the interface has changed, along with options to revert, select other configurations (euphemized by goals), and to view a short video detailing how to properly use the interface.&lt;br /&gt;
*Call me crazy but, if we assume designers will be willing to code a model of their interfaces into our ACT-R-esque language, could we allow that model to be fairly transparent to the user, who could use a gui to input their goals to find an analogue in the program which would subsequently rearrange its interface to fit the user’s needs?  Even if not useful to the users, such dynamic modeling could really help designers (IMO)&lt;br /&gt;
*I think the model should do its best to accept models written for ACT-R and whatever other cognitive models there are out there – gives us the best chance of early adoption&lt;br /&gt;
*I would particularly appreciate input on the number/complexity/type of inputs we’ll be using, as well as the same qualities for the output.&lt;br /&gt;
&lt;br /&gt;
=== HCI Guidelines ===&lt;br /&gt;
* Owner: [[User:E J Kalafarski | E J Kalafarski]]&lt;br /&gt;
&lt;br /&gt;
Schneiderman&#039;s Eight Golden Rules and Jakob Nielsen&#039;s Ten Heuristics are perhaps the most famous and well-regarded heuristic design guidelines to emerge over the last twenty years.  Although the explicit theoretical basis for such heuristics is controversial and not well-explored, the empirical success of these guidelines is established and accepted.  This module will parse out up to three or four common (that is, intersecting) principles from these accepted guidelines and apply them to the input interface.&lt;br /&gt;
&lt;br /&gt;
As an example, we identify an analogous principle that appears in Schneiderman (&amp;quot;Reduce short-term memory load&amp;quot;)&amp;lt;ref&amp;gt;http://faculty.washington.edu/jtenenbg/courses/360/f04/sessions/schneidermanGoldenRules.html&amp;lt;/ref&amp;gt; and Nielsen (&amp;quot;Recognition rather than recall/Minimize the user&#039;s memory load&amp;quot;)&amp;lt;ref&amp;gt;http://www.useit.com/papers/heuristic/heuristic_list.html&amp;lt;/ref&amp;gt;.  The input interface is then evaluated for the consideration of the principle, based on an explicit formal description of the interface, such as XAML or XUL.  The module attempts to determine how effectively the interface demonstrates the principle.  When analyzing an interface for several principles that may be conflicting or opposing in a given context, the module makes use of a hard-coded but iterative (and evolving) weighting of these principles, based on (1) how often they appear in the training set of accepted sets of guidelines, (2) how analogues a heuristic principle is to a cognitive principle in a parallel training set, and (3) how effective the principle&#039;s associated suggestion is found to be using a feedback mechanism.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inputs&#039;&#039;&#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
# A formal description of the interface and its elements (e.g. buttons).&lt;br /&gt;
# A formal description of a particular task and the possible paths through a subset of interface elements that permit the user to accomplish that task.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Output&#039;&#039;&#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
Standard XML-formatted file containing problem areas of the input interface, suggestions for each problem area based on principles that were found to have a strong application to a problem element and the problem itself, and a human-readable generated analysis of the element&#039;s affinity for the principle.  Quantitative outputs will not be possible based on heuristic guidelines, and the &amp;quot;utility&amp;quot; section of this module&#039;s output is likely to be blank.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This section could include an example or two of established design guidelines that could easily be implemented as modules.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Fitts&#039;s Law ===&lt;br /&gt;
* Owner: [[User:Jon Ericson | Jon Ericson]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This module provides an estimate of the required time to complete various tasks that have been decomposed into formalized sequences of interactions with interface elements, and will provide evaluations and recommendations for optimizing the time required to complete those tasks using the interface.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1. A formal description of the interface and its elements (e.g. buttons).&lt;br /&gt;
&lt;br /&gt;
2. A formal description of a particular task and the possible paths through a subset of interface elements that permit the user to accomplish that task.&lt;br /&gt;
&lt;br /&gt;
3. The physical distances between interface elements along those paths.&lt;br /&gt;
&lt;br /&gt;
4. The width of those elements along the most likely axes of motion.&lt;br /&gt;
&lt;br /&gt;
5. Device (e.g. mouse) characteristics including start/stop time and the inherent speed limitations of the device.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Output&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The module will then use the Shannon formulation of Fitt&#039;s Law to compute the average time needed to complete the task along those paths.&lt;br /&gt;
&lt;br /&gt;
=== Affordances ===&lt;br /&gt;
* Owner: [[User:Jon Ericson | Jon Ericson]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This simple module will provide interface evaluations and recommendations based on a measure of the extent to which the user perceives the relevant affordances of the interface when performing a number of specified tasks.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inputs&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Formalized descriptions of...&lt;br /&gt;
&lt;br /&gt;
1. Interface elements&lt;br /&gt;
&lt;br /&gt;
2. Their associated actions&lt;br /&gt;
&lt;br /&gt;
3. The functions of those actions&lt;br /&gt;
&lt;br /&gt;
4. A particular task&lt;br /&gt;
&lt;br /&gt;
5. User traces for that task.  &lt;br /&gt;
&lt;br /&gt;
Inputs (1-4) are then used to generate a &amp;quot;user-independent&amp;quot; space of possible functions that the interface is capable of performing with respect to a given task -- what the interface &amp;quot;affords&amp;quot; the user.  From this set of possible interactions, our model will then determine the subset of optimal paths for performing a particular task.  The user trace (5) is then used to determine what functions actually were performed in the course of a given task of interest and this information is then compared to the optimal path data to determine the extent to which affordances of the interface are present but not perceived.  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Output&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The output of this module is a simple ratio of (affordances perceived) / [(relevant affordances present) * (time to complete task)] which provides a quantitative measure of the extent to which the interface is &amp;quot;natural&amp;quot; to use for a particular task.&lt;br /&gt;
&lt;br /&gt;
=== Workflow, Multi-tasking and Interruptions ===&lt;br /&gt;
* Owner: [[User:Andrew Bragdon | Andrew Bragdon]]&lt;br /&gt;
&lt;br /&gt;
There are, at least, two levels at which users work ([http://portal.acm.org/citation.cfm?id=985692.985707&amp;amp;coll=portal&amp;amp;dl=ACM&amp;amp;CFID=20781736&amp;amp;CFTOKEN=83176621 Gonzales, et al., 2004]).  Users accomplish individual low-level tasks which are part of larger &#039;&#039;working spheres&#039;&#039;; for example, an office worker might send several emails, create several Post-It (TM) note reminders, and then edit a word document, each of these smaller tasks being part of a single larger working sphere of &amp;quot;adding a new section to the website.&amp;quot;  Thus, it is important to understand this larger workflow context - which often involves extensive levels of multi-tasking, as well as switching between a variety of computing devices and traditional tools, such as notebooks.  In this study it was found that the information workers surveyed typically switch individual tasks every 2 minutes and have many simultaneous working spheres which they switch between, on average every 12 minutes.  This frenzied pace of switching tasks and switching working spheres suggests that users will not be using a single application or device for a long period of time, and that affordances to support this characteristic pattern of information work are important.&lt;br /&gt;
&lt;br /&gt;
The purpose of this module is to integrate existing work on multi-tasking, interruption and higher-level workflow into a framework which can predict user recovery times from interruptions.  Specifically, the goals of this framework will be to:&lt;br /&gt;
&lt;br /&gt;
* Understand the role of the larger workflow context in user interfaces&lt;br /&gt;
* Understand the impact of interruptions on user workflow&lt;br /&gt;
* Understand how to design software which fits into the larger working spheres in which information work takes place&lt;br /&gt;
&lt;br /&gt;
It is important to point out that because workflow and multi-tasking rely heavily on higher-level brain functioning, it is unrealistic within the scope of this grant to propose a system which can predict user performance given a description of a set of arbitrary software programs.  Therefore, we believe this module will function much more in a qualitative role to provide context to the rest of the model.  Specifically, our findings related to interruption and multi-tasking will advance the basic research question of &amp;quot;how do you users react to interruptions when using working sets of varying sizes?&amp;quot;.  This core HCI contribution will help to inform the rest of the outputs of the model in a qualitative manner.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
N/A&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Outputs&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
N/A&lt;br /&gt;
&lt;br /&gt;
=== Working Memory Load ===&lt;br /&gt;
* Owner: [[User:Gideon Goldin | Gideon Goldin]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This module measures how much information the user needs to retain in memory while interacting with the interface and makes suggestions for improvements.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Models&lt;br /&gt;
** Beddeley&#039;s Model of Working Memory&amp;lt;ref&amp;gt;http://en.wikipedia.org/wiki/Baddeley%27s_model_of_working_memory&amp;lt;/ref&amp;gt;&lt;br /&gt;
*** Episodic Buffer&lt;br /&gt;
** George Miller&#039;s &amp;quot;The magic number 7 plus or minus 2&amp;quot;&amp;lt;ref&amp;gt;http://en.wikipedia.org/wiki/The_Magical_Number_Seven,_Plus_or_Minus_Two&amp;lt;/ref&amp;gt;&lt;br /&gt;
** The magic number 4&amp;lt;ref&amp;gt;Cowan, N. (2001). The magical number 4 in short-term memory: A reconsideration of mental storage capacity. Behavioral and Brain Sciences, 24, 87-185.&amp;lt;/ref&amp;gt;&lt;br /&gt;
* Chunking&amp;lt;ref&amp;gt;http://en.wikipedia.org/wiki/Chunking_(psychology)&amp;lt;/ref&amp;gt;&lt;br /&gt;
* Priming&amp;lt;ref&amp;gt;http://en.wikipedia.org/wiki/Priming_(psychology)&amp;lt;/ref&amp;gt;&lt;br /&gt;
* Subitizing and Counting&amp;lt;ref&amp;gt;http://en.wikipedia.org/wiki/Subitizing&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
* Visual Stimuli&lt;br /&gt;
* Audio Stimuli&lt;br /&gt;
&#039;&#039;&#039;Outputs&#039;&#039;&#039;&lt;br /&gt;
* Remembered percepts&lt;br /&gt;
* Half-Life of percepts&lt;br /&gt;
&lt;br /&gt;
=== Automaticity of Interaction ===&lt;br /&gt;
* Owner: [[User:Gideon Goldin | Gideon Goldin]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Measures how easily the interaction with the interface becomes automatic with experience and makes suggestions for improvements.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Learning&amp;lt;ref&amp;gt;http://en.wikipedia.org/wiki/Learning#Mathematical_models_of_learning&amp;lt;/ref&amp;gt;&lt;br /&gt;
** Logan&#039;s instance theory of automatization&amp;lt;ref&amp;gt;http://74.125.95.132/search?q=cache:IZ-Zccsu3SEJ:psych.wisc.edu/ugstudies/psych733/logan_1988.pdf+logan+isntance+teory&amp;amp;cd=1&amp;amp;hl=en&amp;amp;ct=clnk&amp;amp;gl=us&amp;amp;client=firefox-a&amp;lt;/ref&amp;gt;&lt;br /&gt;
* Fluency&lt;br /&gt;
** As meta-cognitive information &amp;lt;ref&amp;gt;http://www.sciencedirect.com/science?_ob=ArticleURL&amp;amp;_udi=B6VH9-4SM7PFK-4&amp;amp;_user=10&amp;amp;_rdoc=1&amp;amp;_fmt=&amp;amp;_orig=search&amp;amp;_sort=d&amp;amp;view=c&amp;amp;_acct=C000050221&amp;amp;_version=1&amp;amp;_urlVersion=0&amp;amp;_userid=10&amp;amp;md5=10cd279fa80958981fcc3c06684c09af&amp;lt;/ref&amp;gt;&lt;br /&gt;
** As a cognitive &#039;&#039;heuristic&#039;&#039;&amp;lt;ref&amp;gt;http://en.wikipedia.org/wiki/Fluency_heuristic&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
* Interface&lt;br /&gt;
* User goals&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Outputs&#039;&#039;&#039;&lt;br /&gt;
* Learning curve&lt;br /&gt;
&lt;br /&gt;
== Integration into the Design Process ==&lt;br /&gt;
* Owner: [[User:Ian Spector | Ian Spector]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This section outlines the process of designing an HCI interface and at what stages our proposal fits in and how.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Preliminary Results =&lt;br /&gt;
&lt;br /&gt;
===Workflow, Multi-tasking, and Interruption===&lt;br /&gt;
&lt;br /&gt;
====I.  &#039;&#039;&#039;Goals&#039;&#039;&#039;====&lt;br /&gt;
&lt;br /&gt;
The goals of the preliminary work are to gain qualitative insight into how information workers practice metawork, and to determine whether people might be better-supported with software which facillitates metawork and interruptions.  Thus, the preliminary work should investigate, and demonstrate, the need and impact of the core goals of the project.&lt;br /&gt;
&lt;br /&gt;
====II.  &#039;&#039;&#039;Methodology&#039;&#039;&#039;====&lt;br /&gt;
&lt;br /&gt;
Seven information workers, ages 20-38 (5 male, 2 female), were interviewed to determine which methods they use to &amp;quot;stay organized&amp;quot;.  An initial list of metawork strategies was established from two pilot interviews, and then a final list was compiled.  Participants then responded to a series of 17 questions designed to gain insight into their metawork strategies and process.  In addition, verbal interviews were conducted to get additional open-ended feedback.&lt;br /&gt;
&lt;br /&gt;
====III.  &#039;&#039;&#039;Final Results&#039;&#039;&#039;====&lt;br /&gt;
A histogram of methods people use to &amp;quot;stay organized&amp;quot; in terms of tracking things they need to do (TODOs), appointments and meetings, etc. is shown in the figure below.&lt;br /&gt;
&lt;br /&gt;
[[Image:AcbGraph.jpg]]&lt;br /&gt;
&lt;br /&gt;
In addition to these methods, participants also used a number of other methods, including:&lt;br /&gt;
&lt;br /&gt;
* iCal&lt;br /&gt;
* Notes written in xterms&lt;br /&gt;
* &amp;quot;Inbox zero&amp;quot; method of email organization&lt;br /&gt;
* iGoogle Notepad (for tasks)&lt;br /&gt;
* Tag emails as &amp;quot;TODO&amp;quot;, &amp;quot;Important&amp;quot;, etc.&lt;br /&gt;
* Things (Organizer Software)&lt;br /&gt;
* Physical items placed to &amp;quot;remind me of things&amp;quot;&lt;br /&gt;
* Sometimes arranging windows on desk&lt;br /&gt;
* Keeping browser tabs open&lt;br /&gt;
* Bookmarking web pages&lt;br /&gt;
* Keep programs/files open scrolled to certain locations sometimes with things selected&lt;br /&gt;
&lt;br /&gt;
In addition, three participants said that when interrupted they &amp;quot;rarely&amp;quot; or &amp;quot;very rarely&amp;quot; were able to resume the task they were working on prior to the interruption.  Three of the participants said that they would not actively recommend their metawork strategies for other people, and two said that staying organized was &amp;quot;difficult&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Four participants were neutral to the idea of new tools to help them stay organized and three said that they would like to have such a tool/tools.&lt;br /&gt;
&lt;br /&gt;
====IV.  &#039;&#039;&#039;Discussion&#039;&#039;&#039;====&lt;br /&gt;
These results qunatiatively support our hypothesis that there is no clearly dominant set of metawork strategies employed by information workers.  This highly fragemented landscape is surprising, even though most information workers work in a similar environment - at a desk, on the phone, in meetings - and with the same types of tools - computers, pens, paper, etc.  We believe that this suggests that there are complex tradeoffs between these methods and that no single method is sufficient.  We therefore believe that users will be better supported with a new set of software-based metawork tools.&lt;br /&gt;
&lt;br /&gt;
= [Criticisms] =&lt;br /&gt;
* Owner: [[User:Andrew Bragdon | Andrew Bragdon]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Any criticisms or questions we have regarding the proposal can go here.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=References=&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Trevor O&#039;Brien</name></author>
	</entry>
	<entry>
		<id>http://vrl.cs.brown.edu/wiki/index.php?title=CS295J/Research_proposal_(draft_2)&amp;diff=3117</id>
		<title>CS295J/Research proposal (draft 2)</title>
		<link rel="alternate" type="text/html" href="http://vrl.cs.brown.edu/wiki/index.php?title=CS295J/Research_proposal_(draft_2)&amp;diff=3117"/>
		<updated>2009-04-23T21:41:48Z</updated>

		<summary type="html">&lt;p&gt;Trevor O&amp;#039;Brien: /* Specific Aims and Contributions (to be separated later) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
* Owners: [[User:Adam Darlow | Adam Darlow]], [[User:Eric Sodomka | Eric Sodomka]], [[User: Trevor O&#039;Brien | Trevor]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Propose:&#039;&#039;&#039; The design, application and evaluation of a novel, cognition-based, computational framework for assessing interface design and providing automated suggestions to optimize usability.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Evaluation Methodology:&#039;&#039;&#039;  Our techniques will be evaluated quantitatively through a series of user-study trials, as well as qualitatively by a team of expert interface designers. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Contributions and Significance:&#039;&#039;&#039;  We expect this work to make the following contributions:  1. design-space analysis and quantitative evaluation of cognition-based techniques for assessing user interfaces.  2.  design and quantitative evaluation of techniques for suggesting optimized interface-design changes.  3.  an extensible, multimodal software architecture for capturing user traces integrated with pupil-tracking data, auditory recognition, and muscle-activity monitoring.  (there may be more here, like testing different cognitive models, generating a markup language to represent interfaces, maybe even a unique metric space for interface usability)&lt;br /&gt;
&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
We propose a framework for interface evaluation and recommendation that integrates behavioral models and design guidelines from both cognitive science and HCI. Our framework behaves like a committee of specialized experts, where each expert provides its own assessment of the interface, given its particular knowledge of HCI or cognitive science. For example, an expert may provide an evaluation based on the GOMS method, Fitts&#039;s law, Maeda&#039;s design principles, or cognitive models of learning and memory. An aggregator collects all of these assessments and weights the opinions of each expert, and outputs to the developer a merged evaluation score and a weighted set of recommendations.&lt;br /&gt;
&lt;br /&gt;
Systematic methods of estimating human performance with computer interfaces are used only sparsely despite their obvious benefits, the reason being the overhead involved in implementing them. In order to test an interface, both manual coding systems like the GOMS variations and user simulations like those based on ACT-R/PM and EPIC require detailed pseudo-code descriptions of the user workflow with the application interface. Any change to the interface then requires extensive changes to the pseudo-code, a major problem because of the trial-and-error nature of interface design. Updating the models themselves is even more complicated. Even an expert in CPM-GOMS, for example, can&#039;t necessarily adapt it to take into account results from new cognitive research.&lt;br /&gt;
&lt;br /&gt;
Our proposal makes automatic interface evaluation easier to use in several ways. First of all, we propose to divide the input to the system into three separate parts, functionality, user traces and interface. By separating the functionality from the interface, even radical interface changes will require updating only that part of the input. The user traces are also defined over the functionality so that they too translate across different interfaces. Second, the parallel modular architecture allows for a lower &amp;quot;entry cost&amp;quot; for using the tool. The system includes a broad array of evaluation modules some of which are very simple and some more complex. The simpler modules use only a subset of the input that a system like GOMS or ACT-R would require. This means that while more input will still lead to better output, interface designers can get minimal evaluations with only minimal information. For example, a visual search module may not require any functionality or user traces in order to determine whether all interface elements are distinct enough to be easy to find. Finally, a parallel modular architecture is much easier to augment with relevant cognitive and design evaluations.&lt;br /&gt;
&lt;br /&gt;
= Background / Related Work =&lt;br /&gt;
&lt;br /&gt;
Each person should add the background related to their specific aims.&lt;br /&gt;
&lt;br /&gt;
* Steven Ellis - Cognitive models of HCI, including GOMS variations and ACT-R&lt;br /&gt;
* EJ - Design Guidelines&lt;br /&gt;
* Jon - Perception and Action&lt;br /&gt;
* Andrew - Multiple task environments&lt;br /&gt;
* Gideon - Cognition and dual systems&lt;br /&gt;
* Ian - Interface design process&lt;br /&gt;
* Trevor - User trace collection methods (especially any eye-tracking, EEG, ... you want to suggest using)&lt;br /&gt;
&lt;br /&gt;
= Specific Aims and Contributions (to be separated later) =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Specific Aims&#039;&#039;&#039;&lt;br /&gt;
* Incorporate interaction history mechanisms into a set of existing applications.&lt;br /&gt;
* Perform user-study evaluation of history-collection techniques.&lt;br /&gt;
* Distill a set of cognitive principles/models, and evaluate empirically?&lt;br /&gt;
* Build/buy sensing system to include pupil-tracking, muscle-activity monitoring, auditory recognition.&lt;br /&gt;
* Design techniques for manual/semi-automated/automated construction of &amp;lt;insert favorite cognitive model here&amp;gt; from interaction histories and sensing data.&lt;br /&gt;
* Design system for posterior analysis of interaction history w.r.t. &amp;lt;insert favorite cognitive model here&amp;gt;, evaluating critical path &amp;lt;or equivalent&amp;gt; trajectories.&lt;br /&gt;
* Design cognition-based techniques for detecting bottlenecks in critical paths, and offering optimized alternatives. &lt;br /&gt;
* Perform quantitative user-study evaluations, collect qualitative feedback from expert interface designers.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Contributions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Design-space analysis and quantitative evaluation of cognition-based techniques for assessing user interfaces. &lt;br /&gt;
* Design and quantitative evaluation of techniques for suggesting optimized interface-design changes. &lt;br /&gt;
* An extensible, multimodal software architecture for capturing user traces integrated with pupil-tracking data, auditory recognition, and muscle-activity monitoring. &lt;br /&gt;
* (there may be more here, like testing different cognitive models, generating a markup language to represent interfaces, maybe even a unique metric space for interface usability) &lt;br /&gt;
&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
See the [http://vrl.cs.brown.edu/wiki/images/b/b1/Flowchart2.pdf flowchart] for a visual overview of our aims.&lt;br /&gt;
&lt;br /&gt;
In order to use this framework, a designer will have to provide:&lt;br /&gt;
* Functional specification - what are the possible interactions between the user and the application. This can be thought of as method signatures, with a name (e.g., setVolume), direction (to user or from user) and a list of value types (boolean, number, text, video, ...) for each interaction.&lt;br /&gt;
* GUI specification - a mapping of interactions to interface elements (e.g., setVolume is mapped to the grey knob in the bottom left corner with clockwise turning increasing the input number).&lt;br /&gt;
* Functional user traces - sequences of representative ways in which the application is used. Instead of writing them, the designer could have users use the application with a trial interface and then use our methods to generalize the user traces beyond the specific interface (The second method is depicted in the diagram). As a form of pre-processing, the system also generates an interaction transition matrix which lists the probability of each type of interaction given the previous interaction.&lt;br /&gt;
* Utility function - this is a weighting of various performance metrics (time, cognitive load, fatigue, etc.), where the weighting expresses the importance of a particular dimension to the user. For example, a user at NASA probably cares more about interface accuracy than speed. By passing this information to our committee of experts, we can create interfaces that are tuned to maximize the utility of a particular user type.&lt;br /&gt;
&lt;br /&gt;
Each of the modules can use all of this information or a subset of it. Our approach stresses flexibility and the ability to give more meaningful feedback the more information is provided. After processing the information sent by the system of experts, the aggregator will output:&lt;br /&gt;
* An evaluation of the interface. Evaluations are expressed both in terms of the utility function components (i.e. time, fatigue, cognitive load, etc.), and in terms of the overall utility for this interface (as defined by the utility function). These evaluations are given in the form of an efficiency curve, where the utility received on each dimension can change as the user becomes more accustomed to the interface. &lt;br /&gt;
* Suggested improvements for the GUI are also output. These suggestions are meant to optimize the utility function that was input to the system. If a user values accuracy over time, interface suggestions will be made accordingly.&lt;br /&gt;
&lt;br /&gt;
== Collecting User Traces ==&lt;br /&gt;
* Owner: [[User:Trevor O&#039;Brien | Trevor O&#039;Brien]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Given an interface, our first step is to run users on the interface and log these user interactions. We want to log actions at a sufficiently low level so that a GOMS model can be generated from the data. When possible, we&#039;d also like to log data using additional sensing technologies, such as pupil-tracking, muscle-activity monitoring and auditory recognition; this information will help to analyze the explicit contributions of perception, cognition and motor skills with respect to user performance.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Generalizing User Traces ==&lt;br /&gt;
* Owner: [[User:Trevor O&#039;Brien | Trevor O&#039;Brien]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;The user traces that are collected are tied to a specific interface. In order to use them with different interfaces to the same application, they should be generalized to be based only on the functional description of the application and the user&#039;s goal hierarchy. This would abstract away from actions like accessing a menu.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;In addition to specific user traces, many modules could use a transition probability matrix based on interaction predictions.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Parallel Framework for Evaluation Modules ==&lt;br /&gt;
* Owner: [[User:Adam Darlow | Adam Darlow]], [[User:Eric Sodomka | Eric Sodomka]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This section will describe in more detail the inputs, outputs and architecture that were presented in the introduction.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Evaluation and Recommendation via Modules ==&lt;br /&gt;
* Owner: [[User:E J Kalafarski | E J Kalafarski]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This section describes the aggregator, which takes the output of multiple independent modules and aggregates the results to provide (1) an evaluation and (2) recommendations for the user interface. We should explain how the aggregator weights the output of different modules (this could be based on historical performance of each module, or perhaps based on E.J.&#039;s cognitive/HCI guidelines).&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Sample Modules ==&lt;br /&gt;
&lt;br /&gt;
=== CPM-GOMS ===&lt;br /&gt;
* Owners: [[User:Steven Ellis | Steven Ellis]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This module will provide interface evaluations and suggestions based on a CPM-GOMS model of cognition for the given interface. It will provide a quantitative, predictive, cognition-based parameterization of usability. From empirically collected data, user trajectories through the model (critical paths) will be examined, highlighting bottlenecks within the interface, and offering suggested alterations to the interface to induce more optimal user trajectories.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== HCI Guidelines ===&lt;br /&gt;
* Owner: [[User:E J Kalafarski | E J Kalafarski]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This section could include an example or two of established design guidelines that could easily be implemented as modules.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Fitts&#039;s Law ===&lt;br /&gt;
* Owner: [[User:Jon Ericson | Jon Ericson]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This module provides an estimate of the required time to complete various tasks that have been decomposed into formalized sequences of interactions with interface elements, and will provide evaluations and recommendations for optimizing the time required to complete those tasks using the interface.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1. A formal description of the interface and its elements (e.g. buttons).&lt;br /&gt;
&lt;br /&gt;
2. A formal description of a particular task and the possible paths through a subset of interface elements that permit the user to accomplish that task.&lt;br /&gt;
&lt;br /&gt;
3. The physical distances between interface elements along those paths.&lt;br /&gt;
&lt;br /&gt;
4. The width of those elements along the most likely axes of motion.&lt;br /&gt;
&lt;br /&gt;
5. Device (e.g. mouse) characteristics including start/stop time and the inherent speed limitations of the device.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Output&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The module will then use the Shannon formulation of Fitt&#039;s Law to compute the average time needed to complete the task along those paths.&lt;br /&gt;
&lt;br /&gt;
=== Affordances ===&lt;br /&gt;
* Owner: [[User:Jon Ericson | Jon Ericson]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This simple module will provide interface evaluations and recommendations based on a measure of the extent to which the user perceives the relevant affordances of the interface when performing a number of specified tasks.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inputs&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Formalized descriptions of...&lt;br /&gt;
&lt;br /&gt;
1. Interface elements&lt;br /&gt;
&lt;br /&gt;
2. Their associated actions&lt;br /&gt;
&lt;br /&gt;
3. The functions of those actions&lt;br /&gt;
&lt;br /&gt;
4. A particular task&lt;br /&gt;
&lt;br /&gt;
5. User traces for that task.  &lt;br /&gt;
&lt;br /&gt;
Inputs (1-4) are then used to generate a &amp;quot;user-independent&amp;quot; space of possible functions that the interface is capable of performing with respect to a given task -- what the interface &amp;quot;affords&amp;quot; the user.  From this set of possible interactions, our model will then determine the subset of optimal paths for performing a particular task.  The user trace (5) is then used to determine what functions actually were performed in the course of a given task of interest and this information is then compared to the optimal path data to determine the extent to which affordances of the interface are present but not perceived.  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Output&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The output of this module is a simple ratio of (affordances perceived) / [(relevant affordances present) * (time to complete task)] which provides a quantitative measure of the extent to which the interface is &amp;quot;natural&amp;quot; to use for a particular task.&lt;br /&gt;
&lt;br /&gt;
=== Interruptions ===&lt;br /&gt;
* Owner: [[User:Andrew Bragdon | Andrew Bragdon]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;While most usability testing focuses on low-level task performance, there is also previous work suggesting that users also work at a higher, working sphere level. This module attempts to evaluate a given interface with respect to these higher-level considerations, such as task switching.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Working Memory Load ===&lt;br /&gt;
* Owner: [[User:Gideon Goldin | Gideon Goldin]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This module measures how much information the user needs to retain in memory while interacting with the interface and makes suggestions for improvements.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Automaticity of Interaction ===&lt;br /&gt;
* Owner: [[User:Gideon Goldin | Gideon Goldin]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Measures how easily the interaction with the interface becomes automatic with experience and makes suggestions for improvements.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Integration into the Design Process ==&lt;br /&gt;
* Owner: [[User:Ian Spector | Ian Spector]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This section outlines the process of designing an HCI interface and at what stages our proposal fits in and how.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Preliminary Results =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Each person should come up with a single paragraph describing fictional (or not) preliminary results pertaining to their owned specific aims and contributions.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= [Criticisms] =&lt;br /&gt;
* Owner: [[User:Andrew Bragdon | Andrew Bragdon]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Any criticisms or questions we have regarding the proposal can go here.&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Trevor O&#039;Brien</name></author>
	</entry>
	<entry>
		<id>http://vrl.cs.brown.edu/wiki/index.php?title=CS295J/Research_proposal_(draft_2)&amp;diff=3116</id>
		<title>CS295J/Research proposal (draft 2)</title>
		<link rel="alternate" type="text/html" href="http://vrl.cs.brown.edu/wiki/index.php?title=CS295J/Research_proposal_(draft_2)&amp;diff=3116"/>
		<updated>2009-04-23T21:38:16Z</updated>

		<summary type="html">&lt;p&gt;Trevor O&amp;#039;Brien: /* Specific Aims and Contributions (to be separated later) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
* Owners: [[User:Adam Darlow | Adam Darlow]], [[User:Eric Sodomka | Eric Sodomka]], [[User: Trevor O&#039;Brien | Trevor]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Propose:&#039;&#039;&#039; The design, application and evaluation of a novel, cognition-based, computational framework for assessing interface design and providing automated suggestions to optimize usability.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Evaluation Methodology:&#039;&#039;&#039;  Our techniques will be evaluated quantitatively through a series of user-study trials, as well as qualitatively by a team of expert interface designers. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Contributions and Significance:&#039;&#039;&#039;  We expect this work to make the following contributions:  1. design-space analysis and quantitative evaluation of cognition-based techniques for assessing user interfaces.  2.  design and quantitative evaluation of techniques for suggesting optimized interface-design changes.  3.  an extensible, multimodal software architecture for capturing user traces integrated with pupil-tracking data, auditory recognition, and muscle-activity monitoring.  (there may be more here, like testing different cognitive models, generating a markup language to represent interfaces, maybe even a unique metric space for interface usability)&lt;br /&gt;
&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
We propose a framework for interface evaluation and recommendation that integrates behavioral models and design guidelines from both cognitive science and HCI. Our framework behaves like a committee of specialized experts, where each expert provides its own assessment of the interface, given its particular knowledge of HCI or cognitive science. For example, an expert may provide an evaluation based on the GOMS method, Fitts&#039;s law, Maeda&#039;s design principles, or cognitive models of learning and memory. An aggregator collects all of these assessments and weights the opinions of each expert, and outputs to the developer a merged evaluation score and a weighted set of recommendations.&lt;br /&gt;
&lt;br /&gt;
Systematic methods of estimating human performance with computer interfaces are used only sparsely despite their obvious benefits, the reason being the overhead involved in implementing them. In order to test an interface, both manual coding systems like the GOMS variations and user simulations like those based on ACT-R/PM and EPIC require detailed pseudo-code descriptions of the user workflow with the application interface. Any change to the interface then requires extensive changes to the pseudo-code, a major problem because of the trial-and-error nature of interface design. Updating the models themselves is even more complicated. Even an expert in CPM-GOMS, for example, can&#039;t necessarily adapt it to take into account results from new cognitive research.&lt;br /&gt;
&lt;br /&gt;
Our proposal makes automatic interface evaluation easier to use in several ways. First of all, we propose to divide the input to the system into three separate parts, functionality, user traces and interface. By separating the functionality from the interface, even radical interface changes will require updating only that part of the input. The user traces are also defined over the functionality so that they too translate across different interfaces. Second, the parallel modular architecture allows for a lower &amp;quot;entry cost&amp;quot; for using the tool. The system includes a broad array of evaluation modules some of which are very simple and some more complex. The simpler modules use only a subset of the input that a system like GOMS or ACT-R would require. This means that while more input will still lead to better output, interface designers can get minimal evaluations with only minimal information. For example, a visual search module may not require any functionality or user traces in order to determine whether all interface elements are distinct enough to be easy to find. Finally, a parallel modular architecture is much easier to augment with relevant cognitive and design evaluations.&lt;br /&gt;
&lt;br /&gt;
= Background / Related Work =&lt;br /&gt;
&lt;br /&gt;
Each person should add the background related to their specific aims.&lt;br /&gt;
&lt;br /&gt;
* Steven Ellis - Cognitive models of HCI, including GOMS variations and ACT-R&lt;br /&gt;
* EJ - Design Guidelines&lt;br /&gt;
* Jon - Perception and Action&lt;br /&gt;
* Andrew - Multiple task environments&lt;br /&gt;
* Gideon - Cognition and dual systems&lt;br /&gt;
* Ian - Interface design process&lt;br /&gt;
* Trevor - User trace collection methods (especially any eye-tracking, EEG, ... you want to suggest using)&lt;br /&gt;
&lt;br /&gt;
= Specific Aims and Contributions (to be separated later) =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Specific Aims&#039;&#039;&#039;&lt;br /&gt;
* Incorporate interaction history mechanisms into a set of existing applications.&lt;br /&gt;
* Perform user-study evaluation of history-collection techniques.&lt;br /&gt;
* Distill a set of cognitive principles/models, and evaluate empirically?&lt;br /&gt;
* Build/buy sensing system to include pupil-tracking, muscle-activity monitoring, auditory recognition.&lt;br /&gt;
* Design techniques for manual/semi-automated/automated construction of &amp;lt;insert favorite cognitive model here&amp;gt; from interaction histories and sensing data.&lt;br /&gt;
* Design system for posterior analysis of interaction history w.r.t. &amp;lt;insert favorite cognitive model here&amp;gt;, evaluating critical path &amp;lt;or equivalent&amp;gt; trajectories.&lt;br /&gt;
* Design cognition-based techniques for detecting bottlenecks in critical paths, and offering optimized alternatives. &lt;br /&gt;
* Perform quantitative user-study evaluations, collect qualitative feedback from expert interface designers.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Contributions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
See the [http://vrl.cs.brown.edu/wiki/images/b/b1/Flowchart2.pdf flowchart] for a visual overview of our aims.&lt;br /&gt;
&lt;br /&gt;
In order to use this framework, a designer will have to provide:&lt;br /&gt;
* Functional specification - what are the possible interactions between the user and the application. This can be thought of as method signatures, with a name (e.g., setVolume), direction (to user or from user) and a list of value types (boolean, number, text, video, ...) for each interaction.&lt;br /&gt;
* GUI specification - a mapping of interactions to interface elements (e.g., setVolume is mapped to the grey knob in the bottom left corner with clockwise turning increasing the input number).&lt;br /&gt;
* Functional user traces - sequences of representative ways in which the application is used. Instead of writing them, the designer could have users use the application with a trial interface and then use our methods to generalize the user traces beyond the specific interface (The second method is depicted in the diagram). As a form of pre-processing, the system also generates an interaction transition matrix which lists the probability of each type of interaction given the previous interaction.&lt;br /&gt;
* Utility function - this is a weighting of various performance metrics (time, cognitive load, fatigue, etc.), where the weighting expresses the importance of a particular dimension to the user. For example, a user at NASA probably cares more about interface accuracy than speed. By passing this information to our committee of experts, we can create interfaces that are tuned to maximize the utility of a particular user type.&lt;br /&gt;
&lt;br /&gt;
Each of the modules can use all of this information or a subset of it. Our approach stresses flexibility and the ability to give more meaningful feedback the more information is provided. After processing the information sent by the system of experts, the aggregator will output:&lt;br /&gt;
* An evaluation of the interface. Evaluations are expressed both in terms of the utility function components (i.e. time, fatigue, cognitive load, etc.), and in terms of the overall utility for this interface (as defined by the utility function). These evaluations are given in the form of an efficiency curve, where the utility received on each dimension can change as the user becomes more accustomed to the interface. &lt;br /&gt;
* Suggested improvements for the GUI are also output. These suggestions are meant to optimize the utility function that was input to the system. If a user values accuracy over time, interface suggestions will be made accordingly.&lt;br /&gt;
&lt;br /&gt;
== Collecting User Traces ==&lt;br /&gt;
* Owner: [[User:Trevor O&#039;Brien | Trevor O&#039;Brien]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Given an interface, our first step is to run users on the interface and log these user interactions. We want to log actions at a sufficiently low level so that a GOMS model can be generated from the data. When possible, we&#039;d also like to log data using additional sensing technologies, such as pupil-tracking, muscle-activity monitoring and auditory recognition; this information will help to analyze the explicit contributions of perception, cognition and motor skills with respect to user performance.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Generalizing User Traces ==&lt;br /&gt;
* Owner: [[User:Trevor O&#039;Brien | Trevor O&#039;Brien]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;The user traces that are collected are tied to a specific interface. In order to use them with different interfaces to the same application, they should be generalized to be based only on the functional description of the application and the user&#039;s goal hierarchy. This would abstract away from actions like accessing a menu.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;In addition to specific user traces, many modules could use a transition probability matrix based on interaction predictions.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Parallel Framework for Evaluation Modules ==&lt;br /&gt;
* Owner: [[User:Adam Darlow | Adam Darlow]], [[User:Eric Sodomka | Eric Sodomka]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This section will describe in more detail the inputs, outputs and architecture that were presented in the introduction.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Evaluation and Recommendation via Modules ==&lt;br /&gt;
* Owner: [[User:E J Kalafarski | E J Kalafarski]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This section describes the aggregator, which takes the output of multiple independent modules and aggregates the results to provide (1) an evaluation and (2) recommendations for the user interface. We should explain how the aggregator weights the output of different modules (this could be based on historical performance of each module, or perhaps based on E.J.&#039;s cognitive/HCI guidelines).&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Sample Modules ==&lt;br /&gt;
&lt;br /&gt;
=== CPM-GOMS ===&lt;br /&gt;
* Owners: [[User:Steven Ellis | Steven Ellis]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This module will provide interface evaluations and suggestions based on a CPM-GOMS model of cognition for the given interface. It will provide a quantitative, predictive, cognition-based parameterization of usability. From empirically collected data, user trajectories through the model (critical paths) will be examined, highlighting bottlenecks within the interface, and offering suggested alterations to the interface to induce more optimal user trajectories.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== HCI Guidelines ===&lt;br /&gt;
* Owner: [[User:E J Kalafarski | E J Kalafarski]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This section could include an example or two of established design guidelines that could easily be implemented as modules.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Fitts&#039;s Law ===&lt;br /&gt;
* Owner: [[User:Jon Ericson | Jon Ericson]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This module provides an estimate of the required time to complete various tasks that have been decomposed into formalized sequences of interactions with interface elements, and will provide evaluations and recommendations for optimizing the time required to complete those tasks using the interface.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1. A formal description of the interface and its elements (e.g. buttons).&lt;br /&gt;
&lt;br /&gt;
2. A formal description of a particular task and the possible paths through a subset of interface elements that permit the user to accomplish that task.&lt;br /&gt;
&lt;br /&gt;
3. The physical distances between interface elements along those paths.&lt;br /&gt;
&lt;br /&gt;
4. The width of those elements along the most likely axes of motion.&lt;br /&gt;
&lt;br /&gt;
5. Device (e.g. mouse) characteristics including start/stop time and the inherent speed limitations of the device.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Output&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The module will then use the Shannon formulation of Fitt&#039;s Law to compute the average time needed to complete the task along those paths.&lt;br /&gt;
&lt;br /&gt;
=== Affordances ===&lt;br /&gt;
* Owner: [[User:Jon Ericson | Jon Ericson]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This simple module will provide interface evaluations and recommendations based on a measure of the extent to which the user perceives the relevant affordances of the interface when performing a number of specified tasks.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inputs&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Formalized descriptions of...&lt;br /&gt;
&lt;br /&gt;
1. Interface elements&lt;br /&gt;
&lt;br /&gt;
2. Their associated actions&lt;br /&gt;
&lt;br /&gt;
3. The functions of those actions&lt;br /&gt;
&lt;br /&gt;
4. A particular task&lt;br /&gt;
&lt;br /&gt;
5. User traces for that task.  &lt;br /&gt;
&lt;br /&gt;
Inputs (1-4) are then used to generate a &amp;quot;user-independent&amp;quot; space of possible functions that the interface is capable of performing with respect to a given task -- what the interface &amp;quot;affords&amp;quot; the user.  From this set of possible interactions, our model will then determine the subset of optimal paths for performing a particular task.  The user trace (5) is then used to determine what functions actually were performed in the course of a given task of interest and this information is then compared to the optimal path data to determine the extent to which affordances of the interface are present but not perceived.  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Output&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The output of this module is a simple ratio of (affordances perceived) / [(relevant affordances present) * (time to complete task)] which provides a quantitative measure of the extent to which the interface is &amp;quot;natural&amp;quot; to use for a particular task.&lt;br /&gt;
&lt;br /&gt;
=== Interruptions ===&lt;br /&gt;
* Owner: [[User:Andrew Bragdon | Andrew Bragdon]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;While most usability testing focuses on low-level task performance, there is also previous work suggesting that users also work at a higher, working sphere level. This module attempts to evaluate a given interface with respect to these higher-level considerations, such as task switching.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Working Memory Load ===&lt;br /&gt;
* Owner: [[User:Gideon Goldin | Gideon Goldin]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This module measures how much information the user needs to retain in memory while interacting with the interface and makes suggestions for improvements.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Automaticity of Interaction ===&lt;br /&gt;
* Owner: [[User:Gideon Goldin | Gideon Goldin]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Measures how easily the interaction with the interface becomes automatic with experience and makes suggestions for improvements.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Integration into the Design Process ==&lt;br /&gt;
* Owner: [[User:Ian Spector | Ian Spector]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This section outlines the process of designing an HCI interface and at what stages our proposal fits in and how.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Preliminary Results =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Each person should come up with a single paragraph describing fictional (or not) preliminary results pertaining to their owned specific aims and contributions.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= [Criticisms] =&lt;br /&gt;
* Owner: [[User:Andrew Bragdon | Andrew Bragdon]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Any criticisms or questions we have regarding the proposal can go here.&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Trevor O&#039;Brien</name></author>
	</entry>
	<entry>
		<id>http://vrl.cs.brown.edu/wiki/index.php?title=CS295J/Research_proposal_(draft_2)&amp;diff=3115</id>
		<title>CS295J/Research proposal (draft 2)</title>
		<link rel="alternate" type="text/html" href="http://vrl.cs.brown.edu/wiki/index.php?title=CS295J/Research_proposal_(draft_2)&amp;diff=3115"/>
		<updated>2009-04-23T21:31:33Z</updated>

		<summary type="html">&lt;p&gt;Trevor O&amp;#039;Brien: /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
* Owners: [[User:Adam Darlow | Adam Darlow]], [[User:Eric Sodomka | Eric Sodomka]], [[User: Trevor O&#039;Brien | Trevor]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Propose:&#039;&#039;&#039; The design, application and evaluation of a novel, cognition-based, computational framework for assessing interface design and providing automated suggestions to optimize usability.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Evaluation Methodology:&#039;&#039;&#039;  Our techniques will be evaluated quantitatively through a series of user-study trials, as well as qualitatively by a team of expert interface designers. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Contributions and Significance:&#039;&#039;&#039;  We expect this work to make the following contributions:  1. design-space analysis and quantitative evaluation of cognition-based techniques for assessing user interfaces.  2.  design and quantitative evaluation of techniques for suggesting optimized interface-design changes.  3.  an extensible, multimodal software architecture for capturing user traces integrated with pupil-tracking data, auditory recognition, and muscle-activity monitoring.  (there may be more here, like testing different cognitive models, generating a markup language to represent interfaces, maybe even a unique metric space for interface usability)&lt;br /&gt;
&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
We propose a framework for interface evaluation and recommendation that integrates behavioral models and design guidelines from both cognitive science and HCI. Our framework behaves like a committee of specialized experts, where each expert provides its own assessment of the interface, given its particular knowledge of HCI or cognitive science. For example, an expert may provide an evaluation based on the GOMS method, Fitts&#039;s law, Maeda&#039;s design principles, or cognitive models of learning and memory. An aggregator collects all of these assessments and weights the opinions of each expert, and outputs to the developer a merged evaluation score and a weighted set of recommendations.&lt;br /&gt;
&lt;br /&gt;
Systematic methods of estimating human performance with computer interfaces are used only sparsely despite their obvious benefits, the reason being the overhead involved in implementing them. In order to test an interface, both manual coding systems like the GOMS variations and user simulations like those based on ACT-R/PM and EPIC require detailed pseudo-code descriptions of the user workflow with the application interface. Any change to the interface then requires extensive changes to the pseudo-code, a major problem because of the trial-and-error nature of interface design. Updating the models themselves is even more complicated. Even an expert in CPM-GOMS, for example, can&#039;t necessarily adapt it to take into account results from new cognitive research.&lt;br /&gt;
&lt;br /&gt;
Our proposal makes automatic interface evaluation easier to use in several ways. First of all, we propose to divide the input to the system into three separate parts, functionality, user traces and interface. By separating the functionality from the interface, even radical interface changes will require updating only that part of the input. The user traces are also defined over the functionality so that they too translate across different interfaces. Second, the parallel modular architecture allows for a lower &amp;quot;entry cost&amp;quot; for using the tool. The system includes a broad array of evaluation modules some of which are very simple and some more complex. The simpler modules use only a subset of the input that a system like GOMS or ACT-R would require. This means that while more input will still lead to better output, interface designers can get minimal evaluations with only minimal information. For example, a visual search module may not require any functionality or user traces in order to determine whether all interface elements are distinct enough to be easy to find. Finally, a parallel modular architecture is much easier to augment with relevant cognitive and design evaluations.&lt;br /&gt;
&lt;br /&gt;
= Background / Related Work =&lt;br /&gt;
&lt;br /&gt;
Each person should add the background related to their specific aims.&lt;br /&gt;
&lt;br /&gt;
* Steven Ellis - Cognitive models of HCI, including GOMS variations and ACT-R&lt;br /&gt;
* EJ - Design Guidelines&lt;br /&gt;
* Jon - Perception and Action&lt;br /&gt;
* Andrew - Multiple task environments&lt;br /&gt;
* Gideon - Cognition and dual systems&lt;br /&gt;
* Ian - Interface design process&lt;br /&gt;
* Trevor - User trace collection methods (especially any eye-tracking, EEG, ... you want to suggest using)&lt;br /&gt;
&lt;br /&gt;
= Specific Aims and Contributions (to be separated later) =&lt;br /&gt;
See the [http://vrl.cs.brown.edu/wiki/images/b/b1/Flowchart2.pdf flowchart] for a visual overview of our aims.&lt;br /&gt;
&lt;br /&gt;
In order to use this framework, a designer will have to provide:&lt;br /&gt;
* Functional specification - what are the possible interactions between the user and the application. This can be thought of as method signatures, with a name (e.g., setVolume), direction (to user or from user) and a list of value types (boolean, number, text, video, ...) for each interaction.&lt;br /&gt;
* GUI specification - a mapping of interactions to interface elements (e.g., setVolume is mapped to the grey knob in the bottom left corner with clockwise turning increasing the input number).&lt;br /&gt;
* Functional user traces - sequences of representative ways in which the application is used. Instead of writing them, the designer could have users use the application with a trial interface and then use our methods to generalize the user traces beyond the specific interface (The second method is depicted in the diagram). As a form of pre-processing, the system also generates an interaction transition matrix which lists the probability of each type of interaction given the previous interaction.&lt;br /&gt;
* Utility function - this is a weighting of various performance metrics (time, cognitive load, fatigue, etc.), where the weighting expresses the importance of a particular dimension to the user. For example, a user at NASA probably cares more about interface accuracy than speed. By passing this information to our committee of experts, we can create interfaces that are tuned to maximize the utility of a particular user type.&lt;br /&gt;
&lt;br /&gt;
Each of the modules can use all of this information or a subset of it. Our approach stresses flexibility and the ability to give more meaningful feedback the more information is provided. After processing the information sent by the system of experts, the aggregator will output:&lt;br /&gt;
* An evaluation of the interface. Evaluations are expressed both in terms of the utility function components (i.e. time, fatigue, cognitive load, etc.), and in terms of the overall utility for this interface (as defined by the utility function). These evaluations are given in the form of an efficiency curve, where the utility received on each dimension can change as the user becomes more accustomed to the interface. &lt;br /&gt;
* Suggested improvements for the GUI are also output. These suggestions are meant to optimize the utility function that was input to the system. If a user values accuracy over time, interface suggestions will be made accordingly.&lt;br /&gt;
&lt;br /&gt;
== Collecting User Traces ==&lt;br /&gt;
* Owner: [[User:Trevor O&#039;Brien | Trevor O&#039;Brien]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Given an interface, our first step is to run users on the interface and log these user interactions. We want to log actions at a sufficiently low level so that a GOMS model can be generated from the data. When possible, we&#039;d also like to log data using additional sensing technologies, such as pupil-tracking, muscle-activity monitoring and auditory recognition; this information will help to analyze the explicit contributions of perception, cognition and motor skills with respect to user performance.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Generalizing User Traces ==&lt;br /&gt;
* Owner: [[User:Trevor O&#039;Brien | Trevor O&#039;Brien]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;The user traces that are collected are tied to a specific interface. In order to use them with different interfaces to the same application, they should be generalized to be based only on the functional description of the application and the user&#039;s goal hierarchy. This would abstract away from actions like accessing a menu.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;In addition to specific user traces, many modules could use a transition probability matrix based on interaction predictions.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Parallel Framework for Evaluation Modules ==&lt;br /&gt;
* Owner: [[User:Adam Darlow | Adam Darlow]], [[User:Eric Sodomka | Eric Sodomka]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This section will describe in more detail the inputs, outputs and architecture that were presented in the introduction.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Evaluation and Recommendation via Modules ==&lt;br /&gt;
* Owner: [[User:E J Kalafarski | E J Kalafarski]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This section describes the aggregator, which takes the output of multiple independent modules and aggregates the results to provide (1) an evaluation and (2) recommendations for the user interface. We should explain how the aggregator weights the output of different modules (this could be based on historical performance of each module, or perhaps based on E.J.&#039;s cognitive/HCI guidelines).&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Sample Modules ==&lt;br /&gt;
&lt;br /&gt;
=== CPM-GOMS ===&lt;br /&gt;
* Owners: [[User:Steven Ellis | Steven Ellis]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This module will provide interface evaluations and suggestions based on a CPM-GOMS model of cognition for the given interface. It will provide a quantitative, predictive, cognition-based parameterization of usability. From empirically collected data, user trajectories through the model (critical paths) will be examined, highlighting bottlenecks within the interface, and offering suggested alterations to the interface to induce more optimal user trajectories.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== HCI Guidelines ===&lt;br /&gt;
* Owner: [[User:E J Kalafarski | E J Kalafarski]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This section could include an example or two of established design guidelines that could easily be implemented as modules.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Fitts&#039;s Law ===&lt;br /&gt;
* Owner: [[User:Jon Ericson | Jon Ericson]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This module provides an estimate of the required time to complete various tasks that have been decomposed into formalized sequences of interactions with interface elements, and will provide evaluations and recommendations for optimizing the time required to complete those tasks using the interface.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1. A formal description of the interface and its elements (e.g. buttons).&lt;br /&gt;
&lt;br /&gt;
2. A formal description of a particular task and the possible paths through a subset of interface elements that permit the user to accomplish that task.&lt;br /&gt;
&lt;br /&gt;
3. The physical distances between interface elements along those paths.&lt;br /&gt;
&lt;br /&gt;
4. The width of those elements along the most likely axes of motion.&lt;br /&gt;
&lt;br /&gt;
5. Device (e.g. mouse) characteristics including start/stop time and the inherent speed limitations of the device.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Output&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The module will then use the Shannon formulation of Fitt&#039;s Law to compute the average time needed to complete the task along those paths.&lt;br /&gt;
&lt;br /&gt;
=== Affordances ===&lt;br /&gt;
* Owner: [[User:Jon Ericson | Jon Ericson]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This simple module will provide interface evaluations and recommendations based on a measure of the extent to which the user perceives the relevant affordances of the interface when performing a number of specified tasks.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inputs&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Formalized descriptions of...&lt;br /&gt;
&lt;br /&gt;
1. Interface elements&lt;br /&gt;
&lt;br /&gt;
2. Their associated actions&lt;br /&gt;
&lt;br /&gt;
3. The functions of those actions&lt;br /&gt;
&lt;br /&gt;
4. A particular task&lt;br /&gt;
&lt;br /&gt;
5. User traces for that task.  &lt;br /&gt;
&lt;br /&gt;
Inputs (1-4) are then used to generate a &amp;quot;user-independent&amp;quot; space of possible functions that the interface is capable of performing with respect to a given task -- what the interface &amp;quot;affords&amp;quot; the user.  From this set of possible interactions, our model will then determine the subset of optimal paths for performing a particular task.  The user trace (5) is then used to determine what functions actually were performed in the course of a given task of interest and this information is then compared to the optimal path data to determine the extent to which affordances of the interface are present but not perceived.  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Output&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The output of this module is a simple ratio of (affordances perceived) / [(relevant affordances present) * (time to complete task)] which provides a quantitative measure of the extent to which the interface is &amp;quot;natural&amp;quot; to use for a particular task.&lt;br /&gt;
&lt;br /&gt;
=== Interruptions ===&lt;br /&gt;
* Owner: [[User:Andrew Bragdon | Andrew Bragdon]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;While most usability testing focuses on low-level task performance, there is also previous work suggesting that users also work at a higher, working sphere level. This module attempts to evaluate a given interface with respect to these higher-level considerations, such as task switching.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Working Memory Load ===&lt;br /&gt;
* Owner: [[User:Gideon Goldin | Gideon Goldin]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This module measures how much information the user needs to retain in memory while interacting with the interface and makes suggestions for improvements.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Automaticity of Interaction ===&lt;br /&gt;
* Owner: [[User:Gideon Goldin | Gideon Goldin]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Measures how easily the interaction with the interface becomes automatic with experience and makes suggestions for improvements.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Integration into the Design Process ==&lt;br /&gt;
* Owner: [[User:Ian Spector | Ian Spector]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This section outlines the process of designing an HCI interface and at what stages our proposal fits in and how.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Preliminary Results =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Each person should come up with a single paragraph describing fictional (or not) preliminary results pertaining to their owned specific aims and contributions.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= [Criticisms] =&lt;br /&gt;
* Owner: [[User:Andrew Bragdon | Andrew Bragdon]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Any criticisms or questions we have regarding the proposal can go here.&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Trevor O&#039;Brien</name></author>
	</entry>
	<entry>
		<id>http://vrl.cs.brown.edu/wiki/index.php?title=CS295J/Contributions_for_class_12&amp;diff=3114</id>
		<title>CS295J/Contributions for class 12</title>
		<link rel="alternate" type="text/html" href="http://vrl.cs.brown.edu/wiki/index.php?title=CS295J/Contributions_for_class_12&amp;diff=3114"/>
		<updated>2009-04-23T20:31:32Z</updated>

		<summary type="html">&lt;p&gt;Trevor O&amp;#039;Brien: /* Contributions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== A predictive, fully-integrated model of user workflow which encompasses low-level tasks, working spheres, communication chains, interruptions and multi-tasking.==&lt;br /&gt;
Owner: Andrew Bragdon&lt;br /&gt;
#Traditionally, software design and usability testing is focused on low-level task performance.  However, prior work (Gonzales, et al.) provides strong empirical evidence that users also work at a higher, &#039;&#039;working sphere&#039;&#039; level.  Su, et al., develops a predictive model of task switching based on communication chains.  Our model will specifically identify and predict key aspects of higher level information work behaviors, such as task switching.  We will conduct initial exploratory studies to test specific instances of this high-level hypothesis.  We will then use the refined model to identify specific predictions for the outcome of a formal, ecologically valid study involving a complex, non-trivial application.&lt;br /&gt;
# Impact: Current information work systems are almost always designed around the individual task, and because they do not take into account the larger workflow context, these systems arguably do not properly model the way users work. By establishing a predictive model for user workflow based on individual task items, larger goal-oriented working spheres, multi-tasking behavior, and communication chains, developers will be able to design computing systems that properly model users and thus significantly increase worker productivity in the United States and around the world.&lt;br /&gt;
# 3-week Feasibility Study:  To ascertain the feasibility of this project we will conduct an initial pilot test to investigate the core idea: a predictive model of user workflow.  We will spend 1 week studying the real workflow of several people through job shadowing.  We will then create two systems designed to help a user accomplish some simple information work task.  One system will be designed to take larger workflow into account (experimental group), while one will not (control group).  In a synthetic environment, participants will perform a controlled series of tasks while receiving interruptions at controlled times.  If the two groups perform roughly the same, then we will need to reassess this avenue of research.  However, if the two groups perform differrently then our pilot test will have lent support to our approach and core hypothesis.&lt;br /&gt;
# Risks/Costs: Risk will play an important factor in this research, and thus a core goal of our research agenda will be to manage this risk.  The most effective way to do this will be to compartmentalize the risk by conducting empirical investigations - which will form the basis for the model - into the separate areas: low-level tasks, working spheres, communication chains, interruptions and multi-tasking in parallel.  While one experiment may become bogged down in details, the others will be able to advance sufficiently to contribute to a strong core model, even if one or two facets encounter setbacks during the course of the research agenda.  The primary cost drivers will be the preliminary empirical evaluations, the final system implementation, and the final experiments which will be designed to support the original hypothesis.  The cost will span student support, both Ph.D. and Master&#039;s students, as well as full-time research staff.  Projected cost: $1.5 million over three years.&lt;br /&gt;
&lt;br /&gt;
== A mixed-initiative system for interface design == &lt;br /&gt;
Owner: Eric&lt;br /&gt;
&lt;br /&gt;
=== Summary ===&lt;br /&gt;
Note: click here for [http://vrl.cs.brown.edu/wiki/images/b/b4/Flowchart.pdf flowchart].&lt;br /&gt;
&lt;br /&gt;
We propose a framework for interface evaluation and recommendation that integrates behavioral models and design guidelines from both cognitive science and HCI. Our framework behaves like a committee of specialized experts, where each expert provides its own assessment of the interface, given its particular knowledge of HCI or cognitive science. For example, an expert may provide an evaluation based on the GOMS method, Fitts&#039;s law, Maeda&#039;s design principles, or cognitive models of learning and memory. An aggregator collects all of these assessments and weights the opinions of each expert based on past accuracy, and outputs to the developer a merged evaluation score and a weighted set of recommendations.&lt;br /&gt;
&lt;br /&gt;
Different users have different abilities and interface preferences. For example, a user at NASA probably cares more about interface accuracy than speed. By passing this information to our committee of experts, we can create interfaces that are tuned to maximize the utility of a particular user type.&lt;br /&gt;
&lt;br /&gt;
We evaluate our framework through a series of user studies. Interfaces passed to our committee of experts receive evaluation scores on a number of different dimensions, such as time, accuracy, and ease of use for novices versus experts. We can compare these predicted scores to the actual scores observed in user studies to evaluate performance. The aggregator can retroactively weight the experts&#039; opinions to determine which weighting would have given the best predictions of user behavior for the given interface, and observe whether that weighting generalizes to other interface evaluations.&lt;br /&gt;
&lt;br /&gt;
==== Inputs ====&lt;br /&gt;
* The task the user is trying to accomplish&lt;br /&gt;
* The GUI he/she is using to perform this task&lt;br /&gt;
* The utility a user gets for values of different performance metrics (time, cognitive load, fatigue, etc.)&lt;br /&gt;
* The predicted and/or actual trace of a user using this GUI&lt;br /&gt;
&lt;br /&gt;
==== Outputs ====&lt;br /&gt;
* An evaluation of the GUI, in terms of the individual metric values (i.e. time, cognitive load, etc.), and the overall utility for this as expressed by the utility function.&lt;br /&gt;
* Suggested improvements for the GUI, in two forms:&lt;br /&gt;
** Immediate transformations that can be automatically applied to the GUI&lt;br /&gt;
** Higher level suggestions/guidelines that would have to be made by a developer&lt;br /&gt;
&lt;br /&gt;
=== Contributions ===&lt;br /&gt;
* The creation of a language for &#039;&#039;abstractly representing user interfaces&#039;&#039; in terms of the layout of graphical components and the functional relationships between these components.&lt;br /&gt;
* A system for &#039;&#039;generating interaction histories&#039;&#039; within user interfaces to facilitate individual and collaborative scientific discovery, and to enable researchers to more easily document and analyze user behavior.&lt;br /&gt;
* A system that takes user traces and creates a GOMS model that decomposes user actions  into various cognitive, perceptual, and motor control tasks. &lt;br /&gt;
* The development of other evaluation methods using various cognitive/HCI models and guidelines.&lt;br /&gt;
* A design tool that can provide a designer with recommendations for interface improvements. These recommendations can be made for a specific type of user or for the average user, as expressed by a utility function.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== A Unified Model of Cognitive Perception and Processing in HCI ==&lt;br /&gt;
Steven&lt;br /&gt;
&lt;br /&gt;
*We plan to develop a unified model of the conscious and subconscious mental processes which direct human behavior in interaction with digital interfaces.  We will draw upon existing theoretical conceptions of these processes, including distributed cognition, activity theory, etc.  This model will be empirically validated in a manner similar to that used in assessing interface efficiency via CPM-GOMS.&lt;br /&gt;
&lt;br /&gt;
*Impact: This contribution will provide a standard model of mental processes upon which effective tools for interface evaluation can be built and by which they can be justified.  Such a model would eliminate the need for costly wide-ranging testing of new interface suggestions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== A Quantitative, Cognition-Based Framework for Analyzing and Predicting User Performance ==&lt;br /&gt;
Owner:  [[Trevor|Trevor O&#039;Brien]]&lt;br /&gt;
&lt;br /&gt;
=== Summary ===&lt;br /&gt;
&lt;br /&gt;
Established guidelines for designing human computer interfaces are based on experience, intuition and introspection. Because there is no integrated theoretical foundation, many rule-sets have emerged despite the absence of comparative evaluations. We propose to develop a theoretical foundation for interface design, drawing on recent advances in cognitive science – the study of how people think, perceive and interact with the world.  We will distill a broad range of principles and computational models of cognition that are relevant to interface design and use them to compare and unify existing guidelines. To validate our theoretical foundation, we will use our findings to develop a quantitative mechanism for assessing interface designs, identifying interface elements that are detrimental to user performance, and suggesting effective alternatives. Results from this system will be explored over a set of case studies, and the quantitative assessments output by this system will be compared to actual user performance.&lt;br /&gt;
&lt;br /&gt;
Within this framework, we will introduce novel techniques for collecting and filtering user interaction histories with respect to user goals.  In addition, we propose to integrate data from multiple sensing technologies -- including pupil-tracking, muscle-activity monitoring and auditory recognition -- with these interaction histories to analyze the explicit contributions of perception, cognition and motor skills with respect to user performance.  This data will be used to define a CPM-GOMS model of cognition for a given interface, providing a quantitative, predictive, cognition-based parameterization of usability.  From empirically collected data, user trajectories through the model (critical paths) will be examined with respect to the cognitive principles obtained from our theoretical findings, highlighting bottlenecks within the interface, and offering suggested alterations to the interface to induce more optimal user trajectories. &lt;br /&gt;
&lt;br /&gt;
=== Contributions ===&lt;br /&gt;
&lt;br /&gt;
* Design and user-study evaluation of novel techniques for collecting and filtering user traces with respect to user goals.&lt;br /&gt;
* Extensible, low-cost architecture for integrating pupil-tracking, muscle-activity monitoring, and auditory recognition with user traces in existing applications.&lt;br /&gt;
* System for isolating cognitive, perceptual, and motor tasks from an interface design to generate CPM_GOMS models for analysis.&lt;br /&gt;
* Design and quantitative evaluation of semi-automated techniques for extracting critical paths from an existing CPM_GOMS model.&lt;br /&gt;
* Novel algorithm for analyzing empirically-collected critical paths and suggesting optimized paths based on established research in cognitive science.&lt;br /&gt;
&lt;br /&gt;
=== Specific Aims ===&lt;br /&gt;
&lt;br /&gt;
* Incorporate interaction history mechanisms into a set of existing applications.&lt;br /&gt;
* Perform user-study evaluation of history-collection techniques.&lt;br /&gt;
* Distill a set of cognitive principles/models, and evaluate empirically?&lt;br /&gt;
* Build/buy sensing system to include pupil-tracking, muscle-activity monitoring, auditory recognition.&lt;br /&gt;
* Design techniques for manual/semi-automated/automated construction of CPM-GOMS model from interaction histories and sensing data.&lt;br /&gt;
* Design system for posterior analysis of interaction history w.r.t. CPM_GOMS model, evaluating critical path trajectories.&lt;br /&gt;
* Design cognition-based techniques for detecting bottlenecks in critical paths, and offering optimized alternatives.&lt;br /&gt;
&lt;br /&gt;
=== Input ===&lt;br /&gt;
&lt;br /&gt;
* User traces:  interaction histories coupled with contextual information about the interface itself and the application to which it belongs.&lt;br /&gt;
* User-sensing data:  head-tracking data, pupil-tracking data, muscle-activity monitoring, auditory recognition.&lt;br /&gt;
* High-level user goals:  set of overarching user intents.&lt;br /&gt;
* Set of cognitive guidelines/heuristics (used to analyze and optimize critical paths)&lt;br /&gt;
&lt;br /&gt;
=== Output ===&lt;br /&gt;
&lt;br /&gt;
* CPM-GOMS-style breakdown of perceptual, motor and cognitive tasks.&lt;br /&gt;
* Empirically observed critical path trajectories.&lt;br /&gt;
* Cognition-based breakdown of user trajectories.  Highlights bottlenecks, offers suggestions to improve bottlenecks.  (parallelization?)&lt;br /&gt;
&lt;br /&gt;
=== Significance ===&lt;br /&gt;
&lt;br /&gt;
* Evaluate utility of cognitive principles in HCI.&lt;br /&gt;
* Provide a quantitative, cognition-based mechanism for task analysis.&lt;br /&gt;
* Software system/architecture that allows other researchers and developers to analyze interface design effectively. &lt;br /&gt;
* In the case of scientific applications, aid in the adoption of tools by domain scientists.&lt;br /&gt;
&lt;br /&gt;
==A Unified Framework of Cognition in Analysis and Prediction in HCI==&lt;br /&gt;
Owner:  [[User:E J Kalafarski|E J Kalafarski]] 14:25, 17 April 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
===Summary===&lt;br /&gt;
Established guidelines for designing human-computer interfaces are based on experience, intuition and introspection. Because there is no integrated theoretical foundation, many rulesets have emerged despite the absence of comparative evaluation. We propose a theoretical foundation for interface design, drawing on recent advances in cognitive science—the study of how people think, perceive and interact with the world.&lt;br /&gt;
&lt;br /&gt;
We will distill a broad range of principles and computational models of cognition that are relevant to interface design and use them to compare and unify existing guidelines. To validate our theoretical foundation, we will use our findings to develop a quantitative mechanism for assessing interface designs, identifying interface elements that are detrimental to user performance, and suggesting effective alternatives. Results from this system will be explored over a set of case studies, and the quantitative assessments output by this system will be compared to actual user performance.&lt;br /&gt;
&lt;br /&gt;
Cognition, in this broad sense, cannot be limited to internal processing.  A central focus of our work will be to broaden the range of cognitive theories that are used in HCI design, and we will explore the effects of improvement on all &amp;quot;links&amp;quot; in the interaction &amp;quot;chain&amp;quot;—cognition, perception, and motor skills, the CPM of the so-called CPM-GOMs evaluation method.  Few low-level theories of perception and action, such as Fitts&#039;s law, have garnered general acceptance in the HCI community due to their simple, quantitative nature, and widespread applicability. Our aim is to produce similar predictive models that apply to lower levels of perception as well as higher levels of cognition, including vision, learning, memory, attention, reasoning and task management.&lt;br /&gt;
&lt;br /&gt;
We will focus on generating an extensible, generalizable framework that can be applied to a broad range of interface design challenges.  Interfaces exist everywhere in the modern world, and much research has accumulated regarding how people manage multiple tasks, how machines distribute tasks and work, and how devices communicate and anticipate user action effective.  The promise of such a foundation is rich, and the potential benefits game-changing.  We intend to do no less than provide new methodology for the examination of the human-computer system as a unified cognitive entity. [[User:E J Kalafarski|E J Kalafarski]] 14:58, 17 April 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
====Input====&lt;br /&gt;
* Interface specification (within, to begin with, narrow and realistic parameters)&lt;br /&gt;
* User traces, including user-sensing data:  interaction histories coupled with contextual information about the interface itself and the application to which it belongs.&lt;br /&gt;
* High-level user goals and intent&lt;br /&gt;
* Set of cognitive guidelines/heuristics (used to analyze and optimize critical paths)&lt;br /&gt;
&lt;br /&gt;
====Output====&lt;br /&gt;
* CPM-GOMS-style breakdown of perceptual, motor and cognitive tasks.&lt;br /&gt;
* Empirically observed critical path trajectories.&lt;br /&gt;
* Cognition-based breakdown of user trajectories.  Highlights bottlenecks, offers suggestions to improve bottlenecks.&lt;br /&gt;
&lt;br /&gt;
=== Contributions ===&lt;br /&gt;
* The creation of a language for &#039;&#039;abstractly representing user interfaces&#039;&#039; in terms of the layout of graphical components and the functional relationships between these components.&lt;br /&gt;
* A system for &#039;&#039;generating interaction histories&#039;&#039; within user interfaces to facilitate individual and collaborative scientific discovery, and to enable researchers to more easily document and analyze user behavior.&lt;br /&gt;
* A design tool that can provide a designer with recommendations for interface improvements, based on a &#039;&#039;unified matrix&#039;&#039; of cognitive principles and heuristic design guidelines.&lt;br /&gt;
&lt;br /&gt;
===Specific Aims===&lt;br /&gt;
* Incorporate interaction history mechanisms into a set of existing applications.&lt;br /&gt;
* Perform user-study evaluation of history-collection techniques.&lt;br /&gt;
* Distill a set of cognitive principles/models, and evaluate empirically?&lt;br /&gt;
* Build/buy sensing system to include pupil-tracking, muscle-activity monitoring, auditory recognition.&lt;br /&gt;
* Design techniques for manual/semi-automated/automated construction of CPM-GOMS model from interaction histories and sensing data.&lt;br /&gt;
* Design system for posterior analysis of interaction history w.r.t. CPM_GOMS model, evaluating critical path trajectories.&lt;br /&gt;
* Design cognition-based techniques for detecting bottlenecks in critical paths, and offering optimized alternatives.&lt;br /&gt;
&lt;br /&gt;
===Significance===&lt;br /&gt;
* Merges disparate-but-related fields of usability and cognition.&lt;br /&gt;
* Provide a quantitative, cognition-based mechanism for task analysis.&lt;br /&gt;
* Software system/architecture that allows other researchers and developers to analyze interface design effectively. &lt;br /&gt;
* Revise and provide theoretical foundations for industry-standard human usability guidelines.&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;Big World&amp;quot; Goals===&lt;br /&gt;
* Broader understanding of basic, reliable usability principles and more prevalent application of them.&lt;br /&gt;
* Efficient, profitable, and compatible usability application methods in business.&lt;br /&gt;
* A set of usability principles that supersedes Human-Computer Interaction and is applicable in all varieties of product development.&lt;br /&gt;
&lt;br /&gt;
== Interface Evaluation Using Parallel Cognitive Models (Adam and Jon) ==&lt;br /&gt;
&lt;br /&gt;
=== Summary ===&lt;br /&gt;
&lt;br /&gt;
Existing approaches for using cognitive models to evaluate user interfaces are based on extensive cognitive architectures that incorporate that integrate much of cognitive theory.  The disadvantage of this approach is that modifying and using these models is resource intensive&lt;br /&gt;
&lt;br /&gt;
We propose a distributed approach whereby simple cognitive models of specific behaviors each evaluate an interface independently, and those scores are combined to give a general evaluation.  This approach is more flexible, and permits easier modification and use at multiple levels of detail.&lt;br /&gt;
&lt;br /&gt;
=== Input ===&lt;br /&gt;
&lt;br /&gt;
*Functions that the interface performs&lt;br /&gt;
*Interface description&lt;br /&gt;
*User traces&lt;br /&gt;
&lt;br /&gt;
=== Sample Modules ===&lt;br /&gt;
&lt;br /&gt;
*Exogenous attention&lt;br /&gt;
**Question: To what extent does the interface draw your attention to what you need?&lt;br /&gt;
**Need Interface display; user traces.&lt;br /&gt;
&lt;br /&gt;
*Automaticity&lt;br /&gt;
**Question: How often is executive attention needed?&lt;br /&gt;
**Need: Predictability given previous actions and information displayed&lt;br /&gt;
&lt;br /&gt;
*Fitts Law&lt;br /&gt;
**Question: Time to move pointer from one operation location to the next?&lt;br /&gt;
**Need a physical arrangement of elements and transition matrix (user traces?)&lt;br /&gt;
&lt;br /&gt;
*Memory Load&lt;br /&gt;
**Question: How many things are remembered simultaneously?&lt;br /&gt;
**Need Interval (average?) between presentation and use.  User traces.&lt;br /&gt;
&lt;br /&gt;
*Affordances&lt;br /&gt;
**Question: Are interactions with the interface “natural”?&lt;br /&gt;
**Elements, their associated actions, and their functions&lt;br /&gt;
&lt;br /&gt;
*Interruptions&lt;br /&gt;
**Question: How long for interruption recovery?&lt;br /&gt;
**Need User traces and predictability given information displayed&lt;br /&gt;
&lt;br /&gt;
=== Output ===&lt;br /&gt;
&lt;br /&gt;
*Efficiency curve&lt;/div&gt;</summary>
		<author><name>Trevor O&#039;Brien</name></author>
	</entry>
	<entry>
		<id>http://vrl.cs.brown.edu/wiki/index.php?title=CS295J/Contributions_for_class_12&amp;diff=2980</id>
		<title>CS295J/Contributions for class 12</title>
		<link rel="alternate" type="text/html" href="http://vrl.cs.brown.edu/wiki/index.php?title=CS295J/Contributions_for_class_12&amp;diff=2980"/>
		<updated>2009-04-17T13:48:42Z</updated>

		<summary type="html">&lt;p&gt;Trevor O&amp;#039;Brien: /* Input */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== A predictive, fully-integrated model of user workflow which encompasses low-level tasks, working spheres, communication chains, interruptions and multi-tasking.==&lt;br /&gt;
Owner: Andrew Bragdon&lt;br /&gt;
#Traditionally, software design and usability testing is focused on low-level task performance.  However, prior work (Gonzales, et al.) provides strong empirical evidence that users also work at a higher, &#039;&#039;working sphere&#039;&#039; level.  Su, et al., develops a predictive model of task switching based on communication chains.  Our model will specifically identify and predict key aspects of higher level information work behaviors, such as task switching.  We will conduct initial exploratory studies to test specific instances of this high-level hypothesis.  We will then use the refined model to identify specific predictions for the outcome of a formal, ecologically valid study involving a complex, non-trivial application.&lt;br /&gt;
# Impact: Current information work systems are almost always designed around the individual task, and because they do not take into account the larger workflow context, these systems arguably do not properly model the way users work. By establishing a predictive model for user workflow based on individual task items, larger goal-oriented working spheres, multi-tasking behavior, and communication chains, developers will be able to design computing systems that properly model users and thus significantly increase worker productivity in the United States and around the world.&lt;br /&gt;
# 3-week Feasibility Study:  To ascertain the feasibility of this project we will conduct an initial pilot test to investigate the core idea: a predictive model of user workflow.  We will spend 1 week studying the real workflow of several people through job shadowing.  We will then create two systems designed to help a user accomplish some simple information work task.  One system will be designed to take larger workflow into account (experimental group), while one will not (control group).  In a synthetic environment, participants will perform a controlled series of tasks while receiving interruptions at controlled times.  If the two groups perform roughly the same, then we will need to reassess this avenue of research.  However, if the two groups perform differrently then our pilot test will have lent support to our approach and core hypothesis.&lt;br /&gt;
# Risks/Costs: Risk will play an important factor in this research, and thus a core goal of our research agenda will be to manage this risk.  The most effective way to do this will be to compartmentalize the risk by conducting empirical investigations - which will form the basis for the model - into the separate areas: low-level tasks, working spheres, communication chains, interruptions and multi-tasking in parallel.  While one experiment may become bogged down in details, the others will be able to advance sufficiently to contribute to a strong core model, even if one or two facets encounter setbacks during the course of the research agenda.  The primary cost drivers will be the preliminary empirical evaluations, the final system implementation, and the final experiments which will be designed to support the original hypothesis.  The cost will span student support, both Ph.D. and Master&#039;s students, as well as full-time research staff.  Projected cost: $1.5 million over three years.&lt;br /&gt;
&lt;br /&gt;
== A mixed-initiative system for interface design == &lt;br /&gt;
Owner: Eric&lt;br /&gt;
&lt;br /&gt;
=== Proposal Overview ===&lt;br /&gt;
Note: click here for [http://vrl.cs.brown.edu/wiki/images/b/b4/Flowchart.pdf flowchart].&lt;br /&gt;
&lt;br /&gt;
We propose a framework for interface evaluation and recommendation that integrates behavioral models and design guidelines from both cognitive science and HCI. Our framework behaves like a committee of specialized experts, where each expert provides its own assessment of the interface, given its particular knowledge of HCI or cognitive science. For example, an expert may provide an evaluation based on the GOMS method, Fitts&#039;s law, Maeda&#039;s design principles, or cognitive models of learning and memory. An aggregator collects all of these assessments and weights the opinions of each expert based on past accuracy, and outputs to the developer a merged evaluation score and a weighted set of recommendations.&lt;br /&gt;
&lt;br /&gt;
Different users have different abilities and interface preferences. For example, a user at NASA probably cares more about interface accuracy than speed. By passing this information to our committee of experts, we can create interfaces that are tuned to maximize the utility of a particular user type.&lt;br /&gt;
&lt;br /&gt;
We evaluate our framework through a series of user studies. Interfaces passed to our committee of experts receive evaluation scores on a number of different dimensions, such as time, accuracy, and ease of use for novices versus experts. We can compare these predicted scores to the actual scores observed in user studies to evaluate performance. The aggregator can retroactively weight the experts&#039; opinions to determine which weighting would have given the best predictions of user behavior for the given interface, and observe whether that weighting generalizes to other interface evaluations.&lt;br /&gt;
&lt;br /&gt;
==== Inputs ====&lt;br /&gt;
* The task the user is trying to accomplish&lt;br /&gt;
* The GUI he/she is using to perform this task&lt;br /&gt;
* The utility a user gets for values of different performance metrics (time, cognitive load, fatigue, etc.)&lt;br /&gt;
* The predicted and/or actual trace of a user using this GUI&lt;br /&gt;
&lt;br /&gt;
==== Outputs ====&lt;br /&gt;
* An evaluation of the GUI, in terms of the individual metric values (i.e. time, cognitive load, etc.), and the overall utility for this as expressed by the utility function.&lt;br /&gt;
* Suggested improvements for the GUI, in two forms:&lt;br /&gt;
** Immediate transformations that can be automatically applied to the GUI&lt;br /&gt;
** Higher level suggestions/guidelines that would have to be made by a developer&lt;br /&gt;
&lt;br /&gt;
=== Contributions ===&lt;br /&gt;
* The creation of a language for &#039;&#039;abstractly representing user interfaces&#039;&#039; in terms of the layout of graphical components and the functional relationships between these components.&lt;br /&gt;
* A system for &#039;&#039;generating interaction histories&#039;&#039; within user interfaces to facilitate individual and collaborative scientific discovery, and to enable researchers to more easily document and analyze user behavior.&lt;br /&gt;
* A system that takes user traces and creates a GOMS model that decomposes user actions  into various cognitive, perceptual, and motor control tasks. &lt;br /&gt;
* The development of other evaluation methods using various cognitive/HCI models and guidelines.&lt;br /&gt;
* A design tool that can provide a designer with recommendations for interface improvements. These recommendations can be made for a specific type of user or for the average user, as expressed by a utility function.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== A Unified Model of Cognitive Perception and Processing in HCI ==&lt;br /&gt;
Steven&lt;br /&gt;
&lt;br /&gt;
*We plan to develop a unified model of the conscious and subconscious mental processes which direct human behavior in interaction with digital interfaces.  We will draw upon existing theoretical conceptions of these processes, including distributed cognition, activity theory, etc.  This model will be empirically validated in a manner similar to that used in assessing interface efficiency via CPM-GOMS.&lt;br /&gt;
&lt;br /&gt;
*Impact: This contribution will provide a standard model of mental processes upon which effective tools for interface evaluation can be built and by which they can be justified.  Such a model would eliminate the need for costly wide-ranging testing of new interface suggestions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== A Quantitative, Cognition-Based Framework for Analyzing and Predicting User Performance ==&lt;br /&gt;
Owner:  [[Trevor|Trevor O&#039;Brien]]&lt;br /&gt;
&lt;br /&gt;
=== Summary ===&lt;br /&gt;
&lt;br /&gt;
Established guidelines for designing human computer interfaces are based on experience, intuition and introspection. Because there is no integrated theoretical foundation, many rule-sets have emerged despite the absence of comparative evaluations. We propose to develop a theoretical foundation for interface design, drawing on recent advances in cognitive science – the study of how people think, perceive and interact with the world.  We will distill a broad range of principles and computational models of cognition that are relevant to interface design and use them to compare and unify existing guidelines. To validate our theoretical foundation, we will use our findings to develop a quantitative mechanism for assessing interface designs, identifying interface elements that are detrimental to user performance, and suggesting effective alternatives. Results from this system will be explored over a set of case studies, and the quantitative assessments output by this system will be compared to actual user performance.&lt;br /&gt;
&lt;br /&gt;
Within this framework, we will introduce novel techniques for collecting and filtering user interaction histories with respect to user goals.  In addition, we propose to integrate data from multiple sensing technologies -- including pupil-tracking, muscle-activity monitoring and auditory recognition -- with these interaction histories to analyze the explicit contributions of perception, cognition and motor skills with respect to user performance.  This data will be used to define a CPM-GOMS model of cognition for a given interface, providing a quantitative, predictive, cognition-based parameterization of usability.  From empirically collected data, user trajectories through the model (critical paths) will be examined with respect to the cognitive principles obtained from our theoretical findings, highlighting bottlenecks within the interface, and offering suggested alterations to the interface to induce more optimal user trajectories. &lt;br /&gt;
&lt;br /&gt;
=== Contributions ===&lt;br /&gt;
&lt;br /&gt;
* Design and user-study evaluation of novel techniques for collecting and filtering user traces with respect to user goals.&lt;br /&gt;
* Extensible, low-cost architecture for integrating pupil-tracking, muscle-activity monitoring, and auditory recognition with user traces in existing applications.&lt;br /&gt;
* System for isolating cognitive, perceptual, and motor tasks from an interface design to generate CPM_GOMS models for analysis.&lt;br /&gt;
* Design and quantitative evaluation of semi-automated techniques for extracting critical paths from an existing CPM_GOMS model.&lt;br /&gt;
* Novel algorithm for analyzing and optimizing critical paths based on established research in cognitive science. &lt;br /&gt;
&lt;br /&gt;
=== Specific Aims ===&lt;br /&gt;
&lt;br /&gt;
* Incorporate interaction history mechanisms into a set of existing applications.&lt;br /&gt;
* Perform user-study evaluation of history-collection techniques.&lt;br /&gt;
* Distill a set of cognitive principles/models, and evaluate empirically?&lt;br /&gt;
* Build/buy sensing system to include pupil-tracking, muscle-activity monitoring, auditory recognition.&lt;br /&gt;
* Design techniques for manual/semi-automated/automated construction of CPM-GOMS model from interaction histories and sensing data.&lt;br /&gt;
* Design system for posterior analysis of interaction history w.r.t. CPM_GOMS model, evaluating critical path trajectories.&lt;br /&gt;
* Design cognition-based techniques for detecting bottlenecks in critical paths, and offering optimized alternatives.&lt;br /&gt;
&lt;br /&gt;
=== Input ===&lt;br /&gt;
&lt;br /&gt;
* User traces:  interaction histories coupled with contextual information about the interface itself and the application to which it belongs.&lt;br /&gt;
* User-sensing data:  head-tracking data, pupil-tracking data, muscle-activity monitoring, auditory recognition.&lt;br /&gt;
* High-level user goals:  set of overarching user intents.&lt;br /&gt;
* Set of cognitive guidelines/heuristics (used to analyze and optimize critical paths)&lt;br /&gt;
&lt;br /&gt;
=== Output ===&lt;br /&gt;
&lt;br /&gt;
* CPM-GOMS-style breakdown of perceptual, motor and cognitive tasks.&lt;br /&gt;
* Empirically observed critical path trajectories.&lt;br /&gt;
* Cognition-based breakdown of user trajectories.  Highlights bottlenecks, offers suggestions to improve bottlenecks.  (parallelization?)&lt;br /&gt;
&lt;br /&gt;
=== Significance ===&lt;br /&gt;
&lt;br /&gt;
* Evaluate utility of cognitive principles in HCI.&lt;br /&gt;
* Provide a quantitative, cognition-based mechanism for task analysis.&lt;br /&gt;
* Software system/architecture that allows other researchers and developers to analyze interface design effectively. &lt;br /&gt;
* In the case of scientific applications, aid in the adoption of tools by domain scientists.&lt;/div&gt;</summary>
		<author><name>Trevor O&#039;Brien</name></author>
	</entry>
	<entry>
		<id>http://vrl.cs.brown.edu/wiki/index.php?title=CS295J/Contributions_for_class_12&amp;diff=2978</id>
		<title>CS295J/Contributions for class 12</title>
		<link rel="alternate" type="text/html" href="http://vrl.cs.brown.edu/wiki/index.php?title=CS295J/Contributions_for_class_12&amp;diff=2978"/>
		<updated>2009-04-17T13:45:46Z</updated>

		<summary type="html">&lt;p&gt;Trevor O&amp;#039;Brien: /* A Quantitative, Cognition-Based Framework for Analyzing and Predicting User Performance */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== A predictive, fully-integrated model of user workflow which encompasses low-level tasks, working spheres, communication chains, interruptions and multi-tasking.==&lt;br /&gt;
Owner: Andrew Bragdon&lt;br /&gt;
#Traditionally, software design and usability testing is focused on low-level task performance.  However, prior work (Gonzales, et al.) provides strong empirical evidence that users also work at a higher, &#039;&#039;working sphere&#039;&#039; level.  Su, et al., develops a predictive model of task switching based on communication chains.  Our model will specifically identify and predict key aspects of higher level information work behaviors, such as task switching.  We will conduct initial exploratory studies to test specific instances of this high-level hypothesis.  We will then use the refined model to identify specific predictions for the outcome of a formal, ecologically valid study involving a complex, non-trivial application.&lt;br /&gt;
# Impact: Current information work systems are almost always designed around the individual task, and because they do not take into account the larger workflow context, these systems arguably do not properly model the way users work. By establishing a predictive model for user workflow based on individual task items, larger goal-oriented working spheres, multi-tasking behavior, and communication chains, developers will be able to design computing systems that properly model users and thus significantly increase worker productivity in the United States and around the world.&lt;br /&gt;
# 3-week Feasibility Study:  To ascertain the feasibility of this project we will conduct an initial pilot test to investigate the core idea: a predictive model of user workflow.  We will spend 1 week studying the real workflow of several people through job shadowing.  We will then create two systems designed to help a user accomplish some simple information work task.  One system will be designed to take larger workflow into account (experimental group), while one will not (control group).  In a synthetic environment, participants will perform a controlled series of tasks while receiving interruptions at controlled times.  If the two groups perform roughly the same, then we will need to reassess this avenue of research.  However, if the two groups perform differrently then our pilot test will have lent support to our approach and core hypothesis.&lt;br /&gt;
# Risks/Costs: Risk will play an important factor in this research, and thus a core goal of our research agenda will be to manage this risk.  The most effective way to do this will be to compartmentalize the risk by conducting empirical investigations - which will form the basis for the model - into the separate areas: low-level tasks, working spheres, communication chains, interruptions and multi-tasking in parallel.  While one experiment may become bogged down in details, the others will be able to advance sufficiently to contribute to a strong core model, even if one or two facets encounter setbacks during the course of the research agenda.  The primary cost drivers will be the preliminary empirical evaluations, the final system implementation, and the final experiments which will be designed to support the original hypothesis.  The cost will span student support, both Ph.D. and Master&#039;s students, as well as full-time research staff.  Projected cost: $1.5 million over three years.&lt;br /&gt;
&lt;br /&gt;
== A mixed-initiative system for interface design == &lt;br /&gt;
Owner: Eric&lt;br /&gt;
&lt;br /&gt;
=== Proposal Overview ===&lt;br /&gt;
Note: click here for [http://vrl.cs.brown.edu/wiki/images/b/b4/Flowchart.pdf flowchart].&lt;br /&gt;
&lt;br /&gt;
We propose a framework for interface evaluation and recommendation that integrates behavioral models and design guidelines from both cognitive science and HCI. Our framework behaves like a committee of specialized experts, where each expert provides its own assessment of the interface, given its particular knowledge of HCI or cognitive science. For example, an expert may provide an evaluation based on the GOMS method, Fitts&#039;s law, Maeda&#039;s design principles, or cognitive models of learning and memory. An aggregator collects all of these assessments and weights the opinions of each expert based on past accuracy, and outputs to the developer a merged evaluation score and a weighted set of recommendations.&lt;br /&gt;
&lt;br /&gt;
Different users have different abilities and interface preferences. For example, a user at NASA probably cares more about interface accuracy than speed. By passing this information to our committee of experts, we can create interfaces that are tuned to maximize the utility of a particular user type.&lt;br /&gt;
&lt;br /&gt;
We evaluate our framework through a series of user studies. Interfaces passed to our committee of experts receive evaluation scores on a number of different dimensions, such as time, accuracy, and ease of use for novices versus experts. We can compare these predicted scores to the actual scores observed in user studies to evaluate performance. The aggregator can retroactively weight the experts&#039; opinions to determine which weighting would have given the best predictions of user behavior for the given interface, and observe whether that weighting generalizes to other interface evaluations.&lt;br /&gt;
&lt;br /&gt;
==== Inputs ====&lt;br /&gt;
* The task the user is trying to accomplish&lt;br /&gt;
* The GUI he/she is using to perform this task&lt;br /&gt;
* The utility a user gets for values of different performance metrics (time, cognitive load, fatigue, etc.)&lt;br /&gt;
* The predicted and/or actual trace of a user using this GUI&lt;br /&gt;
&lt;br /&gt;
==== Outputs ====&lt;br /&gt;
* An evaluation of the GUI, in terms of the individual metric values (i.e. time, cognitive load, etc.), and the overall utility for this as expressed by the utility function.&lt;br /&gt;
* Suggested improvements for the GUI, in two forms:&lt;br /&gt;
** Immediate transformations that can be automatically applied to the GUI&lt;br /&gt;
** Higher level suggestions/guidelines that would have to be made by a developer&lt;br /&gt;
&lt;br /&gt;
=== Contributions ===&lt;br /&gt;
* The creation of a language for &#039;&#039;abstractly representing user interfaces&#039;&#039; in terms of the layout of graphical components and the functional relationships between these components.&lt;br /&gt;
* A system for &#039;&#039;generating interaction histories&#039;&#039; within user interfaces to facilitate individual and collaborative scientific discovery, and to enable researchers to more easily document and analyze user behavior.&lt;br /&gt;
* A system that takes user traces and creates a GOMS model that decomposes user actions  into various cognitive, perceptual, and motor control tasks. &lt;br /&gt;
* The development of other evaluation methods using various cognitive/HCI models and guidelines.&lt;br /&gt;
* A design tool that can provide a designer with recommendations for interface improvements. These recommendations can be made for a specific type of user or for the average user, as expressed by a utility function.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== A Unified Model of Cognitive Perception and Processing in HCI ==&lt;br /&gt;
Steven&lt;br /&gt;
&lt;br /&gt;
*We plan to develop a unified model of the conscious and subconscious mental processes which direct human behavior in interaction with digital interfaces.  We will draw upon existing theoretical conceptions of these processes, including distributed cognition, activity theory, etc.  This model will be empirically validated in a manner similar to that used in assessing interface efficiency via CPM-GOMS.&lt;br /&gt;
&lt;br /&gt;
*Impact: This contribution will provide a standard model of mental processes upon which effective tools for interface evaluation can be built and by which they can be justified.  Such a model would eliminate the need for costly wide-ranging testing of new interface suggestions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== A Quantitative, Cognition-Based Framework for Analyzing and Predicting User Performance ==&lt;br /&gt;
Owner:  [[Trevor|Trevor O&#039;Brien]]&lt;br /&gt;
&lt;br /&gt;
=== Summary ===&lt;br /&gt;
&lt;br /&gt;
Established guidelines for designing human computer interfaces are based on experience, intuition and introspection. Because there is no integrated theoretical foundation, many rule-sets have emerged despite the absence of comparative evaluations. We propose to develop a theoretical foundation for interface design, drawing on recent advances in cognitive science – the study of how people think, perceive and interact with the world.  We will distill a broad range of principles and computational models of cognition that are relevant to interface design and use them to compare and unify existing guidelines. To validate our theoretical foundation, we will use our findings to develop a quantitative mechanism for assessing interface designs, identifying interface elements that are detrimental to user performance, and suggesting effective alternatives. Results from this system will be explored over a set of case studies, and the quantitative assessments output by this system will be compared to actual user performance.&lt;br /&gt;
&lt;br /&gt;
Within this framework, we will introduce novel techniques for collecting and filtering user interaction histories with respect to user goals.  In addition, we propose to integrate data from multiple sensing technologies -- including pupil-tracking, muscle-activity monitoring and auditory recognition -- with these interaction histories to analyze the explicit contributions of perception, cognition and motor skills with respect to user performance.  This data will be used to define a CPM-GOMS model of cognition for a given interface, providing a quantitative, predictive, cognition-based parameterization of usability.  From empirically collected data, user trajectories through the model (critical paths) will be examined with respect to the cognitive principles obtained from our theoretical findings, highlighting bottlenecks within the interface, and offering suggested alterations to the interface to induce more optimal user trajectories. &lt;br /&gt;
&lt;br /&gt;
=== Contributions ===&lt;br /&gt;
&lt;br /&gt;
* Design and user-study evaluation of novel techniques for collecting and filtering user traces with respect to user goals.&lt;br /&gt;
* Extensible, low-cost architecture for integrating pupil-tracking, muscle-activity monitoring, and auditory recognition with user traces in existing applications.&lt;br /&gt;
* System for isolating cognitive, perceptual, and motor tasks from an interface design to generate CPM_GOMS models for analysis.&lt;br /&gt;
* Design and quantitative evaluation of semi-automated techniques for extracting critical paths from an existing CPM_GOMS model.&lt;br /&gt;
* Novel algorithm for analyzing and optimizing critical paths based on established research in cognitive science. &lt;br /&gt;
&lt;br /&gt;
=== Specific Aims ===&lt;br /&gt;
&lt;br /&gt;
* Incorporate interaction history mechanisms into a set of existing applications.&lt;br /&gt;
* Perform user-study evaluation of history-collection techniques.&lt;br /&gt;
* Distill a set of cognitive principles/models, and evaluate empirically?&lt;br /&gt;
* Build/buy sensing system to include pupil-tracking, muscle-activity monitoring, auditory recognition.&lt;br /&gt;
* Design techniques for manual/semi-automated/automated construction of CPM-GOMS model from interaction histories and sensing data.&lt;br /&gt;
* Design system for posterior analysis of interaction history w.r.t. CPM_GOMS model, evaluating critical path trajectories.&lt;br /&gt;
* Design cognition-based techniques for detecting bottlenecks in critical paths, and offering optimized alternatives.&lt;br /&gt;
&lt;br /&gt;
=== Input ===&lt;br /&gt;
&lt;br /&gt;
* User traces:  interaction histories coupled with contextual information about the interface itself and the application to which it belongs.&lt;br /&gt;
* User-sensing data:  head-tracking data, pupil-tracking data, muscle-activity monitoring, auditory recognition.&lt;br /&gt;
* High-level user goals:  set of overarching user intents.&lt;br /&gt;
* Set of cognitive guidelines/heuristics (used to optimize critical path analysis)&lt;br /&gt;
&lt;br /&gt;
=== Output ===&lt;br /&gt;
&lt;br /&gt;
* CPM-GOMS-style breakdown of perceptual, motor and cognitive tasks.&lt;br /&gt;
* Empirically observed critical path trajectories.&lt;br /&gt;
* Cognition-based breakdown of user trajectories.  Highlights bottlenecks, offers suggestions to improve bottlenecks.  (parallelization?)&lt;br /&gt;
&lt;br /&gt;
=== Significance ===&lt;br /&gt;
&lt;br /&gt;
* Evaluate utility of cognitive principles in HCI.&lt;br /&gt;
* Provide a quantitative, cognition-based mechanism for task analysis.&lt;br /&gt;
* Software system/architecture that allows other researchers and developers to analyze interface design effectively. &lt;br /&gt;
* In the case of scientific applications, aid in the adoption of tools by domain scientists.&lt;/div&gt;</summary>
		<author><name>Trevor O&#039;Brien</name></author>
	</entry>
	<entry>
		<id>http://vrl.cs.brown.edu/wiki/index.php?title=CS295J/Contributions_for_class_12&amp;diff=2976</id>
		<title>CS295J/Contributions for class 12</title>
		<link rel="alternate" type="text/html" href="http://vrl.cs.brown.edu/wiki/index.php?title=CS295J/Contributions_for_class_12&amp;diff=2976"/>
		<updated>2009-04-17T01:16:41Z</updated>

		<summary type="html">&lt;p&gt;Trevor O&amp;#039;Brien: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== A predictive, fully-integrated model of user workflow which encompasses low-level tasks, working spheres, communication chains, interruptions and multi-tasking.==&lt;br /&gt;
Owner: Andrew Bragdon&lt;br /&gt;
#Traditionally, software design and usability testing is focused on low-level task performance.  However, prior work (Gonzales, et al.) provides strong empirical evidence that users also work at a higher, &#039;&#039;working sphere&#039;&#039; level.  Su, et al., develops a predictive model of task switching based on communication chains.  Our model will specifically identify and predict key aspects of higher level information work behaviors, such as task switching.  We will conduct initial exploratory studies to test specific instances of this high-level hypothesis.  We will then use the refined model to identify specific predictions for the outcome of a formal, ecologically valid study involving a complex, non-trivial application.&lt;br /&gt;
# Impact: Current information work systems are almost always designed around the individual task, and because they do not take into account the larger workflow context, these systems arguably do not properly model the way users work. By establishing a predictive model for user workflow based on individual task items, larger goal-oriented working spheres, multi-tasking behavior, and communication chains, developers will be able to design computing systems that properly model users and thus significantly increase worker productivity in the United States and around the world.&lt;br /&gt;
# 3-week Feasibility Study:  To ascertain the feasibility of this project we will conduct an initial pilot test to investigate the core idea: a predictive model of user workflow.  We will spend 1 week studying the real workflow of several people through job shadowing.  We will then create two systems designed to help a user accomplish some simple information work task.  One system will be designed to take larger workflow into account (experimental group), while one will not (control group).  In a synthetic environment, participants will perform a controlled series of tasks while receiving interruptions at controlled times.  If the two groups perform roughly the same, then we will need to reassess this avenue of research.  However, if the two groups perform differrently then our pilot test will have lent support to our approach and core hypothesis.&lt;br /&gt;
# Risks/Costs: Risk will play an important factor in this research, and thus a core goal of our research agenda will be to manage this risk.  The most effective way to do this will be to compartmentalize the risk by conducting empirical investigations - which will form the basis for the model - into the separate areas: low-level tasks, working spheres, communication chains, interruptions and multi-tasking in parallel.  While one experiment may become bogged down in details, the others will be able to advance sufficiently to contribute to a strong core model, even if one or two facets encounter setbacks during the course of the research agenda.  The primary cost drivers will be the preliminary empirical evaluations, the final system implementation, and the final experiments which will be designed to support the original hypothesis.  The cost will span student support, both Ph.D. and Master&#039;s students, as well as full-time research staff.  Projected cost: $1.5 million over three years.&lt;br /&gt;
&lt;br /&gt;
== A mixed-initiative system for interface design == &lt;br /&gt;
Owner: Eric&lt;br /&gt;
&lt;br /&gt;
=== Proposal Overview ===&lt;br /&gt;
Note: click here for [http://vrl.cs.brown.edu/wiki/images/b/b4/Flowchart.pdf flowchart].&lt;br /&gt;
&lt;br /&gt;
We propose a framework for interface evaluation and recommendation that integrates behavioral models and design guidelines from both cognitive science and HCI. Our framework behaves like a committee of specialized experts, where each expert provides its own assessment of the interface, given its particular knowledge of HCI or cognitive science. For example, an expert may provide an evaluation based on the GOMS method, Fitts&#039;s law, Maeda&#039;s design principles, or cognitive models of learning and memory. An aggregator collects all of these assessments and weights the opinions of each expert based on past accuracy, and outputs to the developer a merged evaluation score and a weighted set of recommendations.&lt;br /&gt;
&lt;br /&gt;
Different users have different abilities and interface preferences. For example, a user at NASA probably cares more about interface accuracy than speed. By passing this information to our committee of experts, we can create interfaces that are tuned to maximize the utility of a particular user type.&lt;br /&gt;
&lt;br /&gt;
We evaluate our framework through a series of user studies. Interfaces passed to our committee of experts receive evaluation scores on a number of different dimensions, such as time, accuracy, and ease of use for novices versus experts. We can compare these predicted scores to the actual scores observed in user studies to evaluate performance. The aggregator can retroactively weight the experts&#039; opinions to determine which weighting would have given the best predictions of user behavior for the given interface, and observe whether that weighting generalizes to other interface evaluations.&lt;br /&gt;
&lt;br /&gt;
==== Inputs ====&lt;br /&gt;
* The task the user is trying to accomplish&lt;br /&gt;
* The GUI he/she is using to perform this task&lt;br /&gt;
* The utility a user gets for values of different performance metrics (time, cognitive load, fatigue, etc.)&lt;br /&gt;
* The predicted and/or actual trace of a user using this GUI&lt;br /&gt;
&lt;br /&gt;
==== Outputs ====&lt;br /&gt;
* An evaluation of the GUI, in terms of the individual metric values (i.e. time, cognitive load, etc.), and the overall utility for this as expressed by the utility function.&lt;br /&gt;
* Suggested improvements for the GUI, in two forms:&lt;br /&gt;
** Immediate transformations that can be automatically applied to the GUI&lt;br /&gt;
** Higher level suggestions/guidelines that would have to be made by a developer&lt;br /&gt;
&lt;br /&gt;
=== Contributions ===&lt;br /&gt;
* The creation of a language for &#039;&#039;abstractly representing user interfaces&#039;&#039; in terms of the layout of graphical components and the functional relationships between these components.&lt;br /&gt;
* A system for &#039;&#039;generating interaction histories&#039;&#039; within user interfaces to facilitate individual and collaborative scientific discovery, and to enable researchers to more easily document and analyze user behavior.&lt;br /&gt;
* A system that takes user traces and creates a GOMS model that decomposes user actions  into various cognitive, perceptual, and motor control tasks. &lt;br /&gt;
* The development of other evaluation methods using various cognitive/HCI models and guidelines.&lt;br /&gt;
* A design tool that can provide a designer with recommendations for interface improvements. These recommendations can be made for a specific type of user or for the average user, as expressed by a utility function.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== A Unified Model of Cognitive Perception and Processing in HCI ==&lt;br /&gt;
Steven&lt;br /&gt;
&lt;br /&gt;
*We plan to develop a unified model of the conscious and subconscious mental processes which direct human behavior in interaction with digital interfaces.  We will draw upon existing theoretical conceptions of these processes, including distributed cognition, activity theory, etc.  This model will be empirically validated in a manner similar to that used in assessing interface efficiency via CPM-GOMS.&lt;br /&gt;
&lt;br /&gt;
*Impact: This contribution will provide a standard model of mental processes upon which effective tools for interface evaluation can be built and by which they can be justified.  Such a model would eliminate the need for costly wide-ranging testing of new interface suggestions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== A Quantitative, Cognition-Based Framework for Analyzing and Predicting User Performance ==&lt;br /&gt;
Owner:  [[Trevor|Trevor O&#039;Brien]]&lt;br /&gt;
&lt;br /&gt;
=== Summary ===&lt;br /&gt;
&lt;br /&gt;
Established guidelines for designing human computer interfaces are based on experience, intuition and introspection. Because there is no integrated theoretical foundation, many rule-sets have emerged despite the absence of comparative evaluations. We propose to develop a theoretical foundation for interface design, drawing on recent advances in cognitive science – the study of how people think, perceive and interact with the world.  We will distill a broad range of principles and computational models of cognition that are relevant to interface design and use them to compare and unify existing guidelines. To validate our theoretical foundation, we will use our findings to develop a quantitative mechanism for assessing interface designs, identifying interface elements that are detrimental to user performance, and suggesting effective alternatives. Results from this system will be explored over a set of case studies, and the quantitative assessments output by this system will be compared to actual user performance.&lt;br /&gt;
&lt;br /&gt;
A central focus of our work will be to broaden the range of cognitive theories that are used in HCI design. Few low-level theories of perception and action, such as Fitts&#039;s law, have garnered general acceptance in the HCI community due to their simple, quantitative nature, and wide-spread applicability. Our aim is to produce similar predictive models that apply to lower levels of perception as well as higher levels of cognition, including higher-level vision, learning, memory, attention, reasoning and task management.&lt;br /&gt;
&lt;br /&gt;
=== Contributions ===&lt;br /&gt;
&lt;br /&gt;
* Design and user-study evaluation of novel techniques for collecting and filtering user traces with respect to user goals.&lt;br /&gt;
* Extensible, low-cost architecture for integrating pupil-tracking, muscle-activity monitoring, and auditory recognition with user traces in existing applications.&lt;br /&gt;
* System for isolating cognitive, perceptual, and motor tasks from an interface design to generate CPM_GOMS models for analysis.&lt;br /&gt;
* Design and quantitative evaluation of semi-automated techniques for extracting critical paths from an existing CPM_GOMS model.&lt;br /&gt;
* Novel algorithm for analyzing and optimizing critical paths based on established research in cognitive science. &lt;br /&gt;
&lt;br /&gt;
=== Specific Aims ===&lt;/div&gt;</summary>
		<author><name>Trevor O&#039;Brien</name></author>
	</entry>
	<entry>
		<id>http://vrl.cs.brown.edu/wiki/index.php?title=CS295J/Assignments&amp;diff=2950</id>
		<title>CS295J/Assignments</title>
		<link rel="alternate" type="text/html" href="http://vrl.cs.brown.edu/wiki/index.php?title=CS295J/Assignments&amp;diff=2950"/>
		<updated>2009-04-15T15:50:47Z</updated>

		<summary type="html">&lt;p&gt;Trevor O&amp;#039;Brien: /* Possible Tasks (also consider those from last week -- add here if you pick one) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Assignment 11 (out April 10, due April 17, 2009) ==&lt;br /&gt;
&lt;br /&gt;
=== Part A (due Tuesday at noon) ===&lt;br /&gt;
First, revise any contribution that you added to the proposal to reflect our converging view of what we are proposing. Given the evolution of the proposal since the contributions were originally created, if you wish to start from a fresh set of contributions, you can outline them [[CS295J/Contributions for class 12 |here]].&lt;br /&gt;
&lt;br /&gt;
Own one or more of the possible tasks below (enough to spend 8-10 hours on).  Edit this page to indicate your ownership and to describe enough details of what you&#039;ll do for the group to avoid duplication.  It&#039;s ok, for exmaple, for two folks to try using or extending CPM-GOMS with different extensions or a different application; indicating what your extension/application is, though would be helpful.  It&#039;s also fine to add tasks to the list.&lt;br /&gt;
&lt;br /&gt;
=== Part B (due class time) ===&lt;br /&gt;
&lt;br /&gt;
Revise any parts of the preliminary results that you have added.  That may include adding things that you would like to do, taking out pieces that don&#039;t fit into our worldview any longer, or revising things.  The &amp;quot;CPM-GOMS for gmail&amp;quot; project presented today, for example, should go into the preliminary work section to establish viability of CPM-GOMS in the context of a more modern application.&lt;br /&gt;
&lt;br /&gt;
Complete owned task(s).&lt;br /&gt;
&lt;br /&gt;
=== Possible Tasks (also consider those from last week -- add here if you pick one) ===&lt;br /&gt;
&lt;br /&gt;
* Possible additions to the proposed research&lt;br /&gt;
** Experiments with EEG to determine if they can inform modeling&lt;br /&gt;
** Maybe similar experiments with muscle sensing or body motion&lt;br /&gt;
* Possible preliminary experiments&lt;br /&gt;
** Try some EEG&lt;br /&gt;
** Try some low-cost muscle tracking&lt;br /&gt;
** Try to decode some captured events&lt;br /&gt;
** Try to get some pupil-tracking thing going and sync&#039;ed with other events&lt;br /&gt;
** Try some light-weight JavaScript-based mouse tracking (will see how far I can get in 10 hours) ([[User:E J Kalafarski|E J Kalafarski]] 15:16, 14 April 2009 (UTC))&lt;br /&gt;
* Other&lt;br /&gt;
** Get &amp;quot;Human information processor model&amp;quot; concept into related work; ernestine is canonical example, but other more recent work too&lt;br /&gt;
** Revise proposal introduction again, emphasis on our new converging view ([[User:E J Kalafarski|E J Kalafarski]] 15:13, 14 April 2009 (UTC), [[User:Trevor|Trevor O&#039;Brien]])&lt;br /&gt;
** Will revise and expand &amp;quot;big world&amp;quot; significance and contributions, based on the output/architecture we discussed last week ([[User:E J Kalafarski|E J Kalafarski]] 15:15, 14 April 2009 (UTC), [[User:Trevor|Trevor O&#039;Brien]])&lt;br /&gt;
* CPM-GOMS&lt;br /&gt;
** Extend the cognition element in the CPM-GOMS model to account for dual-process theories of reasoning. (OWNER - Gideon)&lt;br /&gt;
** Extend the model by incorporating an &#039;Affect&#039; output, instead of just relying on time as the only dependent variable. (SUGGESTED BY - Gideon; Ian (I like this idea))&lt;br /&gt;
&lt;br /&gt;
== Assignment 10 (out April 3, due April 10, 2009) ==&lt;br /&gt;
&lt;br /&gt;
=== Part A (due Tuesday at noon) ===&lt;br /&gt;
Own one or more of the possible tasks below (enough to spend 8-10 hours on).  Edit this page to indicate your ownership and to describe enough details of what you&#039;ll do for the group to avoid duplication.  It&#039;s ok, for exmaple, for two folks to try using or extending CPM-GOMS with different extensions or a different application; indicating what your extension/application is, though would be helpful.  It&#039;s also fine to add tasks to the list.&lt;br /&gt;
&lt;br /&gt;
=== Part B (due class time) ===&lt;br /&gt;
&lt;br /&gt;
Complete owned task(s).&lt;br /&gt;
&lt;br /&gt;
=== Possible Tasks ===&lt;br /&gt;
&lt;br /&gt;
* read CPM-GOMS and consider as theme (&#039;&#039;&#039;[[User:E J Kalafarski|E J Kalafarski]]&#039;&#039;&#039;, &#039;&#039;&#039;Eric&#039;&#039;&#039;, &#039;&#039;&#039;Jon&#039;&#039;&#039;, &#039;&#039;&#039;Gideon&#039;&#039;&#039;, &#039;&#039;&#039;[[User:Trevor O&#039;Brien|Trevor]]&#039;&#039;&#039;, &#039;&#039;&#039;[[User:Steven Ellis|Steven]]&#039;&#039;&#039;, &#039;&#039;&#039;Ian&#039;&#039;&#039;)&lt;br /&gt;
* converge proposal (ID weaknesses &amp;amp; fix or propose fixes)&lt;br /&gt;
** make contributions and aims agree (&#039;&#039;&#039;[[User:Trevor O&#039;Brien|Trevor]]&#039;&#039;&#039;)&lt;br /&gt;
** make contributions and aims compelling and significant&lt;br /&gt;
*** intro acceptable (merge the two best) (&#039;&#039;&#039;[[User:E J Kalafarski|E J Kalafarski]]&#039;&#039;&#039;: will rewrite intro, merging the two best &amp;quot;in progress&amp;quot; intros, with an emphasis on the project&#039;s interdisciplinary aspect)&lt;br /&gt;
*** improves world, lots of people, in big ways, long time (&#039;&#039;&#039;[[User:E J Kalafarski|E J Kalafarski]]&#039;&#039;&#039;: will brainstorm and add to &amp;quot;big picture&amp;quot; contributions, but someone else should brainstorm this as well, &#039;&#039;&#039;Eric&#039;&#039;&#039;)&lt;br /&gt;
*** extends knowledge, increased productivity (designers and users) (&#039;&#039;&#039;Eric&#039;&#039;&#039;)&lt;br /&gt;
*** bg &amp;amp; significance section consistent with contribs/aims (&#039;&#039;&#039;Ian&#039;&#039;&#039;)&lt;br /&gt;
* try CPM-GOMS, maybe w/ 1 extension (&#039;&#039;&#039;Gideon&#039;&#039;&#039;, &#039;&#039;&#039;[[User:Steven Ellis|Steven]]&#039;&#039;&#039;)&lt;br /&gt;
* what&#039;s input and output (architecture)? (&#039;&#039;&#039;[[User:E J Kalafarski|E J Kalafarski]]&#039;&#039;&#039;: will attempt to come up with an architecture that accommodates all seven proposed modules and presents a simple, useful final product, &#039;&#039;Jon: Will brainstorm b/c I&#039;ve been wondering about this for a long time&#039;&#039;, &#039;&#039;&#039;Adam&#039;&#039;&#039;, &#039;&#039;&#039;[[User:Trevor O&#039;Brien|Trevor]]&#039;&#039;&#039;)&lt;br /&gt;
* Gajos paper (&#039;&#039;&#039;[[User:E J Kalafarski|E J Kalafarski]]&#039;&#039;&#039;: will read, consider architecture method, &#039;&#039;&#039;Adam&#039;&#039;&#039;, &#039;&#039;&#039;[[User:Trevor O&#039;Brien|Trevor]]&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
== Assignment 9 (out March 20, due April 3, 2009) ==&lt;br /&gt;
&lt;br /&gt;
Part A is what we talked about in class -- a revision of the introduction to re-evaluate the big picture.  Part B is the original assignment.  While I&#039;ve asked for both below, it may not be realistic given the time available.  Please make sure to finish A by class time and to do as much of B as you can.&lt;br /&gt;
&lt;br /&gt;
=== Part A, due noon Tuesday March 31 ===&lt;br /&gt;
&lt;br /&gt;
Refine your introduction to be consistent with the theme of bringing knowledge of cognitive and perceptual modeling to bear in a principled way on human-computer interface design.  Evaluate each of the suggested contributions for their impact, their relevance to the theme, and their cost.  Triage as appropriate to achieve the best overall proposal given the 5 years with 5 people scope.&lt;br /&gt;
&lt;br /&gt;
* [[CS295J/Proposal intros from class 9|Link to Intros]]&lt;br /&gt;
* [[CS295J/Triage for class 10|Link to Triages]]&lt;br /&gt;
&lt;br /&gt;
=== Part B, due at class time ===&lt;br /&gt;
&lt;br /&gt;
Complete your 30 hour preliminary work project and writeup in the proposal.  It should explicitly support the contributions of the proposal.  Consider this a hard, externally imposed deadline, i.e., you have to have something as finished as possible that could be reviewed by an outside reviewer.  Trim scope, if necessary, but finish!&lt;br /&gt;
&lt;br /&gt;
Pick another gap in the proposal and plug it.  Any section that you have &amp;quot;owned&amp;quot; should also be &amp;quot;final&amp;quot; and reviewable.&lt;br /&gt;
&lt;br /&gt;
====Gaps====&lt;br /&gt;
* &amp;lt;s&amp;gt;Significance (expand further with unified description of relatable components)&amp;lt;/s&amp;gt;&lt;br /&gt;
* Specific contributions &amp;gt; Multi-modal HCI (question marks, needs content)&lt;br /&gt;
* Background &amp;gt; Workflow analysis &amp;gt; Interface improvements (incomplete)&lt;br /&gt;
* Research plan (we may have to cut this section, it is woefully underdeveloped)&lt;br /&gt;
&lt;br /&gt;
Read [[CS295J/Literature to read for class 10|&amp;quot;must reads&amp;quot;]] -- add one if you want.&lt;br /&gt;
&lt;br /&gt;
== Assignment 8 (out March 13, due March 20, 2009) ==&lt;br /&gt;
=== Part A, due Tuesday noon ===&lt;br /&gt;
* Outline a coherent 250 word summary to a coherent proposal [[CS295J/Proposal intros from class 9|here]]&lt;br /&gt;
* Select a gap to own&lt;br /&gt;
** &#039;&#039;&#039;Andrew Bragdon&#039;&#039;&#039;:  Metawork Support Tool proposal; will examine integrating this into the main proposal vs. making a separate proposal.&lt;br /&gt;
** &#039;&#039;&#039;EJ&#039;&#039;&#039;: &amp;quot;Significance/intellectual merit&amp;quot; section is currently bare, I can take a stab at that.  I believe this can/needs to incorporate a gap Trevor identified, &amp;quot;mapping between individual contributions and centralized theme of the proposal;&amp;quot; I&#039;ll try to start to illustrate the relationships between our individual projects. [[User:E J Kalafarski|E J Kalafarski]] 12:20, 17 March 2009 (UTC)&lt;br /&gt;
**&#039;&#039;&#039;Jon&#039;&#039;&#039;: The &amp;quot;models of perception&amp;quot; section needs to be revised and expanded.  I&#039;ve changed &amp;quot;Gibsonianism&amp;quot; to &amp;quot;The Ecological Approach to Perception&amp;quot; and I&#039;ve added a section on &amp;quot;The Computational Approach to Perception&amp;quot;; I will update these for Friday.&lt;br /&gt;
**&#039;&#039;&#039;Gideon&#039;&#039;&#039;: More up-to-date background section on distributed cognition. I know Jon is doing this for the other areas, but I feel that this is very important.&lt;br /&gt;
** &#039;&#039;&#039;Trevor&#039;&#039;&#039;:  I&#039;ll take a pass through the &#039;&#039;Specific Aims&#039;&#039; section, which currently lacks specificity.   --- [[User:Trevor O&amp;amp;#39;Brien|Trevor O&amp;amp;#39;Brien]] 15:29, 17 March 2009 (UTC) &lt;br /&gt;
**&#039;&#039;&#039;Eric&#039;&#039;&#039;: I&#039;ll flesh out the &#039;&#039;Workflow Analysis&#039;&#039; section. What&#039;s there could be cleaned up, and more could be added, particularly on learning from interaction histories.&lt;br /&gt;
**&#039;&#039;&#039;Steven&#039;&#039;&#039;: There&#039;s currently no background (slash anything) on the topic of embodied models of cognition, I&#039;ll fill in some background on that.&lt;br /&gt;
* suggest 0.5 &amp;quot;must read&amp;quot; [[CS295J/Literature to read for class 9|papers]]&lt;br /&gt;
&lt;br /&gt;
=== Part B, due in class ===&lt;br /&gt;
* Finish writing the coherent 250 word summary to a coherent proposal [[CS295J/Proposal intros from class 9|still here]]&lt;br /&gt;
* Fill your gap&lt;br /&gt;
* read &amp;quot;must read&amp;quot;s for discussion w.r.t. proposal relevance&lt;br /&gt;
* get to another week&#039;s worth of results in your preliminary results -- make sure to be consistent with your summary!&lt;br /&gt;
* be prepared to tell us about those new results in class, tied to the intellectual claims&lt;br /&gt;
&lt;br /&gt;
== Assignment 7 (out March 6, due March 13, 2009) ==&lt;br /&gt;
=== Part A, due Tuesday noon ===&lt;br /&gt;
* review [[CS295J/Research proposal|proposal]] for&lt;br /&gt;
** intellectual contribution (1-2 paragraphs)&lt;br /&gt;
** major gaps (bullet list) (don&#039;t duplicate gaps already listed)&lt;br /&gt;
** review goes [[CS295J/Proposal reviews from class 8|here]]&lt;br /&gt;
** feel free to improve any part of the proposal rather than criticizing it, if you wish :-)&lt;br /&gt;
* suggest 0.5 &amp;quot;must read&amp;quot; [[CS295J/Literature to read for class 8|papers]]&lt;br /&gt;
&lt;br /&gt;
=== Part B, due in class ===&lt;br /&gt;
* read &amp;quot;must read&amp;quot;s for discussion w.r.t. proposal relevance&lt;br /&gt;
* get to another week&#039;s worth of results in your preliminary results&lt;br /&gt;
* be prepared to tell us about those new results in class, tied to the intellectual claims&lt;br /&gt;
&lt;br /&gt;
== Assignment 6 (out February 27, due March 6, 2009) ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* If you are not familiar with NIH proposals, skim through [http://vis.cs.brown.edu/docs/pdf/bib/Laidlaw-2005-DA2.pdf this active proposal] to get a sense of the sections.  The [http://vis.cs.brown.edu/docs/pdf/bib/NIH-2001-PHS.pdf guide to nih proposals] may also be helpful.&lt;br /&gt;
* Create some preliminary results&lt;br /&gt;
** Start the work you proposed in your poster for assignment 4&lt;br /&gt;
** Start the work someone else proposed :-)&lt;br /&gt;
** Create a more detailed critique-enabled workflow of a scientific user&lt;br /&gt;
** Working in pairs is fine; preferably, pair members should have different backgrounds&lt;br /&gt;
* Write them up as a subsection of the preliminary results section of the proposal.&lt;br /&gt;
** By Wednesday 9am have an outline of the section you will produce&lt;br /&gt;
*** This should be in past tense, as it will be when the work is done.&lt;br /&gt;
*** At the top level, it should state how the preliminary results enable the overall multi-year proposal or how they demonstrate feasibility of some questionable or risky part.&lt;br /&gt;
*** Check out the NIH proposal for examples, albeit in a different domain.&lt;br /&gt;
** By class have as much filled in from that outline as possible&lt;br /&gt;
* Add any &amp;quot;must reads&amp;quot; to the [[CS295J/Literature to read for class 6]] page.  You are &amp;quot;expected&amp;quot; to add 1/2 of a reference.&lt;br /&gt;
* Read and be prepared to discuss the &amp;quot;must reads&amp;quot;.&lt;br /&gt;
** Put in fictional placeholders for parts that are not done by Friday.&lt;br /&gt;
* By Wednesday 5pm e-mail constructive comments about at least 1/2 of the outlines to the entire class&lt;br /&gt;
* Success criteria for this assignment&lt;br /&gt;
*# Proposal section will demonstrate a feasibility or prerequisite for interesting research&lt;br /&gt;
*# Results by class are complete and concrete enough that they are interesting, even though some parts may be missing&lt;br /&gt;
&lt;br /&gt;
== Assignment 5 (out February 20, due February 27, 2009) ==&lt;br /&gt;
# Videotape a 15-20 minute interactive session with a user doing a visually challenging task for which they are at least an advanced beginner (ie, they don&#039;t have to look up what to do, but they have not yet internalized the operations and made them subconscious).  Analyze the session and report your observations and conclusions.&lt;br /&gt;
&lt;br /&gt;
== Assignment 4 (out February 13, due February 20, 2009) ==&lt;br /&gt;
&lt;br /&gt;
# Be prepared to decide on a subset of applications to critique.  Flesh out at least one potential application in [[CS295J/Application Critiques]], including a specific workflow.  Modify any others you want, particularly in terms of arguments for or against proceeding with them.  These should be completed by Thursday noon.&lt;br /&gt;
#* Some possibilities: Google scholar, Mathematica, Tableau, Google notebook, Matlab, paper, media wiki, Ensight Gold, AVS, VisTrails.  Note that a given piece of software could be represented more than once with a different workflow.&lt;br /&gt;
#* Possible criteria: main purpose is analysis, perhaps scientific; interative; scientific; amenable to cognition-driven improvemennts; interesting; fun&lt;br /&gt;
# Bring your ranking of the subset of (application+workflow)s we should critique&lt;br /&gt;
# Be prepared to decide on the [[CS295J/Model elements]] of cognition we will emulate to critique each application.  Revise some part of this list so that it can be used as a concrete basis for evaluation.&lt;br /&gt;
# Add any &amp;quot;must reads&amp;quot; to the [[CS295J/Literature to read for class 5]] page.  You are &amp;quot;expected&amp;quot; to add 1/3 of a reference.&lt;br /&gt;
# Read the &amp;quot;must reads&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Assignment 3 (out February 6, due February 13) ==&lt;br /&gt;
* Flesh out and support a contribution within the proposal&lt;br /&gt;
** Add any new references to the literature section.&lt;br /&gt;
** Many of our readings date from 8+ years ago; check to make sure your contribution hasn&#039;t already been done.&lt;br /&gt;
** If any of the new references are &amp;quot;must reads&amp;quot;, add to the [[CS295J/Literature to read for class 4]] (2/13/09) page.  You are &amp;quot;expected&amp;quot; to add 1/2 of a reference.&lt;br /&gt;
** Estimate the impact of the contribution.&lt;br /&gt;
** Estimate the risk and costs of the contribution.&lt;br /&gt;
** Propose a 3-week (30 hour) result that you could create to demonstrate feasibility.&lt;br /&gt;
** Bring a printout of your contribution concept to class.  It should be legible from 2 meters away, so use big text.  You can hand-write it on posterboard or paste together printouts.&lt;br /&gt;
* Bring a list of holes in the proposal -- e.g., &amp;quot;background section needs something on workflow capture.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Assignment 2 (out January 30, 2009) ==&lt;br /&gt;
* Refine literature short summaries to include the relationship to our project.&lt;br /&gt;
* Draft by tuesday noon a subsection in the background section of the [[CS295J/Research proposal]], making sure to include citations to the relevant materials in the literature page.  Add any new references to the literature page.&lt;br /&gt;
* Read and comment/edit by Thursday noon all background sections&lt;br /&gt;
* Revise your background section by Friday noon (so David can print before class)&lt;br /&gt;
&lt;br /&gt;
* Add to or refine one or more specific contribution in the [[CS295J/Research proposal]]; each contribution must have a list of ways it can be demonstrated.  Some will become part of the preliminary results, others will be parts of the future work that will be proposed.&lt;br /&gt;
* Add to or refine one or more specific aim in the [[CS295J/Research proposal]]; make it consistent with the contribution you added.&lt;br /&gt;
&lt;br /&gt;
* Identify the one additional most important paper for us to read this week also by Tuesday noon; be prepared to summarize relevance in 2 minutes in class&lt;br /&gt;
* Read those &amp;quot;most important&amp;quot; papers for class discussion.&lt;br /&gt;
&lt;br /&gt;
* Be prepared to summarize to the class your contributions to the background, contributions, and aims sections.&lt;br /&gt;
* If there is preliminary work that will help to make decisions about contributions and aims, please get started on it (and be ready to report on what you&#039;d like to do or what you have done).&lt;br /&gt;
&lt;br /&gt;
== Assignment 1 (out January 23, 2009) ==&lt;br /&gt;
* spend 10 hours adding to any part of the wiki you think is relevant&lt;br /&gt;
* by Monday noon add any potential readings.  If you&#039;ve got a tentative summary evaluation, go ahead and add it.  It&#039;s ok to edit folks summary evaluations, but try to make the result more accurate or precise without losing information.&lt;br /&gt;
* by Wednesday noon finish with any summary evaluation and also identify at least one as-relevant-as-possible reading as yours.  Put your name on that entry in the reading list as the &amp;quot;owner&amp;quot; so that there are no duplicates.&lt;br /&gt;
* by Wednesday 5pm -- select 2 additional relevant readings that are owned and that you will read by Friday and be prepared to discuss.  Put your name as a &amp;quot;discussant&amp;quot; in the reading list; there should be a max of two discussants per reading.&lt;br /&gt;
* by Friday class -- author a summary description, less than 250 words, in the wiki of how the reading you own relates to our project.  Be prepared to describe, in two minutes, how your reading relates to the project. Also be prepared for everyone in class to discuss after your description.  You may bring notes for yourself, but no slides.  The wiki page for your reading will be displayed while you talk.&lt;br /&gt;
* by Friday class -- read and be prepared to discuss the other two readings you choose.&lt;br /&gt;
* by Friday class -- make one more wiki page titled &amp;quot;&#039;&#039;&#039;&amp;lt;Last-Name&amp;gt; week 1&#039;&#039;&#039;&amp;quot; with a list of the keys for the citations you added, the readings  you summarized, the reading you presented, the two readings you were a discussant on, and any other readings you did in detail.&lt;br /&gt;
* Let me know if you have any kind of problems.  You should be spending right around 10 hours -- if that&#039;s a problem, let&#039;s talk.&lt;br /&gt;
* The [[../How Tos|How Tos]] page has some tips.  Edit or add as you find others.&lt;/div&gt;</summary>
		<author><name>Trevor O&#039;Brien</name></author>
	</entry>
	<entry>
		<id>http://vrl.cs.brown.edu/wiki/index.php?title=CS295J/Literature_to_read_for_class_11&amp;diff=2913</id>
		<title>CS295J/Literature to read for class 11</title>
		<link rel="alternate" type="text/html" href="http://vrl.cs.brown.edu/wiki/index.php?title=CS295J/Literature_to_read_for_class_11&amp;diff=2913"/>
		<updated>2009-04-10T13:49:53Z</updated>

		<summary type="html">&lt;p&gt;Trevor O&amp;#039;Brien: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* [[Image:Defining Insight for Visual Analytics.pdf|Defining Insight for Visual Analytics]]: Perhaps an alternative to time as the unit of interface value.&lt;br /&gt;
&lt;br /&gt;
* [http://www.cs.washington.edu/homes/kgajos/papers/kgajos-chi08-supple.pdf Improving the Performance of Motor-Impaired Users with Automatically-Generated, Ability-Based Interfaces] Gajos-2008-IPM&lt;br /&gt;
&lt;br /&gt;
* [http://www.cs.washington.edu/homes/kgajos/papers/kgajos-nectar08.pdf Decision-Theoretic User Interface Generation] Gajos-2008-DTU&lt;br /&gt;
&lt;br /&gt;
* [http://portal.acm.org/citation.cfm?id=1461832&amp;amp;dl=&amp;amp;coll= Project ernestine: validating a GOMS analysis for predicting and explaining real-world task performance]&lt;/div&gt;</summary>
		<author><name>Trevor O&#039;Brien</name></author>
	</entry>
	<entry>
		<id>http://vrl.cs.brown.edu/wiki/index.php?title=CS295J/Literature_to_read_for_class_11&amp;diff=2912</id>
		<title>CS295J/Literature to read for class 11</title>
		<link rel="alternate" type="text/html" href="http://vrl.cs.brown.edu/wiki/index.php?title=CS295J/Literature_to_read_for_class_11&amp;diff=2912"/>
		<updated>2009-04-10T13:49:02Z</updated>

		<summary type="html">&lt;p&gt;Trevor O&amp;#039;Brien: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* [[Image:Defining Insight for Visual Analytics.pdf|Defining Insight for Visual Analytics]]: Perhaps an alternative to time as the unit of interface value.&lt;br /&gt;
&lt;br /&gt;
* [http://www.cs.washington.edu/homes/kgajos/papers/kgajos-chi08-supple.pdf Improving the Performance of Motor-Impaired Users with Automatically-Generated, Ability-Based Interfaces] Gajos-2008-IPM&lt;br /&gt;
&lt;br /&gt;
* [http://www.cs.washington.edu/homes/kgajos/papers/kgajos-nectar08.pdf Decision-Theoretic User Interface Generation] Gajos-2008-DTU&lt;/div&gt;</summary>
		<author><name>Trevor O&#039;Brien</name></author>
	</entry>
	<entry>
		<id>http://vrl.cs.brown.edu/wiki/index.php?title=CS295J/Assignments&amp;diff=2889</id>
		<title>CS295J/Assignments</title>
		<link rel="alternate" type="text/html" href="http://vrl.cs.brown.edu/wiki/index.php?title=CS295J/Assignments&amp;diff=2889"/>
		<updated>2009-04-07T15:53:32Z</updated>

		<summary type="html">&lt;p&gt;Trevor O&amp;#039;Brien: /* Possible Tasks */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Assignment 10 (out April 3, due April 10, 2009) ==&lt;br /&gt;
&lt;br /&gt;
=== Part A (due Tuesday at noon) ===&lt;br /&gt;
Own one or more of the possible tasks below (enough to spend 8-10 hours on).  Edit this page to indicate your ownership and to describe enough details of what you&#039;ll do for the group to avoid duplication.  It&#039;s ok, for exmaple, for two folks to try using or extending CPM-GOMS with different extensions or a different application; indicating what your extension/application is, though would be helpful.  It&#039;s also fine to add tasks to the list.&lt;br /&gt;
&lt;br /&gt;
=== Part B (due class time) ===&lt;br /&gt;
&lt;br /&gt;
Complete owned task(s).&lt;br /&gt;
&lt;br /&gt;
=== Possible Tasks ===&lt;br /&gt;
&lt;br /&gt;
* read CPM-GOMS and consider as theme (&#039;&#039;&#039;[[User:E J Kalafarski|E J Kalafarski]]&#039;&#039;&#039;, &#039;&#039;&#039;Eric&#039;&#039;&#039;, &#039;&#039;&#039;Jon&#039;&#039;&#039;, &#039;&#039;&#039;Gideon&#039;&#039;&#039;, &#039;&#039;&#039;[[User:Trevor O&#039;Brien|Trevor]]&#039;&#039;&#039;)&lt;br /&gt;
* converge proposal (ID weaknesses &amp;amp; fix or propose fixes)&lt;br /&gt;
** make contributions and aims agree (&#039;&#039;&#039;[[User:Trevor O&#039;Brien|Trevor]]&#039;&#039;&#039;)&lt;br /&gt;
** make contributions and aims compelling and significant&lt;br /&gt;
*** intro acceptable (merge the two best) (&#039;&#039;&#039;[[User:E J Kalafarski|E J Kalafarski]]&#039;&#039;&#039;: will rewrite intro, merging the two best &amp;quot;in progress&amp;quot; intros, with an emphasis on the project&#039;s interdisciplinary aspect)&lt;br /&gt;
*** improves world, lots of people, in big ways, long time (&#039;&#039;&#039;[[User:E J Kalafarski|E J Kalafarski]]&#039;&#039;&#039;: will brainstorm and add to &amp;quot;big picture&amp;quot; contributions, but someone else should brainstorm this as well, &#039;&#039;&#039;Eric&#039;&#039;&#039;)&lt;br /&gt;
*** extends knowledge, increased productivity (designers and users) (&#039;&#039;&#039;Eric&#039;&#039;&#039;)&lt;br /&gt;
*** bg &amp;amp; significance section consistent with contribs/aims&lt;br /&gt;
* try CPM-GOMS, maybe w/ 1 extension (&#039;&#039;&#039;Gideon&#039;&#039;&#039;)&lt;br /&gt;
* what&#039;s input and output (architecture)? (&#039;&#039;&#039;[[User:E J Kalafarski|E J Kalafarski]]&#039;&#039;&#039;: will attempt to come up with an architecture that accommodates all seven proposed modules and presents a simple, useful final product, &#039;&#039;Jon: Will brainstorm b/c I&#039;ve been wondering about this for a long time&#039;&#039;, &#039;&#039;&#039;Adam&#039;&#039;&#039;, &#039;&#039;&#039;[[User:Trevor O&#039;Brien|Trevor]]&#039;&#039;&#039;)&lt;br /&gt;
* Gajos paper (&#039;&#039;&#039;[[User:E J Kalafarski|E J Kalafarski]]&#039;&#039;&#039;: will read, consider architecture method, &#039;&#039;&#039;Adam&#039;&#039;&#039;, &#039;&#039;&#039;[[User:Trevor O&#039;Brien|Trevor]]&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
== Assignment 9 (out March 20, due April 3, 2009) ==&lt;br /&gt;
&lt;br /&gt;
Part A is what we talked about in class -- a revision of the introduction to re-evaluate the big picture.  Part B is the original assignment.  While I&#039;ve asked for both below, it may not be realistic given the time available.  Please make sure to finish A by class time and to do as much of B as you can.&lt;br /&gt;
&lt;br /&gt;
=== Part A, due noon Tuesday March 31 ===&lt;br /&gt;
&lt;br /&gt;
Refine your introduction to be consistent with the theme of bringing knowledge of cognitive and perceptual modeling to bear in a principled way on human-computer interface design.  Evaluate each of the suggested contributions for their impact, their relevance to the theme, and their cost.  Triage as appropriate to achieve the best overall proposal given the 5 years with 5 people scope.&lt;br /&gt;
&lt;br /&gt;
* [[CS295J/Proposal intros from class 9|Link to Intros]]&lt;br /&gt;
* [[CS295J/Triage for class 10|Link to Triages]]&lt;br /&gt;
&lt;br /&gt;
=== Part B, due at class time ===&lt;br /&gt;
&lt;br /&gt;
Complete your 30 hour preliminary work project and writeup in the proposal.  It should explicitly support the contributions of the proposal.  Consider this a hard, externally imposed deadline, i.e., you have to have something as finished as possible that could be reviewed by an outside reviewer.  Trim scope, if necessary, but finish!&lt;br /&gt;
&lt;br /&gt;
Pick another gap in the proposal and plug it.  Any section that you have &amp;quot;owned&amp;quot; should also be &amp;quot;final&amp;quot; and reviewable.&lt;br /&gt;
&lt;br /&gt;
====Gaps====&lt;br /&gt;
* &amp;lt;s&amp;gt;Significance (expand further with unified description of relatable components)&amp;lt;/s&amp;gt;&lt;br /&gt;
* Specific contributions &amp;gt; Multi-modal HCI (question marks, needs content)&lt;br /&gt;
* Background &amp;gt; Workflow analysis &amp;gt; Interface improvements (incomplete)&lt;br /&gt;
* Research plan (we may have to cut this section, it is woefully underdeveloped)&lt;br /&gt;
&lt;br /&gt;
Read [[CS295J/Literature to read for class 10|&amp;quot;must reads&amp;quot;]] -- add one if you want.&lt;br /&gt;
&lt;br /&gt;
== Assignment 8 (out March 13, due March 20, 2009) ==&lt;br /&gt;
=== Part A, due Tuesday noon ===&lt;br /&gt;
* Outline a coherent 250 word summary to a coherent proposal [[CS295J/Proposal intros from class 9|here]]&lt;br /&gt;
* Select a gap to own&lt;br /&gt;
** &#039;&#039;&#039;Andrew Bragdon&#039;&#039;&#039;:  Metawork Support Tool proposal; will examine integrating this into the main proposal vs. making a separate proposal.&lt;br /&gt;
** &#039;&#039;&#039;EJ&#039;&#039;&#039;: &amp;quot;Significance/intellectual merit&amp;quot; section is currently bare, I can take a stab at that.  I believe this can/needs to incorporate a gap Trevor identified, &amp;quot;mapping between individual contributions and centralized theme of the proposal;&amp;quot; I&#039;ll try to start to illustrate the relationships between our individual projects. [[User:E J Kalafarski|E J Kalafarski]] 12:20, 17 March 2009 (UTC)&lt;br /&gt;
**&#039;&#039;&#039;Jon&#039;&#039;&#039;: The &amp;quot;models of perception&amp;quot; section needs to be revised and expanded.  I&#039;ve changed &amp;quot;Gibsonianism&amp;quot; to &amp;quot;The Ecological Approach to Perception&amp;quot; and I&#039;ve added a section on &amp;quot;The Computational Approach to Perception&amp;quot;; I will update these for Friday.&lt;br /&gt;
**&#039;&#039;&#039;Gideon&#039;&#039;&#039;: More up-to-date background section on distributed cognition. I know Jon is doing this for the other areas, but I feel that this is very important.&lt;br /&gt;
** &#039;&#039;&#039;Trevor&#039;&#039;&#039;:  I&#039;ll take a pass through the &#039;&#039;Specific Aims&#039;&#039; section, which currently lacks specificity.   --- [[User:Trevor O&amp;amp;#39;Brien|Trevor O&amp;amp;#39;Brien]] 15:29, 17 March 2009 (UTC) &lt;br /&gt;
**&#039;&#039;&#039;Eric&#039;&#039;&#039;: I&#039;ll flesh out the &#039;&#039;Workflow Analysis&#039;&#039; section. What&#039;s there could be cleaned up, and more could be added, particularly on learning from interaction histories.&lt;br /&gt;
**&#039;&#039;&#039;Steven&#039;&#039;&#039;: There&#039;s currently no background (slash anything) on the topic of embodied models of cognition, I&#039;ll fill in some background on that.&lt;br /&gt;
* suggest 0.5 &amp;quot;must read&amp;quot; [[CS295J/Literature to read for class 9|papers]]&lt;br /&gt;
&lt;br /&gt;
=== Part B, due in class ===&lt;br /&gt;
* Finish writing the coherent 250 word summary to a coherent proposal [[CS295J/Proposal intros from class 9|still here]]&lt;br /&gt;
* Fill your gap&lt;br /&gt;
* read &amp;quot;must read&amp;quot;s for discussion w.r.t. proposal relevance&lt;br /&gt;
* get to another week&#039;s worth of results in your preliminary results -- make sure to be consistent with your summary!&lt;br /&gt;
* be prepared to tell us about those new results in class, tied to the intellectual claims&lt;br /&gt;
&lt;br /&gt;
== Assignment 7 (out March 6, due March 13, 2009) ==&lt;br /&gt;
=== Part A, due Tuesday noon ===&lt;br /&gt;
* review [[CS295J/Research proposal|proposal]] for&lt;br /&gt;
** intellectual contribution (1-2 paragraphs)&lt;br /&gt;
** major gaps (bullet list) (don&#039;t duplicate gaps already listed)&lt;br /&gt;
** review goes [[CS295J/Proposal reviews from class 8|here]]&lt;br /&gt;
** feel free to improve any part of the proposal rather than criticizing it, if you wish :-)&lt;br /&gt;
* suggest 0.5 &amp;quot;must read&amp;quot; [[CS295J/Literature to read for class 8|papers]]&lt;br /&gt;
&lt;br /&gt;
=== Part B, due in class ===&lt;br /&gt;
* read &amp;quot;must read&amp;quot;s for discussion w.r.t. proposal relevance&lt;br /&gt;
* get to another week&#039;s worth of results in your preliminary results&lt;br /&gt;
* be prepared to tell us about those new results in class, tied to the intellectual claims&lt;br /&gt;
&lt;br /&gt;
== Assignment 6 (out February 27, due March 6, 2009) ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* If you are not familiar with NIH proposals, skim through [http://vis.cs.brown.edu/docs/pdf/bib/Laidlaw-2005-DA2.pdf this active proposal] to get a sense of the sections.  The [http://vis.cs.brown.edu/docs/pdf/bib/NIH-2001-PHS.pdf guide to nih proposals] may also be helpful.&lt;br /&gt;
* Create some preliminary results&lt;br /&gt;
** Start the work you proposed in your poster for assignment 4&lt;br /&gt;
** Start the work someone else proposed :-)&lt;br /&gt;
** Create a more detailed critique-enabled workflow of a scientific user&lt;br /&gt;
** Working in pairs is fine; preferably, pair members should have different backgrounds&lt;br /&gt;
* Write them up as a subsection of the preliminary results section of the proposal.&lt;br /&gt;
** By Wednesday 9am have an outline of the section you will produce&lt;br /&gt;
*** This should be in past tense, as it will be when the work is done.&lt;br /&gt;
*** At the top level, it should state how the preliminary results enable the overall multi-year proposal or how they demonstrate feasibility of some questionable or risky part.&lt;br /&gt;
*** Check out the NIH proposal for examples, albeit in a different domain.&lt;br /&gt;
** By class have as much filled in from that outline as possible&lt;br /&gt;
* Add any &amp;quot;must reads&amp;quot; to the [[CS295J/Literature to read for class 6]] page.  You are &amp;quot;expected&amp;quot; to add 1/2 of a reference.&lt;br /&gt;
* Read and be prepared to discuss the &amp;quot;must reads&amp;quot;.&lt;br /&gt;
** Put in fictional placeholders for parts that are not done by Friday.&lt;br /&gt;
* By Wednesday 5pm e-mail constructive comments about at least 1/2 of the outlines to the entire class&lt;br /&gt;
* Success criteria for this assignment&lt;br /&gt;
*# Proposal section will demonstrate a feasibility or prerequisite for interesting research&lt;br /&gt;
*# Results by class are complete and concrete enough that they are interesting, even though some parts may be missing&lt;br /&gt;
&lt;br /&gt;
== Assignment 5 (out February 20, due February 27, 2009) ==&lt;br /&gt;
# Videotape a 15-20 minute interactive session with a user doing a visually challenging task for which they are at least an advanced beginner (ie, they don&#039;t have to look up what to do, but they have not yet internalized the operations and made them subconscious).  Analyze the session and report your observations and conclusions.&lt;br /&gt;
&lt;br /&gt;
== Assignment 4 (out February 13, due February 20, 2009) ==&lt;br /&gt;
&lt;br /&gt;
# Be prepared to decide on a subset of applications to critique.  Flesh out at least one potential application in [[CS295J/Application Critiques]], including a specific workflow.  Modify any others you want, particularly in terms of arguments for or against proceeding with them.  These should be completed by Thursday noon.&lt;br /&gt;
#* Some possibilities: Google scholar, Mathematica, Tableau, Google notebook, Matlab, paper, media wiki, Ensight Gold, AVS, VisTrails.  Note that a given piece of software could be represented more than once with a different workflow.&lt;br /&gt;
#* Possible criteria: main purpose is analysis, perhaps scientific; interative; scientific; amenable to cognition-driven improvemennts; interesting; fun&lt;br /&gt;
# Bring your ranking of the subset of (application+workflow)s we should critique&lt;br /&gt;
# Be prepared to decide on the [[CS295J/Model elements]] of cognition we will emulate to critique each application.  Revise some part of this list so that it can be used as a concrete basis for evaluation.&lt;br /&gt;
# Add any &amp;quot;must reads&amp;quot; to the [[CS295J/Literature to read for class 5]] page.  You are &amp;quot;expected&amp;quot; to add 1/3 of a reference.&lt;br /&gt;
# Read the &amp;quot;must reads&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Assignment 3 (out February 6, due February 13) ==&lt;br /&gt;
* Flesh out and support a contribution within the proposal&lt;br /&gt;
** Add any new references to the literature section.&lt;br /&gt;
** Many of our readings date from 8+ years ago; check to make sure your contribution hasn&#039;t already been done.&lt;br /&gt;
** If any of the new references are &amp;quot;must reads&amp;quot;, add to the [[CS295J/Literature to read for class 4]] (2/13/09) page.  You are &amp;quot;expected&amp;quot; to add 1/2 of a reference.&lt;br /&gt;
** Estimate the impact of the contribution.&lt;br /&gt;
** Estimate the risk and costs of the contribution.&lt;br /&gt;
** Propose a 3-week (30 hour) result that you could create to demonstrate feasibility.&lt;br /&gt;
** Bring a printout of your contribution concept to class.  It should be legible from 2 meters away, so use big text.  You can hand-write it on posterboard or paste together printouts.&lt;br /&gt;
* Bring a list of holes in the proposal -- e.g., &amp;quot;background section needs something on workflow capture.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Assignment 2 (out January 30, 2009) ==&lt;br /&gt;
* Refine literature short summaries to include the relationship to our project.&lt;br /&gt;
* Draft by tuesday noon a subsection in the background section of the [[CS295J/Research proposal]], making sure to include citations to the relevant materials in the literature page.  Add any new references to the literature page.&lt;br /&gt;
* Read and comment/edit by Thursday noon all background sections&lt;br /&gt;
* Revise your background section by Friday noon (so David can print before class)&lt;br /&gt;
&lt;br /&gt;
* Add to or refine one or more specific contribution in the [[CS295J/Research proposal]]; each contribution must have a list of ways it can be demonstrated.  Some will become part of the preliminary results, others will be parts of the future work that will be proposed.&lt;br /&gt;
* Add to or refine one or more specific aim in the [[CS295J/Research proposal]]; make it consistent with the contribution you added.&lt;br /&gt;
&lt;br /&gt;
* Identify the one additional most important paper for us to read this week also by Tuesday noon; be prepared to summarize relevance in 2 minutes in class&lt;br /&gt;
* Read those &amp;quot;most important&amp;quot; papers for class discussion.&lt;br /&gt;
&lt;br /&gt;
* Be prepared to summarize to the class your contributions to the background, contributions, and aims sections.&lt;br /&gt;
* If there is preliminary work that will help to make decisions about contributions and aims, please get started on it (and be ready to report on what you&#039;d like to do or what you have done).&lt;br /&gt;
&lt;br /&gt;
== Assignment 1 (out January 23, 2009) ==&lt;br /&gt;
* spend 10 hours adding to any part of the wiki you think is relevant&lt;br /&gt;
* by Monday noon add any potential readings.  If you&#039;ve got a tentative summary evaluation, go ahead and add it.  It&#039;s ok to edit folks summary evaluations, but try to make the result more accurate or precise without losing information.&lt;br /&gt;
* by Wednesday noon finish with any summary evaluation and also identify at least one as-relevant-as-possible reading as yours.  Put your name on that entry in the reading list as the &amp;quot;owner&amp;quot; so that there are no duplicates.&lt;br /&gt;
* by Wednesday 5pm -- select 2 additional relevant readings that are owned and that you will read by Friday and be prepared to discuss.  Put your name as a &amp;quot;discussant&amp;quot; in the reading list; there should be a max of two discussants per reading.&lt;br /&gt;
* by Friday class -- author a summary description, less than 250 words, in the wiki of how the reading you own relates to our project.  Be prepared to describe, in two minutes, how your reading relates to the project. Also be prepared for everyone in class to discuss after your description.  You may bring notes for yourself, but no slides.  The wiki page for your reading will be displayed while you talk.&lt;br /&gt;
* by Friday class -- read and be prepared to discuss the other two readings you choose.&lt;br /&gt;
* by Friday class -- make one more wiki page titled &amp;quot;&#039;&#039;&#039;&amp;lt;Last-Name&amp;gt; week 1&#039;&#039;&#039;&amp;quot; with a list of the keys for the citations you added, the readings  you summarized, the reading you presented, the two readings you were a discussant on, and any other readings you did in detail.&lt;br /&gt;
* Let me know if you have any kind of problems.  You should be spending right around 10 hours -- if that&#039;s a problem, let&#039;s talk.&lt;br /&gt;
* The [[../How Tos|How Tos]] page has some tips.  Edit or add as you find others.&lt;/div&gt;</summary>
		<author><name>Trevor O&#039;Brien</name></author>
	</entry>
	<entry>
		<id>http://vrl.cs.brown.edu/wiki/index.php?title=CS295J/Research_proposal&amp;diff=2637</id>
		<title>CS295J/Research proposal</title>
		<link rel="alternate" type="text/html" href="http://vrl.cs.brown.edu/wiki/index.php?title=CS295J/Research_proposal&amp;diff=2637"/>
		<updated>2009-03-20T16:26:05Z</updated>

		<summary type="html">&lt;p&gt;Trevor O&amp;#039;Brien: /* Specific Aims */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Project summary==&lt;br /&gt;
&lt;br /&gt;
We propose to integrate theories of cognition, models of perception, rules of design, and concepts from the discipline of human-computer interaction to develop a predictive model of user performance in interacting with computer software for visual and analytical work.  Our proposed model comprises a set of computational elements representing components of human cognition, memory, or perception.  The collective abilities and limitations of these elements can be used to provide feedback on the likely efficacy of user interaction techniques.&lt;br /&gt;
&lt;br /&gt;
The choice of human computational elements will be guided by several models or theories of cognition and perception, including Gestalt, Distributed, Gibson, ???(where pathway, when pathway)???, ???working-memory???, ..., and ???.  The list of elements will be extensible.  The framework coupling them will allow for experimental predictions of utility of user interfaces that can be verified against human performance.&lt;br /&gt;
&lt;br /&gt;
Coupling the system with users will involve a data capture mechanism for collecting the communications between a user interface and a user.  These will be primarily event based, and will include a new low-cost camera-based eye-tracking system&lt;br /&gt;
&lt;br /&gt;
During early development, existing interfaces will be evaluated manually to characterize their &lt;br /&gt;
&lt;br /&gt;
(we need some way to specify interaction techniques...)&lt;br /&gt;
&lt;br /&gt;
==Specific Contributions==&lt;br /&gt;
# A model of human cognitive and perceptual abilities when using computers&lt;br /&gt;
## Impact: Such a model would allow us to predict human performance with interfaces.  Validation of the model would allow us to more rapidly converge on ideal interfaces while simultaneously ruling out sub-optimal ones.&lt;br /&gt;
## 3-Week Feasibility Study: (1) Distill (perhaps from review articles) the major findings in all of the relevant subfields into a set of principles that will be grouped to form appropriate model components.  Some of the most relevant subfields include: memory, attention, visual perception, psychoacoustics, task switching, categorization, event perception, haptics (ANY OTHERS?).  (2)  Use these to devise a simple predictive model of human interaction.  This model could simply consist of the set of design principles but should allow some form of quantitative scoring/evaluation of interfaces.  (3) Develop a small set (5-10) of candidate GUIs that are designed to help the user accomplish the same overarching task(s) (e.g. importing, analyzing, and flexibly graphing data in Matlab).   (4)  Test/validate the model by comparing predicted performance to actual performance with the GUIs.&lt;br /&gt;
## Risks/Costs: There are always potential risks to any human subjects that might participate in testing the model which might necessitate IRB approval.  Costs might include: (1) paying for any necessary hardware and software for developing, displaying, and testing the GUIs, and (2) paying for human subjects.&lt;br /&gt;
# Something about design rules collected and merged&lt;br /&gt;
## Something comparing these collected rules to a baseline (establishing their value)&lt;br /&gt;
## ???&lt;br /&gt;
# A predictive, fully-integrated model of user workflow which encompasses low-level tasks, working spheres, communication chains, interruptions and multi-tasking. (OWNER: Andrew Bragdon)&lt;br /&gt;
##Traditionally, software design and usability testing is focused on low-level task performance.  However, prior work (Gonzales, et al.) provides strong empirical evidence that users also work at a higher, &#039;&#039;working sphere&#039;&#039; level.  Su, et al., develops a predictive model of task switching based on communication chains.  Our model will specifically identify and predict key aspects of higher level information work behaviors, such as task switching.  We will conduct initial exploratory studies to test specific instances of this high-level hypothesis.  We will then use the refined model to identify specific predictions for the outcome of a formal, ecologically valid study involving a complex, non-trivial application.&lt;br /&gt;
## Impact: To truly design computing systems which are designed around the way users work, we must understand &#039;&#039;how&#039;&#039; users work.  To do this, we need to establish a predictive model of user workflow that encompasses multiple levels of workflow: individual task items, larger goal-oriented working spheres, multi-tasking behavior, and communication chains.  Current information work systems are almost always designed around the lowest level of workflow, the individual task, and do not take into account the larger workflow context.  Fundamentally, a predictive model would allow us to design computing systems which significantly increase worker productivity in the United States and around the world, by designing these systems around the way people work.&lt;br /&gt;
## Risk and Costs: Risk will play an important factor in this research, and thus a core goal of our research agenda will be to manage this risk.  The most effective way to do this will be to compartmentalize the risk by conducting empirical investigations - which will form the basis for the model - into the separate areas: low-level tasks, working spheres, communication chains, interruptions and multi-tasking in parallel.  While one experiment may become bogged down in details, the others will be able to advance sufficiently to contribute to a strong core model, even if one or two facets encounter setbacks during the course of the research agenda.  The primary cost drivers will be the preliminary empirical evaluations, the final system implementation, and the final experiments which will be designed to support the original hypothesis.  The cost will span student support, both Ph.D. and Master&#039;s students, as well as full-time research staff.  Projected cost: $1.5 million over three years.&lt;br /&gt;
## 3-week Feasibility Study:  To ascertain the feasibility of this project we will conduct an initial pilot test to investigate the core idea: a predictive model of user workflow.  We will spend 1 week studying the real workflow of several people through job shadowing.  We will then create two systems designed to help a user accomplish some simple information work task.  One system will be designed to take larger workflow into account (experimental group), while one will not (control group).  In a synthetic environment, participants will perform a controlled series of tasks while receiving interruptions at controlled times.  If the two groups perform roughly the same, then we will need to reassess this avenue of research.  However, if the two groups perform differrently then our pilot test will have lent support to our approach and core hypothesis.&lt;br /&gt;
# A low-overhead mechanism for capturing event-based interactions between a user and a computer, including web-cam based eye tracking.  (should we buy or find out about borrowing use of pupil tracker?)  &#039;&#039;Should we include other methods of interaction here?  Audio recognition seems to be the lowest cost.  It would seem that a system that took into account head-tracking, audio, and fingertip or some other high-DOF input would provide a very strong foundation for a multi-modal HCI system.  It may be more interesting to create a software toolkit that allows for synchronized usage of those inputs than a low-cost hardware setup for pupil-tracking.  I agree pupil-tracking is useful, but developing something in-house may not be the strongest contribution we can make with our time.&#039;&#039; (Trevor)&lt;br /&gt;
## Accuracy study of eye tracking (2 cameras?  double as an input device?)&lt;br /&gt;
## ???&lt;br /&gt;
# A classification of standard design guidelines into overarching principles and measurement of the  relation of each design principle with quantifiable cognitive principles. (Owners: EJ and Adam)&lt;br /&gt;
## A ranking/weighting of the relevance of each cognitive principle to each design principle.&lt;br /&gt;
## Specific rules for designing/assessing interfaces with respect to leveraging each cognitive principle for its most closely related design principles.&lt;br /&gt;
# A systematic method to determine task distribution based on psychological principles. (Owner - [http://vrl.cs.brown.edu/wiki/CS295J/Class_Members%27_Pages/Gideon Gideon])&lt;br /&gt;
## The theory of distributed cognition (Clark-1998-TEM) is a well-suited basis for constructing a human-computer interaction framework (Hollan-2000-DCF). However, a systematic method of determining which tasks should be distributed to which agent in a distributed environment has yet to be clearly defined. I propose that the cognitive psychology literature is ripe with empirical evidence on task performance variables. Dual-process theories (Evans-2003-ITM) usually agree on the nature of high-level cognitive operations which are used in human reasoning. It is also argued that low-level processing, which is based on perceptual similarity, contiguity, and association, is determined by a set of autonomous subsystems. In general, one might say that humans excel at these low-level functions in relation to traditional von-neuman architectures (and even current neural-networks), but recently, cognitive science has been less focused on research on high-level reasoning in humans as the evidence is showing that we rarely engage in such demanding cognitive operations. Therefore, we believe that an optimal configuration for distributed cognition amongst people and computers will take advantage of these specialties and deficiencies, and distribute tasks accordingly. Our research project will contribute a set of guidelines, or heuristics, to allow engineers to effectively determine which tasks should be assigned to which entities.&lt;br /&gt;
## The impact of this contribution will be a systematic approach to interface design. Engineers will finally have a well-documented standard about how to determine what operations humans should be responsible for, and which should be off-loaded to the computer.&lt;br /&gt;
## There is no risk for this contribution. Costs associated will be an extensive search of cognitive psychology literature for the past 25 years or so. Research on memory, reasoning, perception and more will be required in order to conduct a complete and accurate assessment.&lt;br /&gt;
## In the course of 30 hours, we may perform a hand-analysis of the empirical results in psychology in order to develop a set of approximately 10 guidelines or rules.&lt;br /&gt;
# A method for collecting data on user performance in cognitive, perceptual, and motor-control tasks that requires less monetary cost, allows for a greater number of samples, and measures user improvements over time. (Owner - Eric)&lt;br /&gt;
##In order to reach a model of human cognitive and perceptual abilities when using computers, experimental analysis of human performance on these tasks will likely be necessary. User studies can often aid in this analysis, but they require much money, much time, and are subject to user fatigue. Alternately, we propose a web-based method for evaluating user performance in perceptual, motor-control, and cognitive tasks. The idea is to take a task would normally be measured through user studies in a laboratory and map this task into a simple online game. Somewhat similar work has been done by Popovic et. al. at the University of Washington, in that they took the task of folding proteins and mapped it into an online game ( http://www.economist.com/displaystory.cfm?story_id=11326188 ) with much success. We will analyze the value of this method by comparing it to similar tasks performed in laboratory experiments, both in terms of user performance and deployment costs.&lt;br /&gt;
##By converting the task into a simple game, we hope to reduce the problem of user fatigue. Additionally, if the game is played on a social networking site, we are able to track basic information of users who perform the tasks and, more importantly, can identify returning users. Thus, we can track not only a user&#039;s performance, but also how they improve at a given task over time.&lt;br /&gt;
##There are no clear risks involved with this study. Potential costs would be those required for development of each experiment and for web hosting.&lt;br /&gt;
##As a prototype, we can select one particular task to map into a simple online game. To check for feasibility, we need to ensure that the results we get from our proposed method are similar to the results found in laboratory settings. There are two possible effects we must test for: bias in results due to the mapping into a game, and bias in results due to the sample of subjects or any change caused by the web-based component. A simple test would be to first test users in a lab using traditional methods as a baseline, and then see how performance differs from that in  laboratory tests using the game-based mapping. This will determine if the game appropriately measures the given task. Next, an online version of the game can be introduced, and performance can be compared with the laboratory settings. If performance is similar in all of these tests, we have found a method for measuring low-level tasks that allows for many samples and minimal cost.&lt;br /&gt;
&lt;br /&gt;
===Usability/cognition matrix===&lt;br /&gt;
A classification of standard design guidelines into overarching principles and measurement of the relation of each design principle with quantifiable cognitive principles.&lt;br /&gt;
# A ranking/weighting of the relevance of each cognitive principle to each design principle.&lt;br /&gt;
# Specific rules for designing/assessing interfaces with respect to leveraging each cognitive principle for its most closely related design principles.&lt;br /&gt;
&lt;br /&gt;
==Specific Aims==&lt;br /&gt;
&lt;br /&gt;
=== Primary === &lt;br /&gt;
# Filter and merge existing HCI guidelines into a comprehensive collection of rules, with specific emphasis on those guidelines that derive from cognitive principles.&lt;br /&gt;
# Formulate a set of cognitive models to evaluate HCI guidelines quantitatively, with respect to cognition, drawing from research in Cognitive Science and Perceptual Pyschology.&lt;br /&gt;
# Formulate a set of performance/usability models to evaluate HCI guidelines quantitatively, with respect to user performance, drawing from research in Human-Computer Interaction and Ubiquitous Computing.&lt;br /&gt;
# Analyze correlations between cognition, perception and usability, validating (?) Cognitive Science&#039;s utility in a broad HCI context.&lt;br /&gt;
# Through isolated experiments, determine correlations between individual cognitive/perceptual processes and usability.&lt;br /&gt;
# Integrate findings into a quantitative system for evaluating HCI design with respect to performance, determining design decisions that are detrimental to user performance, and offering sets of suggestions for improvement.&lt;br /&gt;
# Integrate findings into a real-time system that may be plugged into an existing interactive application to enhance usability.&lt;br /&gt;
## This quantitative system will do so by taking into account:&lt;br /&gt;
### User goals, as determined via interaction history.&lt;br /&gt;
### Performance following interruptions or shifts in user-goals (working spheres).&lt;br /&gt;
### Collaborative usability through sharing interaction.&lt;br /&gt;
&lt;br /&gt;
=== Other Application Aims ===&lt;br /&gt;
# Develop a scoring system for interfaces to evaluate the degree to which all changes and causal relations are tracked by motion cues that are contiguous in time and/or space.&lt;br /&gt;
# Accurately assess computational and psychological costs for tasks and subtasks.  To do this, we will develop two non-trivial prototype systems; a conventional control system and a novel system which is based on our model of task switching.  We will use our model to make specific predictions about relative task performance and user affect responses, and then test these predictions empirically in a formal study.&lt;br /&gt;
# Collect ratings of the design and cognitive principles on a range of interfaces and use this data to generate a relevance matrix.&lt;br /&gt;
&lt;br /&gt;
====Usability/cognition matrix====&lt;br /&gt;
* Extract general design principles that are common across multiple sets of guidelines.&lt;br /&gt;
* Extract quantifiable cognitive principles that are relevant to HCI.&lt;br /&gt;
* Collect ratings of the design and cognitive principles on a range of interfaces and use this data to generate a relevance matrix.&lt;br /&gt;
* Generate specific rules for designing/assessing interfaces with regard to highly correlated pairs of design and cognitive principles.&lt;br /&gt;
* Investigate the possibility of using cognitive simulations to generate such assessments. [[User:E J Kalafarski|E J Kalafarski]] 16:46, 13 March 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
==Background==&lt;br /&gt;
&lt;br /&gt;
===Models of cognition===&lt;br /&gt;
There are several models of cognition, ranging from fundamental aspects of neurological processing to extremely high-level psychological analysis.  Three main theories seem to have become recognized as the most helpful in conceptualizing the actual process of HCI.  These models all agree that one cannot accurately analyze HCI by viewing the user without context, but the extent and nature of this context varies greatly.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[http://en.wikipedia.org/wiki/Activity_Theory Activity Theory]&#039;&#039;&#039;, developed in the early 20th century by Russian psychologists S.L. Rubinstein and A.N. Leontiev, posits the existence of four discrete aspects of human-computer interaction.  The &amp;quot;Subject&amp;quot; is the human interacting with the item, who possesses an &amp;quot;Object&amp;quot; (e.g. a goal) which they hope to accomplish by using a tool.  The Subject conceptualizes the realization of the Object via an &amp;quot;Action&amp;quot;, which may be as simple or complex as is necessary.  The Action is made up of one or more &amp;quot;Operations&amp;quot;, the most fundamental level of interaction including typing, clicking, etc.&lt;br /&gt;
&lt;br /&gt;
A key concept in Activity Theory is that of the artifact, which mediates all interaction.  The computer itself need not be the only artifact in HCI - others include all sorts of signs, algorithmic methods, instruments, etc.&lt;br /&gt;
&lt;br /&gt;
A longer synopsis of Activity Theory may be found at [http://mcs.open.ac.uk/yr258/act_theory/ this website].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The [http://en.wikipedia.org/wiki/Situated_cognition Situated Action Model]&#039;&#039;&#039; focuses on emergent behavior, emphasizing the subjective aspect of human-computer interaction and the therefore-necessary allowance for a wide variety of users.  This model proposes the least amount of contextual interaction, and seems to maintain that the interactive experience is determined entirely by the user&#039;s ability to use the system in question.  While limiting, this concept of usability can be very informative when designing for less tech-savvy users.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[http://en.wikipedia.org/wiki/Distributed_cognition Distributed Cognition]&#039;&#039;&#039; proposes that the computer (or, as in Activity Theory, any other artifact) can be used and ought to be thought of as an extension of the mental processing of the human.  This is not to say that the two are of equal or even comparable cognitive abilities, but that each has unique strengths and that recognition of and planning around these relative advantages can lead to increased efficiency and effectiveness.  The rotation of blocks in Tetris serves as a perfect example of this sort of cognitive symbiosis.&lt;br /&gt;
&lt;br /&gt;
====Embodied Models of Cognition====&lt;br /&gt;
This field of applied research straddles the divide between cognitive modeling and automated user evaluation.  Embodied models are so named because they employ sensory and mechanic modules in order to simulate the process of a user&#039;s interaction with a given interface.  Such models have much promise for advancing the field of automated user evaluation, but literature thus reviewed suggests that current models leave much to be desired.&lt;br /&gt;
&lt;br /&gt;
Models rely on a combination of data gleaned from the interface itself and information and instructions delivered by an evaluation expert.  Simulated eyes and ears can interpret stimuli from the interface, but these stimuli may have to be predefined by the expert to varying degrees, depending on the specific model and the complexity of the stimuli.  Simulated hands can deliver input under the constraints of well established laws of user performance, as well as with estimated levels of error.&lt;br /&gt;
&lt;br /&gt;
The imperfect nature of these interactions is both a boon and a burden.  A new, interesting perspective can be gained, but it may turn out to irrelevant when considering the behavior of true humans (aka a false positive).  An error may be logged in the design of a certain pane, but the appearance may in fact be highly salient for human users (aka a false negative).  Minimizing these errors is a difficult task, and it may prove to be quite a long time before embodied models can surpass other forms of automated evaluation.&lt;br /&gt;
&lt;br /&gt;
Embodied models do offer a few undeniable benefits, however.  They can evaluate interfaces at an early level which would otherwise not be fiscally justifiable.  They can also continue to evaluate interfaces at the designer&#039;s leisure - at any hour and for any duration.  While these tasks may also be accomplished by other automated evaluation tools, embodied models require preparatory minimal effort on the part of the designer.&lt;br /&gt;
&lt;br /&gt;
For several reasons however, not the least of which is the difficulty in defining the detail level at which an interface ought to operate, embodied models are unlikely to become substitutes for human subjects in the near future.&lt;br /&gt;
&lt;br /&gt;
(Steven)&lt;br /&gt;
&lt;br /&gt;
====Workflow Context====&lt;br /&gt;
There are, at least, two levels at which users work ([http://portal.acm.org/citation.cfm?id=985692.985707&amp;amp;coll=portal&amp;amp;dl=ACM&amp;amp;CFID=20781736&amp;amp;CFTOKEN=83176621 Gonzales, et al., 2004]).  Users accomplish individual low-level tasks which are part of larger &#039;&#039;working spheres&#039;&#039;; for example, an office worker might send several emails, create several Post-It (TM) note reminders, and then edit a word document, each of these smaller tasks being part of a single larger working sphere of &amp;quot;adding a new section to the website.&amp;quot;  Thus, it is important to understand this larger workflow context - which often involves extensive levels of multi-tasking, as well as switching between a variety of computing devices and traditional tools, such as notebooks.  In this study it was found that the information workers surveyed typically switch individual tasks every 2 minutes and have many simultaneous working spheres which they switch between, on average every 12 minutes.  This frenzied pace of switching tasks and switching working spheres suggests that users will not be using a single application or device for a long period of time, and that affordances to support this characteristic pattern of information work are important.&lt;br /&gt;
&lt;br /&gt;
Czerwinski, et al. conducted a [http://portal.acm.org/citation.cfm?id=985692.985715&amp;amp;coll=Portal&amp;amp;dl=ACM&amp;amp;CFID=21136843&amp;amp;CFTOKEN=23841774 diary study] of task switching and interruptions of users in 2004.  This study showed that task complexity, task duration, length of absence, and number of interruptions all affected the users&#039; own perceived diffculty of switching tasks.  [http://delivery.acm.org/10.1145/1250000/1240730/p677-iqbal.pdf?key1=1240730&amp;amp;key2=4525483321&amp;amp;coll=Portal&amp;amp;dl=ACM&amp;amp;CFID=21136843&amp;amp;CFTOKEN=23841774 Iqbal, et al.] studied task disruption and recovery in a field study, and found that users often visited several applications as a result of an alert, such as a new email notification, and that 27% of task suspensions resulted in 2 hours or more of disruption.  Users in the study said that losing context was a significant problem in switching tasks, and led in part to the length of some of these disruptions.  This work hints at the importance of providing cues to users to maintain and regain lost context during task switching.&lt;br /&gt;
&lt;br /&gt;
(Andrew Bragdon - OWNER)&lt;br /&gt;
&lt;br /&gt;
The problem of task switching is exacerbated when some tasks are more routine than others. When a person intends to switch from a routine task to a novel task at some later time, they often forget the context of the original task ([http://web.ebscohost.com/ehost/pdf?vid=1&amp;amp;hid=7&amp;amp;sid=54ec1e22-3df2-462c-b484-7a7c052c2173%40SRCSM1 Aarts et al., 1999]). Also, if both tasks are done in the same context, with the same tools or with the same materials, people have difficulty inhibiting the routine task while doing the novel task (Stroop, 1935). This inhibition also makes switching back to the routine task slower (Allport et al., 1994). All of these problems can be alleviated to some degree by salient cues in the environment. Enacting the intention to switch becomes easier when there is a salient reminder at the appropriate time (McDaniel and Einstein, 1993) and associating different environmental cues with different goals can automatically trigger appropriate behavior ([http://web.ebscohost.com/ehost/pdf?vid=1&amp;amp;hid=4&amp;amp;sid=68f77032-f093-4139-a833-760d2217b513%40sessionmgr9 Aarts and Dijksterhuis, 2003]).&lt;br /&gt;
&lt;br /&gt;
(Adam)&lt;br /&gt;
&lt;br /&gt;
(Edited by Andrew)&lt;br /&gt;
&lt;br /&gt;
====Qunatitative Models: Fitts&#039;s law, Steering Law====&lt;br /&gt;
Fitts&#039;s law and the steering law are examples of quantiative models that predict user performance when using certain types of user interfaces.  In addition to these classic models, [http://delivery.acm.org/10.1145/1250000/1240850/p1495-cao.pdf?key1=1240850&amp;amp;key2=9904483321&amp;amp;coll=GUIDE&amp;amp;dl=GUIDE&amp;amp;CFID=20565232&amp;amp;CFTOKEN=69614228 Cao and Zhai] developed and validated a quantitative model of human performance of pen stroke gestures in 2007.  [http://tlaloc.sfsu.edu/~lank/research/appearing/FSS604LankE.pdf Lank and Saund] utilized a model which used curvature to predict the speed of a pen as it moved across a surface to help disambiguate target selection intent.&lt;br /&gt;
&lt;br /&gt;
In addition, quantitative models are often tested against new interfaces to verify that they hold.  For example, [http://portal.acm.org/citation.cfm?id=1054972.1055012&amp;amp;coll=GUIDE&amp;amp;dl=ACM&amp;amp;CFID=20565232&amp;amp;CFTOKEN=69614228 Grossman et al.] verified that their Bubble Cursor approach to enlarging effective pointing target sizes obeyed Fitts&#039;s law for actual distance traveled.&lt;br /&gt;
&lt;br /&gt;
In addition to formal models, machine learning techniques have been applied to modeling user interaction as well.  For example, [http://delivery.acm.org/10.1145/1250000/1240669/p271-hurst.pdf?key1=1240669&amp;amp;key2=6465483321&amp;amp;coll=GUIDE&amp;amp;dl=GUIDE&amp;amp;CFID=20565232&amp;amp;CFTOKEN=69614228 Hurst, et al.], used a learning classifier, trained on low-level mouse and keyboard usage patterns, to identify novice and expert users dynamically with accuracies as high as 91%.  This classifier was then used to provide different information and feedback to the user as appropriate.&lt;br /&gt;
&lt;br /&gt;
(Andrew Bragdon - OWNER)&lt;br /&gt;
&lt;br /&gt;
====Distributed cognition====&lt;br /&gt;
&lt;br /&gt;
Distributed cognition is a theory in which thoughts take place in and outside of the brain. Human&#039;s have a great ability to use tools and to incorporate their environments into their sphere of thinking. Clark puts it nicely in [[http://vrl.cs.brown.edu/wiki/index.php?title=CS295J/Literature#Cognition Clark-1994-TEM]].&lt;br /&gt;
&lt;br /&gt;
Therefore, optimal configurations when considering HCI design will treat the brain, person, interface, and computer as a holistic system comprising cognitions.&lt;br /&gt;
&lt;br /&gt;
In practical terms, the issue at hand for our proposal is how to best maximize utility by distributing the cognitive tasks at hand to different components of the whole system. Simply, which tasks can we off-load to the computer to do for us, faster and more accurately? What tasks should we purposely leave the computer out of?&lt;br /&gt;
&lt;br /&gt;
Typically, those tasks most eligible to be off-loaded are the ones which we perform poorly on. Conveniently, the tasks which computers perform poorly on we excel at. Here are a few examples:&lt;br /&gt;
&lt;br /&gt;
*Computer&#039;s Area of Expertise: number crunching, memory, logical reasoning, precise&lt;br /&gt;
*Human&#039;s Area of Expertise: Associative thought, real-world knowledge, social behavior, alogical reasoning, imprecise&lt;br /&gt;
&lt;br /&gt;
Using this division of cognitive labor allows us to optimize task work flows. Ignoring it puts strain and bottlenecks at either the computer, the human, or the interface. The field of HCI is full of examples of failures which can be attributed to not recognizing which tasks should be handled by which sub-system.&lt;br /&gt;
&lt;br /&gt;
As a heuristic to divide thinking, one might turn to the dual-process theory literature [http://vrl.cs.brown.edu/wiki/CS295J/Literature Evans-2003-ITM]. What is most often called System 1 is what human&#039;s are good at, while System 2 tasks are what computers do well.&lt;br /&gt;
&lt;br /&gt;
(Owner - [http://vrl.cs.brown.edu/wiki/CS295J/Class_Members%27_Pages/Gideon Gideon])&lt;br /&gt;
&lt;br /&gt;
====Information Processing Approach to Cognition====&lt;br /&gt;
The dominant approach in Cognitive Science is called information processing. It sees cognition as a system that takes in information from the environment, forms mental representations and manipulates those representations in order to create the information needed to achieve its goals. This approach includes three levels of analysis originally proposed by Marr (will cite):&lt;br /&gt;
# Computational - What are the goals of a process or representation? What are the inputs and desired outputs required of a system which performs a task? Models at this level of analysis are often considered normative models, because any agent wanting to perform the task should conform to them. Rational agent models of decision making, for example, belong at this level of analysis.&lt;br /&gt;
# Process/Algorithmic - What are the processes or algorithms involved in how humans perform the task? This is the most common level of analysis as it focuses on the mental representations, manipulations and computational faculties involved in actual human processing. Algorithmic descriptions of human capabilities and limitations, such as working memory size, belong at this level of analysis.&lt;br /&gt;
# Implementation - How are the processes and algorithms be actual biological computation? Dopamine theories of reward learning, for example, belong at this level of analysis.&lt;br /&gt;
The information processing approach is often contrasted with the distributed cognition approach. Its advantage is that it finds general mechanisms that are valid across many different contexts and situations. Its disadvantage is that it can have difficulty explaining the rich interactions between people and their environment.&lt;br /&gt;
&lt;br /&gt;
In considering users as information processors, interfaces should take into account people&#039;s computational limitations on short term memory, learning and vision as well as the algorithms and representations that they use to process information and pursue goals.&lt;br /&gt;
&lt;br /&gt;
(Adam)&lt;br /&gt;
&lt;br /&gt;
===Models of perception===&lt;br /&gt;
&lt;br /&gt;
====The Ecological Approach to Perception====&lt;br /&gt;
(relevant stuff about Gibson&#039;s theory)&lt;br /&gt;
We will build on top of this theory/model by ... .&lt;br /&gt;
&lt;br /&gt;
Gibsonianism, named after James J. Gibson and more commonly referred to as ecological psychology, is an epistemological direct realist theory of perception and action.  It is often contrasted to information processing and cognitivist approaches which generally assume that perception is a constructive process operating on impoverished sense-data inputs (e.g. photoreceptor activity) to generate representations of the the world with added structure and meaning (e.g. a mental or neural &amp;quot;picture&amp;quot; of a chair), ecological psychology treats perception as direct, non-inferential, unmediated (by retinal images or mental representations) epistemic contact with behaviorally-relevant features of the environment (Warren, 2005).  The possibilities for action that the environment offers a given animal are taken to be specified by the co-perception of self (e.g. proprioception) and information available in structured energy distributions (e.g. the optic array of light arriving at the eyes), and these possibilities for action constitute the affordances of the environment with respect that animal (Gibson, 1986).&lt;br /&gt;
&lt;br /&gt;
The notion of affordance has proven to be a very useful concept in HCI, however, some of its original meaning has been lost in translation.  For example, it is worth noting that the original definition of affordances emphasizes possibilities for action and not their relative likelihoods.  For example, for most humans, laptop computer screens afford puncturing with Swiss Army knives, however, it is unlikely that a user will attempt to retrieve an electronic coupon by carving it out of their monitor.  This example illustrates that interfaces often afford a class of actions that are undesirable from the perspective of both the designer and the user.&lt;br /&gt;
&lt;br /&gt;
===Design guidelines===&lt;br /&gt;
&lt;br /&gt;
A multitude of rule sets exist for the design of not only interface, but architecture, city planning, and software development.  They can range in scale from one primary rule to as many Christopher Alexander&#039;s 253 rules for urban environments,&amp;lt;ref&amp;gt;http://hci.rwth-aachen.de/materials/publications/borchers2000a.pdf&amp;lt;/ref&amp;gt; which he introduced with the concept design patterns in the 1970s.  Study has likewise been conducted on the use of these rules:&amp;lt;ref&amp;gt;http://stl.cs.queensu.ca/~graham/cisc836/lectures/readings/tetzlaff-guidelines.pdf&amp;lt;/ref&amp;gt; guidelines are often only partially understood, indistinct to the developer, and &amp;quot;fraught&amp;quot; with potential usability problems given a real-world situation.&lt;br /&gt;
&lt;br /&gt;
====Application to AUE====&lt;br /&gt;
&lt;br /&gt;
And yet, the vast majority of guideline sets, including the most popular rulesets, have been arrived at heuristically.  The most successful, such as Raskin&#039;s and Schneiderman&#039;s, have been forged from years of observation instead of empirical study and experimentation.  The problem is similar to the problem of circular logic faced by automated usability evaluations: an automated system is limited in the suggestions it can offer to a set of preprogrammed guidelines which have often not been subjected to rigorous experimentation.&amp;lt;ref&amp;gt;http://www.eecs.berkeley.edu/Pubs/TechRpts/2000/CSD-00-1105.pdf&amp;lt;/ref&amp;gt;  In the vast majority of existing studies, emphasis has traditionally been placed on either the development of guidelines or the application of existing guidelines to automated evaluation.  A mutually-reinforcing development of both simultaneously has not been attempted.&lt;br /&gt;
&lt;br /&gt;
Overlap between rulesets is inevitable and unavoidable.  For our purposes of evaluating existing rulesets efficiently, without extracting and analyzing each rule individually, it may be desirable to identify the the overarching &#039;&#039;principles&#039;&#039; or &#039;&#039;philosophy&#039;&#039; (max. 2 or 3) for a given ruleset and determining their quantitative relevance to problems of cognition.&lt;br /&gt;
&lt;br /&gt;
====Popular and seminal examples====&lt;br /&gt;
Schneiderman&#039;s [http://faculty.washington.edu/jtenenbg/courses/360/f04/sessions/schneidermanGoldenRules.html Eight Golden Rules] date to 1987 and are arguably the most-cited.  They are heuristic, but can be somewhat classified by cognitive objective: at least two rules apply primarily to &#039;&#039;repeated use&#039;&#039;, versus &#039;&#039;discoverability&#039;&#039;.  Up to five of Schneiderman&#039;s rules emphasize &#039;&#039;predictability&#039;&#039; in the outcomes of operations and &#039;&#039;increased feedback and control&#039;&#039; in the agency of the user.  His final rule, paradoxically, removes control from the user by suggesting a reduced short-term memory load, which we can arguably classify as &#039;&#039;simplicity&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Raskin&#039;s [http://www.mprove.de/script/02/raskin/designrules.html Design Rules] are classified into five principles by the author, augmented by definitions and supporting rules.  While one principle is primarily aesthetic (a design problem arguably out of the bounds of this proposal) and one is a basic endorsement of testing, the remaining three begin to reflect philosophies similar to Schneiderman&#039;s: reliability or &#039;&#039;predictability&#039;&#039;, &#039;&#039;simplicity&#039;&#039; or &#039;&#039;efficiency&#039;&#039; (which we can construe as two sides of the same coin), and finally he introduces a concept of &#039;&#039;uninterruptibility&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Maeda&#039;s [http://lawsofsimplicity.com/?cat=5&amp;amp;order=ASC Laws of Simplicity] are fewer, and ostensibly emphasize &#039;&#039;simplicity&#039;&#039; exclusively, although elements of &#039;&#039;use&#039;&#039; as related by Schneiderman&#039;s rules and &#039;&#039;efficiency&#039;&#039; as defined by Raskin may be facets of this simplicity.  Google&#039;s corporate mission statement presents [http://www.google.com/corporate/ux.html Ten Principles], only half of which can be considered true interface guidelines.  &#039;&#039;Efficiency&#039;&#039; and &#039;&#039;simplicity&#039;&#039; are cited explicitly, aesthetics are once again noted as crucial, and working within a user&#039;s trust is another application of &#039;&#039;predictability&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
====Elements and goals of a guideline set====&lt;br /&gt;
&lt;br /&gt;
Myriad rulesets exist, but variation becomes scarce—it indeed seems possible to parse these common rulesets into overarching principles that can be converted to or associated with quantifiable cognitive properties.  For example, it is likely &#039;&#039;simplicity&#039;&#039; has an analogue in the short-term memory retention or visual retention of the user, vis a vis the rule of [http://books.google.com/books?hl=en&amp;amp;lr=&amp;amp;id=j5q0VvOGExYC&amp;amp;oi=fnd&amp;amp;pg=PA357&amp;amp;dq=seven+plus+or+minus+two&amp;amp;ots=prI3PKJBar&amp;amp;sig=vOZnqpnkXKGYWxK6_XlA4I_CRyI Seven, Plus or Minus Two].  &#039;&#039;Predictability&#039;&#039; likewise may have an analogue in Activity Theory, in regards to a user&#039;s perceptual expectations for a given action; &#039;&#039;uninterruptibility&#039;&#039; has implications in cognitive task-switching;&amp;lt;ref&amp;gt;http://portal.acm.org/citation.cfm?id=985692.985715&amp;amp;coll=Portal&amp;amp;dl=ACM&amp;amp;CFID=21136843&amp;amp;CFTOKEN=23841774&amp;lt;/ref&amp;gt; and so forth.&lt;br /&gt;
&lt;br /&gt;
Within the scope of this proposal, we aim to reduce and refine these philosophies found in seminal rulesets and identify their logical cognitive analogues.  By assigning a quantifiable taxonomy to these principles, we will be able to rank and weight them with regard to their real-world applicability, developing a set of &amp;quot;meta-guidelines&amp;quot; and rules for applying them to a given interface in an automated manner.  Combined with cognitive models and multi-modal HCI analysis, we seek to develop, in parallel with these guidelines, the interface evaluation system responsible for their application. [[User:E J Kalafarski|E J Kalafarski]] 15:21, 6 February 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:I. Introduction, applications of guidelines&lt;br /&gt;
::A. Application to automated usability evaluations (AUE)&lt;br /&gt;
:II. Popular and seminal examples&lt;br /&gt;
::A. Shneiderman&lt;br /&gt;
::B. Google&lt;br /&gt;
::C. Maeda&lt;br /&gt;
::D. Existing international standards&lt;br /&gt;
:III. Elements of guideline sets, relationship to design patterns&lt;br /&gt;
:IV. Goals for potentially developing a guideline set within the scope of this proposal&lt;br /&gt;
&lt;br /&gt;
===User interface evaluations===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Interaction capture====&lt;br /&gt;
&lt;br /&gt;
[http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=4376144 Yi et. al.] have performed a survey of the visualization literature and categorized different types of interactions that users were faced with. They are as follows:&lt;br /&gt;
# Select: mark something as interesting &lt;br /&gt;
# Explore: show me something else &lt;br /&gt;
# Reconfigure: show me a different arrangement &lt;br /&gt;
# Encode: show me a different representation&lt;br /&gt;
# Abstract/Elaborate: show me more or less detail &lt;br /&gt;
# Filter: show me something conditionally &lt;br /&gt;
# Connect: show me related items &lt;br /&gt;
&lt;br /&gt;
Different GUI components may be able to perform the same type of interaction. We would like to categorize GUI components or patterns that are used bring about these interactions. We then have a library of components we can use to complete a given task. The goal is to create components for a given interaction that can minimize cost to the user. Because the cost of a component is likely dependent on the other components used, the goal of the designer might be to choose a combination of components that minimizes this cost. To do this, we need a way to measure costs, which is discussed in the next section.&lt;br /&gt;
&lt;br /&gt;
====Cost-based analyses====&lt;br /&gt;
In [http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=4658124 A Framework of Interaction Costs in Information Visualization], Lam performs a survey of 32 user studies and classifies several types of costs that can be used for qualitative interface evaluation. The classification scheme is based on Donald Norman&#039;s [http://en.wikipedia.org/wiki/Seven_stages_of_action Seven Stages of Action] from his book, [http://www.amazon.com/Design-Everyday-Things-Donald-Norman/dp/0385267746 The Design of Everyday Things] ([http://www.networksplus.net/tracyj/everydaythings.pdf summary]).&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Decision costs:&#039;&#039;&#039; How does user performance decrease when there is an overwhelming amount of data to observe or too many possible actions to take.&lt;br /&gt;
# &#039;&#039;&#039;System-power costs:&#039;&#039;&#039; How does the user translate a high-level goal into a sequence of allowable actions by the interface?&lt;br /&gt;
# &#039;&#039;&#039;Multiple input mode costs:&#039;&#039;&#039; Cost of providing an action selection system that is not unified, for example, if there is one button that does two different things, depending on context. &lt;br /&gt;
# &#039;&#039;&#039;Physical-motion costs:&#039;&#039;&#039; Physical cost to the user to interact with the interface, for example, measuring mouse movement costs with Fitts&#039; Law.&lt;br /&gt;
# &#039;&#039;&#039;Visual-cluttering costs:&#039;&#039;&#039; Cost due to unwanted visual distractions, such as a mouse hovering pop-up occluding part of the screen.&lt;br /&gt;
# &#039;&#039;&#039;View- and State-change costs:&#039;&#039;&#039; when the user causes the interface to change views, this new view should be consistent with the old one, in that it should meet the users expectations of where things should be in the new view, based on his knowledge of the old one.&lt;br /&gt;
&lt;br /&gt;
==== Evaluation in practice ====&lt;br /&gt;
User interfaces are usually evaluated in practice using two methods: &#039;&#039;usability inspection methods&#039;&#039;, where a programmer or one or more experts evaluates the interface through inspection; or &#039;&#039;usability testing&#039;&#039;, where empirical tests are performed with some group of naive human users. Some usability inspection methods include [http://en.wikipedia.org/wiki/Cognitive_walkthrough Cognitive walkthrough], [http://en.wikipedia.org/wiki/Heuristic_evaluation Heuristic evaluation], and [http://en.wikipedia.org/wiki/Pluralistic_walkthrough Pluralistic walkthrough]. While these inspection methods do not using naive human subjects, the details of the methods might be useful in helping to formalize what interactions are made between a user and an interface, and what each interactions&#039; costs are for a given design.&lt;br /&gt;
&lt;br /&gt;
[http://portal.acm.org/citation.cfm?id=108862 Jeffries et. al.] provide a real-world comparison between two of the usability inspection methods (heuristic evaluation and cognitive walkthrough), the usability testing method, as well as following some published software guidelines for interface design.&lt;br /&gt;
&lt;br /&gt;
=== Multimodal HCI ===&lt;br /&gt;
&lt;br /&gt;
Continued advancements in several signal processing techniques have given rise to a multitude of mechanisms that allow for rich, multimodal, human-computer interaction.  These include systems for head-tracking, eye- or pupil-tracking, fingertip tracking, recognition of speech, and detection of electrical impulses in the brain, among others [http://vr.kjist.ac.kr/~dhong/website/paperworks/hci2002coursePapers/April24/Sharma98.pdf Sharma-1998-TMH].  With ever-increasing computing power, integrating these systems in real-time applications has become a plausible endeavor. &lt;br /&gt;
&lt;br /&gt;
==== Head-tracking ====&lt;br /&gt;
:In virtual, stereoscopic environments, head-tracking has been exploited with great success to create an immersive effect, allowing a user to move freely and naturally while dynamically updating the user’s viewpoint in a visual environment.  Head-tracking has been employed in non-immersive settings as well, though careful consideration must be paid to account for unintended movements by the user, which may result in distracting visual effects.&lt;br /&gt;
&lt;br /&gt;
==== Pupil-tracking ====&lt;br /&gt;
:Pupil-tracking has been studied a great deal in the field of Cognitive Science ... (need some examples here from CogSci).  In the HCI community, pupil-tracking has traditionally been used for posterior analysis of interface designs, and is particularly prevalent in web interface design.  An alternative utility of pupil-tracking is to employ it in real-time as an actual mode of interaction.  This has been examined in relatively few cases (citations), where typically the eyes are used to control a cursor onscreen.  Like head-tracking, implementations of pupil-tracking must be conscious of unintended eye-movements, which are incredibly frequent.&lt;br /&gt;
&lt;br /&gt;
==== Fingertip-tracking, Gestural recognition ====&lt;br /&gt;
:Fingertip tracking and gestural recognition of the hands are the subjects of much research in the HCI community, particularly in the Virtual Environment and Augmented Reality disciplines.  Less implicit than head or pupil-tracking, gestural recognition of the hands may draw upon the wealth of precedents readily observed in natural human interactions.  As sensing technologies become less obtrusive and more robust, this method of interaction has the potential to become quite effective.&lt;br /&gt;
&lt;br /&gt;
==== Speech Recognition ====&lt;br /&gt;
:Speech recognition is becoming much better, though effective implementation of its desired effects is non-trivial in many applications.  (More on this later).&lt;br /&gt;
&lt;br /&gt;
==== Brain Activity Detection ====&lt;br /&gt;
:The use of electroencephelograms (EEGs) in HCI is quite recent, and with limited degrees of freedom, few robust interfaces have been designed around it.  Some recent advances in the pragmatic use of EEGs in HCI research can be seen in [http://portal.acm.org/citation.cfm?id=1357054.1357187&amp;amp;coll=Portal&amp;amp;dl=GUIDE&amp;amp;CFID=21136843&amp;amp;CFTOKEN=23841774 Grimes et al.]  The possibility of using brain function to interface with a machine is cause for great excitement in the HCI community, and further advances in non-invasive techniques for accessing brain function may allow teleo-HCI to become a reality.  &lt;br /&gt;
&lt;br /&gt;
In sum, the synchronized usage of these modes of interaction make it possible to architect an HCI system capable of sensing and interpreting many of the mechanisms humans use to transmit information among one another.  (Trevor)&lt;br /&gt;
&lt;br /&gt;
=== Workflow analysis ===&lt;br /&gt;
&lt;br /&gt;
Research in workflow and interaction analysis remains relatively sparse, though its utility would appear to be many-fold.  Tools for such analysis have the potential to facilitate data navigation, provide search mechanisms, and allow for more efficient collaborative discovery.  In addition, awareness and caching of interaction histories readily allows for explanatory presentations of results, and has the potential to provide training data for machine learning mechanisms.&lt;br /&gt;
&lt;br /&gt;
VisTrails is an optimized workflow system developed at the Sci Institute at the University of Utah, and implemented within their VTK visualization package.  The primary purpose of the system is to increase performance when working with multiple visualizations simultaneously.  This is accomplished by storing low-level workflow processes to reduce computational redundancy.  Three papers on VisTrails can be found here: [http://www.cs.brown.edu/people/trevor/Papers/Callahan-2006-MED.pdf Callahan-2006-MED], [http://www.cs.brown.edu/people/trevor/Papers/Callahan-2006-VVM.pdf Callahan-2006-VVM], [http://www.cs.brown.edu/people/trevor/Papers/Bavoil-2005-VEI.pdf Bavoil-2005-VEI]&lt;br /&gt;
&lt;br /&gt;
Jeff Heer of Stanford (formerly Berkley) has presented work on using Graphical Interaction Histories within the Tableau InfoVis application.  Though geared toward two-dimensional visualizations with clearly defined events, his work offers some very useful design guidelines for working with interaction histories, including some evaluation from the deployment of his techniques within Tableau.  His paper from Infovis &#039;08 can be seen here: [http://www.cs.brown.edu/people/trevor/Papers/Heer-2008-GraphicalHistories.pdf Heer-2008-GraphicalHistories]&lt;br /&gt;
&lt;br /&gt;
If you want to check out some of Trevor&#039;s work having to do with using interaction histories in 3D, time-varying scientific visualizations, his preliminary work that was presented at Vis &#039;08 can be seen here: [http://www.cs.brown.edu/people/trevor/trevor_iweb/Publications_files/obrien-2008-visDemo.pdf Abstract], [http://www.cs.brown.edu/people/trevor/trevor_iweb/Publications_files/obrien-2008-visPoster.pdf Poster]&lt;br /&gt;
&lt;br /&gt;
Optimizing workflows that have been captured -- Tovi?&lt;br /&gt;
&lt;br /&gt;
Does ethnography fit in here?&lt;br /&gt;
&lt;br /&gt;
* [http://viscog.cs.drexel.edu/courses/cs530-w06/readings/Horvitz-UAI98.pdf The Lumiere Project: Bayesian User Modeling for Inferring the Goals and Needs of Software Users]&lt;br /&gt;
* [http://www.cs.washington.edu/homes/pedrod/papers/kdd02a.pdf Relational Markov Models and their Application to Adaptive Web Navigation]&lt;br /&gt;
:Introduces the notion of Relational Markov Models (RMMs), a construct that extends traditional Markov Models by imposing a relational hierarchy on the state space. This abstraction allows for learning and inference on very large state spaces with only sparse training data. These methods are evaluated with respect to Adaptive Web Interfaces, but I believe the general RMM idea can be applied in many other HCI settings.&lt;br /&gt;
&lt;br /&gt;
* [http://www.cs.brown.edu/people/trevor/Papers/Heer-2008-GraphicalHistories.pdf Graphical Histories for Visualization: Supporting Analysis, Communication, and Evaluation]&lt;br /&gt;
: Work by Jeff Heer of Stanford (formerly Berkley) on using Graphical Interaction Histories within the Tableau InfoVis application. This is a great recent example of &amp;quot;workflow analysis&amp;quot; that we&#039;ve been discussing in class. Though geared toward two-dimensional visualizations with clearly defined events, his work offers some very useful design guidelines for working with interaction histories, including evaluations from the deployment of his techniques within Tableau. (Trevor)&lt;br /&gt;
&lt;br /&gt;
* [http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.68.5619&amp;amp;rep=rep1&amp;amp;type=pdf A Machine Learning Approach to Web Personalization]&lt;br /&gt;
* [http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.56.7874&amp;amp;rep=rep1&amp;amp;type=pdf Learning Dynamic Bayesian Networks]&lt;br /&gt;
* [http://www.informatik.uni-freiburg.de/~ml/teaching/ws03/pll/rmms.ppt Relational Hidden Markov Models (powerpoint)]&lt;br /&gt;
* [http://www.springerlink.com/content/h181k064m40711k6/fulltext.pdf COLLAGEN: A Collaboration Manager for Software Interface Agents]&lt;br /&gt;
* [http://www.cs.utexas.edu/~ear/CogSci.pdf User Modeling via Stereotypes]&lt;br /&gt;
* [http://siona.udea.edu.co/~jfduitam/thesis/projects/ELM-ART/userModelingAndAdaptiveNavigation.pdf User Modeling and Adaptive Navigation Support in WWW-Based Tutoring Systems]&lt;br /&gt;
* [http://www.um.org/ User Modeling Inc.]&lt;br /&gt;
* [http://delivery.acm.org/10.1145/340000/336374/p220-dieberger.pdf?key1=336374&amp;amp;key2=5275657321&amp;amp;coll=GUIDE&amp;amp;dl=GUIDE&amp;amp;CFID=27551349&amp;amp;CFTOKEN=46488930 Visualizing Interaction History  on a Collaborative Web Server]&lt;br /&gt;
* [http://delivery.acm.org/10.1145/650000/642673/p353-kaptelinin.pdf?key1=642673&amp;amp;key2=0375657321&amp;amp;coll=GUIDE&amp;amp;dl=GUIDE&amp;amp;CFID=27551320&amp;amp;CFTOKEN=62077475 UMEA: Translating Interaction Histories into Project Contexts]&lt;br /&gt;
&lt;br /&gt;
==Significance==&lt;br /&gt;
&lt;br /&gt;
While attempts have been made in the past to apply cognitive theory to the task of developing human-computer interfaces, there remains much work to be done. No standard and widespread model for cognitive interaction with a device exists. The roles of perception and cognition, while examined and studied independently, are often at odds with empirical and successful design guidelines in practice. Methods of study and evaluation, such as eye-tracking and workflow analysis, are still governed primarily by the needs at the end of the development process, with no quantitative model capable of influencing efficiency and consistency in the field.&lt;br /&gt;
&lt;br /&gt;
We demonstrate in wide-ranging preliminary work that cognitive theory has a tangible and valuable role in all the stages of interface design and evaluation: models of distributed cognition can exert useful influence on the design of interfaces and the guidelines that govern it; algorithmic workflow analysis can lead to new interaction methods, including predictive options; a model of human perception can greatly enhance the usefulness of multimodal user study techniques; a better understanding of why classical strategies work will bring us closer to the &amp;quot;holy grail&amp;quot; of automated interface evaluation and recommendation. We can bring the field further down many of the only partially-explored avenues of the field in the years ahead.&lt;br /&gt;
&lt;br /&gt;
The disparate elements of our proposed works are the building blocks of a cohesive theoretical understanding of the role cognition is capable of playing.  As a demonstration of the feasibility of a more complete, multi-year investigation, these elements have been specifically selected to show the opportunities of integration throughout the interface development process.  We construct an architecture of this preliminary work, showing the relationships of these layers and how they construct a foundation for further substantial work. [[User:E J Kalafarski|E J Kalafarski]] 14:41, 20 March 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
(diagram)&lt;br /&gt;
&lt;br /&gt;
==Preliminary results==&lt;br /&gt;
&lt;br /&gt;
=== Gideon ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Preliminary Psychological Measures Show the Need for a Standardized Division of Cognitive Labor Across Humans and Computers&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=====Week 1:=====&lt;br /&gt;
&lt;br /&gt;
A meta-analysis of a subset of the cognitive psychology and human-computer interaction literature presents evidence that interactions between humans and computers can be improved by taking into account the cognitive resources required for different types of tasks. It is well known that humans and computers excel at different types of tasks, but the field has not made an explicit effort to standardize a set of guidelines that interface designers may use when developing computer systems. For people and computers to function together in an optimized, complementary fashion, we still need a systematic way of distributing tasks amongst them.&lt;br /&gt;
&lt;br /&gt;
It is often the case that what computers excel at, humans have difficulty with (e.g., elaborate arithmetic). While, the opposite is also true (e.g., some forms of pattern-recognition). After a preliminary search of the literature, we&#039;ve explored common tasks in software today that have neglected consideration of this performance dichotomy. Designers have not been appropriately addressed these gaps in the computer industry due to a lack of multidisciplinary research. Our meta-analysis presents data that supports our view on two different tasks: 2D shape rotation and Go.&lt;br /&gt;
&lt;br /&gt;
=====Week 2=====&lt;br /&gt;
&lt;br /&gt;
To support our meta-analysis, we conducted two experiments to verify our results. They are outlined below.&lt;br /&gt;
&lt;br /&gt;
Experiment 1:&lt;br /&gt;
&lt;br /&gt;
It has been shown that computers consistently perform better when having to rotate a 2D shape in performing a decision task. In our paradigm, both a computer and people were given an image of an object, and asked to choose from 4 other objects the only one which was a 2D rotation of the primed object. Computers are both more accurate (100% correctness) and faster in their decisions.&lt;br /&gt;
&lt;br /&gt;
Experiment 2:&lt;br /&gt;
&lt;br /&gt;
We have shown that in a classification task, people consistently perform better than state-of-the-art trained computer systems when judging board positions in the game Go.&lt;br /&gt;
&lt;br /&gt;
Our preliminary studies clearly demonstrate that interactive systems benefit from consistent and rule-based task distribution guidelines. Furthermore, the literature is rich with other types of tasks which await our systematic exploitation. Upon further study, the community will benefit from a tested and systematic approach for designing improved human-computer interfaces.&lt;br /&gt;
&lt;br /&gt;
=====Week 3=====&lt;br /&gt;
&lt;br /&gt;
Our previous findings have supported our claims, but this week we have extended our concept beyond perception-based tasks. Here, we have created a custom task in which participants asked to complete logical syllogisms are given three different versions of software to assist them in their task.&lt;br /&gt;
&lt;br /&gt;
Version 1: Three static black squares on a white screen.&lt;br /&gt;
Version 2: Three movable black circles which cannot touch on a screen.&lt;br /&gt;
Version 3: Three transparent labeled movable circles which may collide on a screen.&lt;br /&gt;
&lt;br /&gt;
Examples like the following were given:&lt;br /&gt;
&lt;br /&gt;
No nutritional things are inexpensive &lt;br /&gt;
Some vitamin tablets are inexpensive &lt;br /&gt;
Therefore, some vitamin tablets are not nutritional&lt;br /&gt;
&lt;br /&gt;
Participants using version 3 performed better than using any other version. This is evidence of cognitive offloading of what working memory would be having to store and manipulate being performed (better) by machine.&lt;br /&gt;
&lt;br /&gt;
=== Steven ===&lt;br /&gt;
&lt;br /&gt;
Preliminary Results:&lt;br /&gt;
&lt;br /&gt;
Redone Week 1 Results&lt;br /&gt;
&lt;br /&gt;
*Problem: The current state of cognitive HCI theory is both deeply conflicted and antiquated.  We have carefully examined the existing literature and began developing a more modern, applicable, and empirically proven conceptualization of the interaction itself.&lt;br /&gt;
&lt;br /&gt;
Preliminary Work:&lt;br /&gt;
*A literature review of the leading cognitive HCI theories, with special attention paid to activity theory and subjective realities.&lt;br /&gt;
::The development of a common vocabulary with which to describe the components of each of these theories, to facilitate both understanding and to discern applicability to the current digital environment.  This lexicon is then used to define the intuitive merits of each approach and isolate them as contributing factors for the eventual theory.  This segment required 30 hours of research.&lt;br /&gt;
*Task-oriented user studies are conducted to distill the users’ progression of goal development and execution.  Users are asked to describe their actions when viewing a recording at a later session, and these descriptions are analyzed to compile a list of working adjectives which users might use to describe their actions (in contrast with those used by developers).  A factor analysis produces the most salient terms, which are linked to those derived in the 30 hour project.&lt;br /&gt;
::These studies are also used as the proof-of-concept of the development of a descriptive model against which the prescriptive theory will be measured.&lt;br /&gt;
Week 2 Results&lt;br /&gt;
*We have developed a skeleton of the hybrid cognitive HCI theory, along with descriptions of the sources of each component and relevant citations.  This skeleton has been compared to the descriptive data gained from the above trials, as well as additional user trials based upon the insight gained from these original comparisons.  The skeleton presents a foundation upon which we can begin to describe not merely the stages in a user’s task conception and completion but the more pertinent transition between these stages.  We have thus begun to correlate semantic data from user trials with the theory’s stages and created a framework in which to present empirical evidence of the theory’s viability.&lt;br /&gt;
&lt;br /&gt;
===Trevor and Eric===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Interaction Histories&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Project idea:&#039;&#039;&#039;  Generating interaction histories within scientific visualization applications to facilitate individual and collaborative scientific discovery. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Preliminary Work&#039;&#039;&#039;&lt;br /&gt;
# A software infrastructure for caching and filtering interaction events has been developed within an existing scientific application aimed at exploring animal kinematic data captured via high-speed x-ray and CT.&lt;br /&gt;
# Methods for visualizing, editing, and sharing interaction histories have been designed and implemented.&lt;br /&gt;
# Methods for annotating and querying interactions have been implemented.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Preliminary Work from the Future&#039;&#039;&#039;&lt;br /&gt;
# Software model extended to two other interactive visualizations -- a flow visualization application, and a protein visualization application.&lt;br /&gt;
# User study to examine techniques for automatic history generation&lt;br /&gt;
## Automatic creation v. semi-automatic creation v. manual creation&lt;br /&gt;
# Timed-task pilot study performed to validate utility of interaction history techniques&lt;br /&gt;
## Task performance with histories v. without histories&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;General Outline of Tasks&#039;&#039;&#039;&lt;br /&gt;
# Capture user interaction history&lt;br /&gt;
# Predict user interactions, given interaction history&lt;br /&gt;
## Use a relational markov model?&lt;br /&gt;
# Modify the UI, given predicted user interactions&lt;br /&gt;
# Evaluate this modified UI&lt;br /&gt;
## Compare performance with and without UI modifications&lt;br /&gt;
## Evaluate performance when predicted interactions are incorrect x% of the time&lt;br /&gt;
&lt;br /&gt;
===EJ===&lt;br /&gt;
&#039;&#039;&#039;Problem:&#039;&#039;&#039; There currently exists no metric for evaluating interfaces that attempts to reconcile popular and successful heuristic design guidelines with cognitive theory.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Preliminary Work&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
I. A mapping of empirically-effective heuristic design guidelines to fundamental cognitive principles.&lt;br /&gt;
:*A set of &amp;quot;common&amp;quot; design guidelines is arrived at through survey of popular and effective heuristic guidelines in use.&lt;br /&gt;
:*Proposed common design principles:&lt;br /&gt;
 Discoverability&lt;br /&gt;
 Flexibility&lt;br /&gt;
 Appropriate visual presentation&lt;br /&gt;
 Predictability&lt;br /&gt;
 Consistency&lt;br /&gt;
 Simplicity&lt;br /&gt;
 Memory load reduction&lt;br /&gt;
 Feedback&lt;br /&gt;
 Task match&lt;br /&gt;
 User control&lt;br /&gt;
 Efficiency&lt;br /&gt;
:*Proposed cognitive principles:&lt;br /&gt;
 Affordance&lt;br /&gt;
 Visual cue&lt;br /&gt;
 Cognitive load&lt;br /&gt;
 Chunking&lt;br /&gt;
 Activity&lt;br /&gt;
 Actability&lt;br /&gt;
II. A weighting or priority for each of these analogues.&lt;br /&gt;
:*These can begin as binary estimations based on empirical evidence.&lt;br /&gt;
:*Through experimentation, these values should converge to discrete priority values for each analogue, allowing a ranking of analogues.&lt;br /&gt;
III. A system for applying these analogues and respective priority to the evaluation of an interface.&lt;br /&gt;
:*This can occur manually or in an automated fashion.&lt;br /&gt;
:*In this step (or possibly in a separate step), analogues should be assigned a &#039;&#039;suggestion&#039;&#039; or potential correction to provide in the event of &amp;quot;failure&amp;quot; of a particular test by a given interface.&lt;br /&gt;
&lt;br /&gt;
===EJ and Jon===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Photoshop Study&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
We demonstrate that the efficiency of performing subtasks in Photoshop can be predicted by a simple model of human perceptual and cognitive abilities.  In particular, we show that several of the tools commonly used to perform basic operations in Photoshop often violate the user&#039;s expectations of how those tools should work or where those tools ought to be located within the interface.  These violations can be categorized as follows: (1) unintuitive relationships between adjustments to common tool parameters and their perceptual results (e.g. adjusting the Magic Wand tool&#039;s &amp;quot;tolerance&amp;quot; setting often leads to unintended selections), (2) inefficient means of adjusting tool parameters (e.g. adjusting the &amp;quot;tolerance&amp;quot; setting by clicking, typing a number, hitting enter, observing the results, and iterating this process until the desired perceptual effect is achieved), (3) mismatches between the user&#039;s expectations for the names and locations of tools (or menu items) and their actual names and locations (e.g. resizing a picture via the &amp;quot;transform&amp;quot; menu item), (4) the availability of a tool in multiple locations imposes a cognitive load on the user when searching for that tool and these various contexts influence the user&#039;s expectations about the effects of using that tool, (5) [what else?], etc.&lt;br /&gt;
&lt;br /&gt;
===Jon===&lt;br /&gt;
&lt;br /&gt;
We have developed a model of human cognitive and perceptual abilities that allows us to predict human performance and thereby converge on ideal interfaces while simultaneously ruling out sub-optimal ones.  The model consists of a set of design principles combined with an extensive catalog of human perceptual and cognitive constraints on interface design.  The effectiveness of this model has been demonstrated by using the combined set of principles to assign scores to a set of GUIs designed to help a user accomplish the same overarching task, and comparing those scores with actual user performance.&lt;br /&gt;
&lt;br /&gt;
===Eric===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Project idea:&#039;&#039;&#039; Introduce a method for collecting data on user performance in cognitive, perceptual, and motor-control tasks that requires less monetary cost, allows for a greater number of samples, and measures user improvements over time.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Preliminary Work&#039;&#039;&#039;&lt;br /&gt;
Create a simple &amp;quot;brain training&amp;quot;-style game in which users must perform a simple cognitive task. As an example, perhaps the task is to manipulate shape1 into shape2, given a simple set of operators. Each of the users actions (mouse movements, button clicks, etc.) will be documented along with the state of the game at that time. By varying the interface for different users, we can see how it affects performance in terms of cognitive and low-level tasks.&lt;br /&gt;
&lt;br /&gt;
Preliminary tests will first measure user performance in a laboratory setting. We will run subjects on two different interfaces and compare the differences in performance. We will then perform this same test in an online setting, and will evaluate how performance differs in this case, which is more subject to user interruptions and noisy data. If performance is similar in all of these tests, we have found a method for measuring low-level tasks that allows for many samples and minimal cost. If performance differs greatly, it may be that the amount of noise introduced by users playing in a casual setting may make the project infeasible.&lt;br /&gt;
&lt;br /&gt;
===Andrew Bragdon===&lt;br /&gt;
&lt;br /&gt;
====I.  &#039;&#039;&#039;Goals&#039;&#039;&#039;====&lt;br /&gt;
&lt;br /&gt;
A.  Develop a qualitative theory for predicting user performance with and without automatic meta-work tools for saving and resuming context.&lt;br /&gt;
&lt;br /&gt;
B.  Formative study should inspire 30-hour feasibility study&lt;br /&gt;
&lt;br /&gt;
C.  30-hour feasibility study should give a high-level indication into the relative merit of such an approach&lt;br /&gt;
&lt;br /&gt;
====II.  &#039;&#039;&#039;Formative Study&#039;&#039;&#039;====&lt;br /&gt;
&lt;br /&gt;
A.  &#039;&#039;&#039;Description of methodology/experimental procedure&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1.  In a highly-controlled task environment, understand how an integrated model comprising current theories in perception and HCI can predict/explain task performance&lt;br /&gt;
&lt;br /&gt;
2.  Users trained in the task extensively to control for learning (learning aspect of task could be investigated in future study)&lt;br /&gt;
&lt;br /&gt;
B. &#039;&#039;&#039;Results&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1. Users favored continuous rotation over static view or meditative pauses.&lt;br /&gt;
&lt;br /&gt;
2. Hand gesticulation seemed to be used as a method of validation in stereo views.&lt;br /&gt;
&lt;br /&gt;
3. Several verbal comments regarding occlusion suggest drawbacks to the tube view.&lt;br /&gt;
&lt;br /&gt;
4. Rotating is beneficial and perhaps necessary for this task.&lt;br /&gt;
&lt;br /&gt;
5. No references to external, offscreen information. In fact, very rarely did participants glance away from the screen.&lt;br /&gt;
&lt;br /&gt;
6. Our assessment of a typical session beginning with a new dataset:&lt;br /&gt;
&lt;br /&gt;
   1. Data loads, split second decision to begin rotating.&lt;br /&gt;
   2. Continuous rotation until proper viewpoint determined.&lt;br /&gt;
   3. Rocking back and forth interaction about the optimal viewpoint. (Thinking?)&lt;br /&gt;
   4. [In stereo views, participants were noted tilting their heads fairly consistently.] &lt;br /&gt;
&lt;br /&gt;
C.  &#039;&#039;&#039;Discussion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1.  Some of the users&#039; strategies can be explained by current theories in perception&lt;br /&gt;
&lt;br /&gt;
D.  &#039;&#039;&#039;Conclusion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1.  Modeling low-level performance accurately does not seem to take into account for higher level workflow processes.&lt;br /&gt;
&lt;br /&gt;
====III.  &#039;&#039;&#039;30-hour study&#039;&#039;&#039;====&lt;br /&gt;
&lt;br /&gt;
A.  Now that we have investigated highly controlled task performance, explore larger workflow context&lt;br /&gt;
&lt;br /&gt;
B.  Perform study examining how interruptions affect user performance, and explore what coping strategies are used by users in such an environment, and explore whether a simple tool - working sets - helps improve performance by allowing developers to save, and load, and switch between window and window state configurations&lt;br /&gt;
&lt;br /&gt;
1.  Software developers (a good example of a challenging, and creative type of information work) will receive task requests by email; notifications will appear on their screen in real time&lt;br /&gt;
&lt;br /&gt;
2.  Each email will have differrent priorities (e.g., low, high, emergency)&lt;br /&gt;
&lt;br /&gt;
3.  Participants will be asked to manage priorities effectively to accomplish the tasks given&lt;br /&gt;
&lt;br /&gt;
4.  Once they begin working, we will &amp;quot;interrupt&amp;quot; them at controlled times with new task requests of differrent priorities&lt;br /&gt;
&lt;br /&gt;
5.  We will analyze their actions for coping strategies, metawork, and working spheres to try to understand how the larger workflow context is affected by interruptions&lt;br /&gt;
&lt;br /&gt;
6.  Goal will be to run 4-6 people, &#039;&#039;&#039;would like feedback on this&#039;&#039;&#039;.  Can control for experience by recruiting experienced developers and students from the general population of Brown University.&lt;br /&gt;
&lt;br /&gt;
7.  Note on progress so far: I &amp;quot;ran&amp;quot; myself and found that switching tasks incurred a huge cost in returning to what I was doing.  I think that tools for aiding in switching between working sets will significantly benefit developers in particular, and information workers in general.  Some coping strategies I used: writing things on paper, typing notes into Notepad, and keeping previously used tabs open.  Sometimes it would get too chaotic and I would need to close all open windows and reset from my notes.  Overall, I would say that task switching/pausing/resuming in Visual Studio (test application) is not well supported.&lt;br /&gt;
&lt;br /&gt;
===Adam Darlow===&lt;br /&gt;
&lt;br /&gt;
I.  &#039;&#039;&#039;Goals&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
A.  Evaluate the interactions between various cognitive principles and design principles. There are three basic relations:&lt;br /&gt;
&lt;br /&gt;
   1. The cognitive principle is the motivation behind the design principle.&lt;br /&gt;
   2. The cognitive principle suggests a method for achieving the design principle.&lt;br /&gt;
   3. The cognitive principle and design principle are unrelated. (Hopefully few)&lt;br /&gt;
&lt;br /&gt;
B.  Make design rules which are suggested by the combination of a cognitive principle and a design principle.&lt;br /&gt;
&lt;br /&gt;
II.  &#039;&#039;&#039;Description of methodology/experimental procedure&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
A.  Collecting commonly accepted design principles from the literature on interface design and well established cognitive principles from the cognitive psychology literature and constructing a matrix which crosses them. Most squares in the matrix should suggest specific design rules.&lt;br /&gt;
&lt;br /&gt;
III. &#039;&#039;&#039;Results&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
As a preliminary effort, I have chosen the following two cognitive principles and three design principles:&lt;br /&gt;
&lt;br /&gt;
Cognitive principles&lt;br /&gt;
&lt;br /&gt;
#C1. People derive complex associations and causal interpretations from temporal correlations and patterns.&lt;br /&gt;
&lt;br /&gt;
#C2. People have limited working memory (7 +- 2), but each space can hold a chunk of related information.&lt;br /&gt;
&lt;br /&gt;
Design Principles (from Maeda (TBD link))&lt;br /&gt;
&lt;br /&gt;
#D1. Achieve simplicity through thoughtful reduction.&lt;br /&gt;
&lt;br /&gt;
#D2. Organization makes a system of many appear fewer.&lt;br /&gt;
&lt;br /&gt;
#D3. Knowledge makes everything simpler.&lt;br /&gt;
&lt;br /&gt;
The resulting matrix entries are as follows:&lt;br /&gt;
&lt;br /&gt;
#C1 + D1. Remove extraneous correlations. Things shouldn&#039;t consistently and apparently change or happen in conjunction unless they are actually related and their relation is important to the user.&lt;br /&gt;
&lt;br /&gt;
#C1 + D2. Use temporal and spatial contiguity to help users organize and group  multiple events meaningfully. &lt;br /&gt;
&lt;br /&gt;
#C1 + D3. Use temporal correlations to effectively teach the important  causal relations inherent in the interface.&lt;br /&gt;
&lt;br /&gt;
#C2 + D1. Reduce the interface such that a user has to be aware of no more than 5 items simultaneously.&lt;br /&gt;
&lt;br /&gt;
#C2 + D2. Groups of semantically related items can for many purposes be treated as a single item.&lt;br /&gt;
&lt;br /&gt;
#C2 + D3. Teach users how things are related so that it can be chunked.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
V.  &#039;&#039;&#039;Conclusion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
VI.  &#039;&#039;&#039;Future Directions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To expand the matrix and evaluate the resulting design rules.&lt;br /&gt;
&lt;br /&gt;
===Usability/cognition matrix===&lt;br /&gt;
We have demonstrated the feasibility of mapping and quantifying the relationships between established design principles and a preliminary set of cognitive principles.  By assigning specific rules for the evaluation and development of interfaces to these relations, we&#039;ve begun the construction of a larger and more concrete set of design guidelines.  Although the work here is based on manually-generated user ratings, we describe how the continuing development of this framework would incorporate more advanced and automated data collection.  We&#039;ve provided the foundations for continuing work towards a unified method of systematic, and in some cases automated, interface evaluation.&lt;br /&gt;
&lt;br /&gt;
==Research plan==&lt;br /&gt;
&lt;br /&gt;
We can speculate here about the details of a longer-term research plan, but it may not be necessary to actually flesh out this part of the &amp;quot;proposal&amp;quot;.  There does need to be enough to define what the overall proposed work is, but that may show up in earlier sections.&lt;br /&gt;
&lt;br /&gt;
===Usability/cognition matrix===&lt;br /&gt;
We plan to select or create a varied set of interfaces for the same or similar tasks and ask users questions relating independently to both the chosen usability principles and cognitive principles, with the intent of using a machine learning algorithm to estimate the correlations between each cognitive principle and each design principle.  For each highly-correlated pair, we will extract a design rule or suggestion based on both principles. [[User:E J Kalafarski|E J Kalafarski]] 16:54, 13 March 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
====Cognitive principles====&lt;br /&gt;
* 7 plus-or-minus-two/cognitive load&lt;br /&gt;
* visual pop-out&lt;br /&gt;
* temporal and spacial contiguity&lt;br /&gt;
* queued recall&lt;br /&gt;
* affordance&lt;br /&gt;
&lt;br /&gt;
====Design principles====&lt;br /&gt;
* appropriate visual presentation&lt;br /&gt;
* memory-load reduction&lt;br /&gt;
* consistency&lt;br /&gt;
* control&lt;br /&gt;
* discoverability&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Trevor O&#039;Brien</name></author>
	</entry>
	<entry>
		<id>http://vrl.cs.brown.edu/wiki/index.php?title=CS295J/Proposal_intros_from_class_9&amp;diff=2541</id>
		<title>CS295J/Proposal intros from class 9</title>
		<link rel="alternate" type="text/html" href="http://vrl.cs.brown.edu/wiki/index.php?title=CS295J/Proposal_intros_from_class_9&amp;diff=2541"/>
		<updated>2009-03-17T15:45:42Z</updated>

		<summary type="html">&lt;p&gt;Trevor O&amp;#039;Brien: /* Collaborative */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Collaborative==&lt;br /&gt;
&lt;br /&gt;
Established guidelines for designing human computer interfaces are based on experience, intuition and introspection. Because there is no integrated theoretical foundation, many rulesets have emerged with no intuitive way to compare or unify them. We propose to develop a theoretical foundation for interface design, drawing on recent advances in cognitive science—the study of how people think, perceive and interact with the world. We will distill a broad range of principles and computational models of cognition that are relevant to interface design and use them to compare and unify existing guidelines. Where possible, we will use computational models to enable richer automatic interface assessment than is currently available.&lt;br /&gt;
&lt;br /&gt;
A large part of our project will be to broaden the range of cognitive theories that are used in HCI design. Only a few low level theories of perception and action, such as Fitts&#039;s law, have garnered general acceptance in the HCI community because they are simple, make quantitative predictions and apply without modification to a broad range of tasks and interfaces. Our aim is to produce similar predictive models that apply to these lower levels of perception as well as higher levels of cognition, including higher-level vision, learning, memory, attention and task management. &lt;br /&gt;
&lt;br /&gt;
Much of our work will focus on how cognitive principles can enable interface design to go beyond the focus of the functionality of the individual application [a bit vague].  Much research has accumulated regarding how people manage multiple tasks and we will apply it to principles of how an interface should be designed with not only its own purpose in mind but such that it both helps maintain focus in a multi-tasking environment and minimizes the cost of switching to other tasks or applications in the same working sphere. The newer approach of distributed cognition also provides a different perspective by examining the human-computer system as a unified cognitive entity. We will extract and test principles from this literature on how to ensure that the human part of the system is only responsible for those parts of the task for which it is more capable than the computer.&lt;br /&gt;
&lt;br /&gt;
===Collaborators so far===&lt;br /&gt;
* Adam&lt;br /&gt;
* [[User:E J Kalafarski|E J Kalafarski]] 15:25, 17 March 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
==Alternative Collaborative (In progress...)==&lt;br /&gt;
Established guidelines for designing human computer interfaces are based on experience, intuition and introspection. Because there is no integrated theoretical foundation, many rule-sets have emerged despite the absence of comparative evaluations.  We propose to develop a theoretical foundation for interface design, drawing on recent advances in cognitive science -- the study of how people think, perceive and interact with the world. We will distill a broad range of principles and computational models of cognition that are relevant to interface design and use them to compare and unify existing guidelines.  To validate our theoretical foundation, we will use our findings to develop a quantitative mechanism for assessing interface designs, identifying interface elements that are detrimental to user performance, and suggesting effective alternatives.  Results from this system will be explored over a set of case studies.  &lt;br /&gt;
&lt;br /&gt;
A central focus of our work will be to broaden the range of cognitive theories that are used in HCI design.  Few low level theories of perception and action, such as Fitts&#039;s law, have garnered general acceptance in the HCI community because due to their simple, quantitative nature, and wide-spread applicability.  Our aim is to produce similar predictive models that apply to lower levels of perception as well as higher levels of cognition, including higher-level vision, learning, memory, attention and task management. &lt;br /&gt;
&lt;br /&gt;
We will focus on generating extensible, generalizable models of cognition that can be applied to a broad range of interface design challenges.  Much research has accumulated regarding how people manage multiple tasks, and we will apply it to principles of how an interface should be designed with not only its own purpose in mind but such that it both helps maintain focus in a multi-tasking environment and minimizes the cost of switching to other tasks or applications in the same working sphere.  The newer approach of distributed cognition also provides a different perspective by examining the human-computer system as a unified cognitive entity. &lt;br /&gt;
&lt;br /&gt;
===Collaborators so far===&lt;br /&gt;
* Adam&lt;br /&gt;
* Trevor&lt;br /&gt;
&lt;br /&gt;
==Gideon==&lt;br /&gt;
&lt;br /&gt;
*Creating a model of HCI based on distributed cognition&lt;br /&gt;
**Our model (and its many levels)&lt;br /&gt;
**Consideration of cognitive theory&lt;br /&gt;
**Contributions&lt;br /&gt;
***Framework&lt;br /&gt;
***Quantitative Models&lt;br /&gt;
**End-Product&lt;/div&gt;</summary>
		<author><name>Trevor O&#039;Brien</name></author>
	</entry>
</feed>