This assignment is intended to help you learn to understand the relationships between users and program design. We will also learn how to use the WPF (Windows Presentation Foundation) framework to build graphical user interfaces (GUI's), and how to use meta-metadata to develop information semantics. As part of the assignment, you will conduct a needs and requirements evaluation, create a design briefing, and build a functional prototype.
needs and requirements
Before you start coding or even designing, conduct a Needs and Requirements Analysis, by looking at existing feed readers, and interviewing users. Define tasks and activities that people engage in using the feeds. How are the tasks supported and not supported by the feed readers presently in use?We are defining a feed as a source of information in which entries are published over time. Thus, news constitutes feeds. A Facebook Wall is a feed. There are Twitter feeds. Blogs are feeds. Some feeds are published with RSS, but this is not essential. The headlines at the bottom of a CNN broadcast or scores at the bottom of ESPN are feeds. And so on.
Investigate the activities and tasks that users perform in their consumption of feed information. What do they do with the information? Pay particular attention to sensemaking activities. How do they assign information from feeds into categories or other associational relationships, which are not fundamental in the original presentation?
Part of your assignment is to present a study of existing interfaces, and an explanation of your choice of features. Recall the vocabulary and methods suggested by Norman, Tog, Rodgers-Sharp-Preece, and Winograd/Liddle as you conduct your analysis. Write clearly. Illustrate examples with photos. You are strongly encouraged to take your written analysis to the Writing Center *before* you turn it in. Be explicit about which data collection techniques you use: e.g., observation, interview, questionnaire, heuristic evaluation, cognitive walkthrough, ... Articulate the sources of your data.
Interpret the concept of feed reader loosely, as you investigate existing practice. Consider experiences in programs that are obviously readers for multiple and diverse feeds. Consider specialized readers associated with particular social networks. You can even include readers associated with content providers.
Be incisive in how you define the sensemaking tasks that people perform. Go beyond the routine checking up on the news. How do feed content and experiences thereof penetrate people's larger experiences of work and leisure? How can this intersection most benefit people?
Describe your data collection process (number of participants, structure, questions, observations). Analyze the data clearly and concisely. Don't present every piece of your raw data. Consider the structure of your presentation carefully. Organize it well!
Do present a clear set of needs; connect the derivation of each need to what you learned through data collection. The process and products need to be tightly related. Make sure to remember that the next steps are to design and build a prototype. Address here the concrete issues that will arise later in the development cycle.
grading rubric:
|
design briefing
The next deliverable is a Design Briefing, which is motivated by the Needs and Requirements. Conceptualize the user experience your feed reader will support. What is the sensemaking task / activity the user will engage with?The Design Briefing is a creative synthesis, in which you develop an experience concept, a design, and explain design choices. Explain which features you have chosen to implement, and why. Address important details. Again, use the interaction design vocabulary from the readings to articulate key ideas. You can mimic successful prior design features that you discovered in that deliverable; you should also develop new ideas, that extend or transform the prior work.
Conceptualize relationships among semantic features that are useful for some task or activity associated with consuming information from feeds. Identify specific information sources for feeds. They must be sources from which you can automatically acquire feed information, over time, using meta-metadata or some other wrapper technique.
Design visualization and interaction techniques that convey the significant relationships among semantic features. Include images and sketches, as well as text. The Design Briefing describes what you will build in the next deliverable. Be sure to be aware of the functionalities required there, as you develop this.
Develop specific design scenarios that illustrate important design attributes and features. Show screen shots / sketches with canned data from the scenarios, to illustrate what it will look like. In these scenarios, include narrative to explain what is happening, and how it works.
grading rubric:
|
functional prototype
Use C# and WPF to develop a functional prototype of the interactive feed reader. Develop continuity in your design process, tracing evolution from the Needs and Requirements deliverable through the Design Briefing. Build a prototype that can support users engaged in a sensemaking task or activity.
Include a short statement (1 page maximum) chronicling your design process.
Explain what is consistent and what you have changed from your design briefing, and why.
Motivate features and design choices based on how they will support user tasks and activities.
Write good object-oriented code.
Include doc comments for class, method, and instance variable definitions.
Name variables to help make the code clear.
Name constants, using static finals, instead of
Make all names meaningful.
Use horizontal and vertical whitespace to help communicate structure to the reader.
Engage modular, object-oriented software design principles.
REFACTOR YOUR CODE TO AVOID CUT AND PASTE REPETITION.
Design objects thoughtfully.
Rembmer, programmers, do not get paid by the pound.
To the contrary, in general, the fewer lines of code, the beter.
Use meta-metadata to develop information
semantics for a number of feed sources.
Use either the builtin web browser control (Internet Explorer, or Awesomuim ,
a WebKit-based web browser component, to display HTML.
WebKit is the open source library that serves as the source of the Chrome and Safari web browsers, among others.
You will need WebKit in your environment to support meta-metadata, anyway.
You will need to develop a multithreaded architecture, so that network I/O,
information semantics processing, and GUI event handling do not occur in the same thread.
The feed reader needs to
- Display feeds from a number of different information sources.
- Display informative documents linked within feeds.
- Support sensemaking across information sources, to support the user's task / activity.
- Support the user in shifting cognitive representations and schemas in order to engage in the task.
We are providing the meta-metadata library for developing information semantics. The library is accessible through SVN.
-
Turn in the following materials on a CD:
- All documents for this assignment. Include copies of your Needs and Requirements, Design Briefing, and Design Process deliverables.
- A packaged executable in the top-level directory of the CD, which I can double-click to run your application.
- Additionally, turn-in a hard copy printout of your Design Process statement, and of your source code.
grading rubric:
|
an interface ecology lab production
