6.813/6.831 User Interface Design & Implementation

Update: We've decided to relax the specification for RS1 to accommodate students who would like to implement the study with a web framework like Meteor or Django, instead of, for example, a folder of HTML, CSS, and JS with logging to local storage or the console. You will be graded on functionality, so if we cannot run your implementation ourselves, please make sure your video demonstrates the full functionality.

Due at 11:59pm, Friday, April 8th, 2016 by uploading submission to Stellar.
You must complete the self-assessment form before you hand in the assignment.

This problem set is for the graduate 6.831 class only.

This problem set is the first in a three-part series (RS1, RS2, RS3) in which you will reproduce a controlled experiment of a novel user interface technique from a published paper. In this problem set, you will implement the technique and the infrastructure that you'll need to run the experiment. In RS2, you'll actually run the experiment on some people and collect data. In RS3, you'll analyze the data using statistical tests.

Choose the Experiment

First, you should read the two research papers below:

Next, decide which experiment you will reproduce. Here are your choices:

  • Study 2 from the Ephemeral Adaptation paper
  • Experiment 2 from the Bubble Cursor paper

Your version of the experiment only needs two conditions: the control condition (the normal behavior of menus or mouse selection) and the experimental condition (ephemeral adaptation or bubble cursor respectively). The studies in the papers had other conditions (highlighting and object pointing, respectively) that you do not have to replicate. Note that in the ephemeral adaptation paper, the experimental methodology you should use is described in Study 1, but Study 2 has the conditions you should test: the control and ephemeral (long-onset), but NOT highlight.

You will also need to collect subjective feedback from the user. You should ask the user to rate difficulty, satisfaction, efficiency, and frustration on a 7-point Likert scale.

You may have to read some of the cited work in each paper to fully understand the interaction technique and the study design.

Implement the Experiment

Implement the software you'll need to run the experiment you chose. You can use any language or user interface toolkit that you want. We strongly recommend using a web platform that will allow you to run your tests in parallel, though, so you can most efficiently take advantage of class time during RS2.

Make sure your implementation includes everything you'll need to conduct the study:

  • implement an interface that supports both the control and experimental conditions
  • create an experimental framework around the interface that:
    • shows each task to the user, with instructions if appropriate
    • sequences tasks to counterbalance and cover all factors
    • allows adjustment of experimental parameters
    • records data (e.g. accuracy or time) for each trial
    • outputs data in a delimited format for analysis in RS3

Note that you don't need to run users, collect data, or analyze data for this assignment. You'll do that in RS2 and RS3. When you hand in this assignment, however, your software must be ready to run users.

Recording Data

Your software doesn't need to do its own analysis or generate its own graphs. We'll use other tools for that. It just needs to record raw data in a form that will be easy to import into an analysis tool like a spreadsheet or R. A good choice is CSV (comma separated values). A good data output format puts one user trial (e.g. the time to make a single selection) on each line, with other fields on the line describing the conditions of that particular trial (e.g. which user, which experimental condition, the number of the block, the number of the trial within the block).

In your submission, include a file named example-data.txt containing sample data recorded by your software, just using yourself as a pilot participant.

Make a Screencast on YouTube/Vimeo

Create a screencast that shows your software in action. The video should show:

  • the control and experimental conditions in action
  • how tasks are presented to the user

To create the screencast, you can use the free CamStudio on Windows or Quicktime (included in OS X), a trial version of Snapz Pro X, or iShowU HD on Mac. Audio is not necessary, but brief screen captions saying what the video is showing are a good idea. Your video should be at most 2 minutes long.

Upload your video to YouTube or Vimeo, so that you can hand in just a link to it rather than the entire video file. Make sure your video has a high enough resolution that you can easily see the important features of the interface.

What to Hand In

Package your completed assignment as a zip file that contains:

  • all of your source code
  • an executable version if you used a compiled language like Java or Flash.
  • example-data.txt containing a sample of data recorded by your software
  • a README file in plain text format

Your README file in plain text format should contain:

  • Which paper you chose
  • A list of the people you discussed this assignment with, or else an explicit statement that you had no collaborators. This is an individual assignment, so be aware of the course's collaboration policy.
  • The URL of your YouTube/Vimeo screencast
  • Platform requirements for your software, like operating system, web browser, or language version
  • Instructions for running your software

Here's a checklist of things you should confirm before you hand in:

  1. Make a fresh folder and unpack your zip file into it
  2. Make sure your collaborators are named in the README
  3. Make sure your code runs successfully in the fresh folder
  4. Update: We've decided to relax the specification for RS1 to accommodate students who would like to implement the study with a web framework like Meteor or Django, instead of, for example, a folder of HTML, CSS, and JS with logging to local storage or the console. You will be graded on functionality, so if we cannot run your implementation ourselves, please make sure your video demonstrates the full functionality.

Submit your zip file on Stellar. You must complete the self-assessment form before you hand in the assignment.

Grading

This assignment will be judged on three dimensions:

  • Functionality (40%): does it work?
  • Completeness and fidelity (40%): does it include all the necessary elements to conduct an experiment, and will that experiment faithfully reproduce the experimental design published in the paper?
  • Presentation (20%): does your handin (video, README, and zip file) make it easy to judge functionality, completeness, and fidelity?