Sample Answers for Midterm I


The following answers are all taken from student midterms without any
editing. I consider them to be excellent (but not perfect since nobody
is perfect) answers for the corresponding questions. The answers are
representative and were assembled randomly from the +-graded answers.

Question 1

(8/52 students got all points)

Student 1.1

Programming in an IDE is similar to the interaction existing between a user and a web browser. Both can be used by users of a wide range of experience; for a web browser, users can range from someone just starting on the web, to an experienced user logging more than 10 hours a day. The same can be applied to an IDE, some users will be beginners and other experts. Thus both interfaces are designed to be simplistic and minimalist enough for beginners, yet also provide enough functionality to satisfy advanced user needs. Also, both interfaces are interacted within a similar way, using GUI conventions such as clicking, drag & drop, and icons for navigation.

The main difference between an IDE and a web browser is their function. An IDE is used as a programming interface. Users type their code into the interface and it provides feedback such as syntactical and sometimes logical run-time errors. In a web browser however, users are able to browse through pages upon pages of information, intitiate searches, communicate with other users. An IDE doesn't have that capability. In an IDE user enter with a specific purpose in mind i.e to write a program which does a specific function, whereas in a web browser, users may enter with a general purpose which is focused by interacting with the borwser.

The difference between usability and user experience goals is that usability goals measure how well something performs its given functions, while user experience goals measure how enjoyable users find interacting with that interface device.

Usability goals
IDE
Web browser
User experience goals

IDE
Web browser


Student 1.2

i) Both interactions are similar with respect to giving input and waiting for output.
The programmer interacts with the computer by using the appropriate syntax that
the programming language provides. If any of the statements entered are wrong, the
system prompts the user with an error message or gives an appropriate output otherwise.

The interaction between a web browser and a user is relatively similar. Tool browses
through the web depending on the user input. If the specified area is found user is
prompted with a web page, most of the time with a good and clean interface. If else,
user is informed that the site is not found.

The major difference in these two interactions is: a programmer dealing with a programming
language needs further understanding of computers to understand and solve a low level
problem. For example: segmentation fault in C. While, in web browsing, user will not need
lower-level of interaction with the system.

ii) Usability goals are for designing the basic functionality of a system, where user
experience goals are for satisfying the customers by giving the better and easier ways
of using these functionalities

iii)
Programming Language Usability Goals
Programming Language User Experience Goals
Web Browser Usability Goals
Web Browser User Experience Goals

Question 2 (10/52 students got all points)

Student 2.1

The four conceptual models based on activities are:

A car navigation system would be best designed around an exploring&browsing model. Often people don't know exactly where they wish to go, or want to see what options are available to them. A conversational model would also work, but would limit the user in finding alternatives and getting to know the area.

The automatic flight booking system should definitely operate on a conversational model. The airline needs a lot of information that needs to be properly filled out. A conversational computer interface can ask the user to fill in missing data. Finding the correct flight is also easy with a conversational model as the user knows where and when they want to travel and can request it.

Student 2.2

Direct Manipulation:
    In Windows Explorer, you move files by clicking on them to select them and dragging them into different folders. This is an example of direct manipulation (an interface in which you deal with things as if they were physical objects). This model would be appropriate for a car navigation system, as you could have a steering wheel to run, a gear shift to shift, and pedals to accelerate/deaccelerate. That way, there would be a direct mapping between the system and what we, as people, have become accustomed to when driving.

Instruction:
    When using a shell, such as bash, you type commands for the shell to execute. It is as if you are giving the system instructions thus it is called the instructional conceptual model.

Conversing:
    In the conversing conceptual model, a system might ask you questions and take different actions depending on your response. Say you wished to book a flight, the system might ask: To where do you wish to fly ? and wait for your response. It might then ask "On which day do you wish to fly ? " and wait for your response. This is how an automatic flight booking system might be implemented via the conversing conceptual model.

Navigating & Exploring:
    In Windows Explorer you navigate though the directory tree by clicking on a folder, and then clicking on one of its children and so on. When you click on a folder, the contents of that folder appear, in this way you might explore the contents of any folder, and thus the tree itself. This is an example of the navigating and exploring conceptual model.



Question 3

(5/52 students got all points)

Student 3.1

Smalltalk was the programming language introduced by the people at Xerox Parc in the 70s
when designing the "Dynabook". At the time (a few years before the introduction of the PCs)
they envisioned a world where people had their own personal computer & notebook. With these
notebooks people could specialize their system to do what they want it to do using Smalltalk. They
actually then developed their own system using Smalltalk called the Star.

The significance and importance of Smalltalk + Star is the idea of opening up the computer to
the public through the use of a programming language. Not only that, but in particular
they developed many ideas with Smalltalk that eventualy would be used in the PC environment.
These ideas being icons, windows, etc, really defined the graphical user interface before
it was called that and put into practice by Apple in 1984.

In Vannevar Bush's article written in 1945, he looked to the future of technology and posed the
question what would the scientist of tomorrow be focused on. He submits that the scientist
of tomorrow will turn his attention to expanding the power of the mind & human knowledge as opossed
to human physical traits, as was done in the past and present.

To this end he described a system of storage + navigation of stores of human knowledge he called "memex". It describes various examples of the use of memex in different disciplines as he sees them. In effect, Bush is describing the use of a hypertext system on navigating knowledge and making it readily available.

Student 3.2

Smalltalk played a big role in HCI by providing a fertile testing ground for a number of technologies and
interface designs. By introducing the idea of an object-oriented programming paradigm, it gave us the
opportunity to model systems in a much human-understandable manner. When systems for the computer are designed to mimic systems already in use outside the computer (e.g spreadsheets) we can present a
more accurate and user-friendly interface when making this application digitally.

The developers of Smalltalk also showed the benefit of involving the ened-user in the design process. By
providing a platform that could be programmed easity by non-experts, they could allow children to
design kid's programs, musicians to design music programs, and so on. Including the end-user in this
process is almost certain to increase the user satisfaction of this final product.

Smalltalk also presented a very user-friendly interface itself. By using overlapping windows and direct
manipulation techniques, Smalltalk took the user away from some of the tedious use associated with using
a command line interface.

The "memex" as Vanevar Bush's prescient view of today's modern desktop computer. It would support the
simple workdesk by providing micro-photographic document storage, document linking, and the ability
to annotate live content. More importatly, the system would support cross-linking of documents between users, allowing for remote collaboration.


Question 4

(39/52 students got all points)

Student 4.1

Anthropomorphism is applying human characteristics to an interface, usually by providing some
sort of virtual character for the user to interact with. Some examples of athropomorphism are:

The are a couple of reasons why anthropomorphism can be a good thing. For instance,
novices and new computer users can find animated characters more inviting and less intimidating.
Additionally they can provide a simple non-technical expression of system status (the happy/sad
Mac does an excellent job of letting the average user know if the system in in trouble. They also give
hints as to the functionality of a system, like in the case of the MS search dog who searches b
and fetches your files for you.

However a poorly desinged anthropomorphic system can cause a great deal of user frustration.
They are often less efficient than a direct manipulation or instruction based system. They also
have a tendency to appear at inappropriate times with seemingly random suggestions that annoy
people more than help.

Also, they can cause user's to believe that the system is more intelligent than it really
is. A good example of this from the book is Ask Jeeves. You give it a question , but
of course all it ends up doing is giving a seemingly arbitrary list of results based on
keywords even though it makes you think that it can understand natural language.

Student 4.2

Anthropomorphism in interaction design is personifying some aspect of a computer program. For example,
Clippy is an attempt at giving human traits to an interface, in an attempt to make users more comfortable.
Another example is Jeeves the butler - an animated character who talks to the user and informs when email
has been received (a form of a agent). Another example is a computer that converses with the user by name,
with emotion (welcomes and says goodbye, etc). This one maybe being only a voice or textual.

Anthropomorphism does help new users search for help, instead of a big manul. It also can make interaction
fun for chidren or entertainment purposes. It also definitely captures people's attention. We have an automatic
attraction to anything that behaves like us (animals, etc).

On the other hand, for experienced users it becomes annoying very quickly. Humans prefer to learn about
errors and problems in a factual manner not by a human-like, condescending entity. Finally it also encourages
a false model of what's happening in a computer.

Question 5

(16/52 students got all points)

Student 5.1


External cognition is the use of items other than your mind to support mental activities. A couple
of examples of this in real life is post-it notes to assist memory or a calculator to help do math.
An example from a user interface would be an appointment notification pop-up, scheduled by the user.

Student 5.2


External cognition refers to externalizing a part of our cognitive process in order to extend our abilities
in that regard. In my case, the answer is post-it notes ! In order to assist my failing memory, I write down
important tasks and deadlines and put them on my computer monitor. A good example of this in a GUI
is the "back" buttion on a web browser - rather than remembering a path to information, we let the browser
be our memory.