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
- Efficiency - does the IDE allow users to compile test code
quickly and easily
- Easy to learn - is the interface simple to learn? are
functions self-explanatory ?
- Effectiveness - does the IDE aid in program development ?
- Safe to use - does the IDE allow programmers to undo mistatkes
and does it prevent them from making them
Web browser
- Easy to learn - is it simple enough for novice users to learn
quickly ?
- Safe to use - does is provide precautions for users ? i.e asking
them if they want to really download a file before doing so
- Effective - allow users to browse quickly
- Easy to use - users have a high retention of how to use a browser
User experience goals
IDE
- Creative
- Satisfying - provides feedback
- Aesthetics - uncluttered, simple interface
- Enjoyable - user enjoy using it because it is effective,
efficient and aids in programming
Web browser
- Enjoyable
- Aesthetics - interface is simple, clear, functions are highly
visible
- Satisfying - user browse quickly and w/little errors
- Reliable - will the browser often crash or be unable to find
certain pages ?
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
- Effectiveness => Programming language should provide the
programmer with a library that is easy to use. Functions should do what
they are meant to do
- Easy to learn => Syntax should be similar to other
programming languages
- Efficiency => Language should be capable of doing the tasks
quickly and provide the programmer with good error messages
- Safety => Language should have a safety level. e.g. proper
memory allocation, garbage collection
Programming Language User Experience Goals
- Satisfying => Language should be fast and descriptive. And
strong in it's area. e.g Perl in filtering text
- Fun => Should provide the user with a large range of functions
that can be easily applied. For me, as a programmer, it is fun to have
a huge library
- Rewarding => Programmer should be able to get what he wants
out of the language. That will encourage further use
- Enjoyable => Most enjoyable part of a programming language is
its strength. As a programmer, having control over everything in a
computer makes me enjoy a language
Web Browser Usability Goals
- Effectiveness => The browser should be able to to do what it
is supposed to do
- Learnability => A good interface is the most
important aspect of a browser. And the interface is the key to
learnability
- Safety => The browser should have some sort of a security
component that is
cooperating with the computers real shield. Should be able to detect
and direct cookies. And warn the user
- Efficiency => A web-browser should be fast and precise.
Searching technique used is very important
Web Browser User Experience Goals
- Fun => a good interface with concise appearance will make it
easy and fun for the user
- Satisfying => User should be satisfied with the speed,
strength and usage
- Aesthetically pleasing => The appearance of the interface is
important to keep the user
- Enjoyable => Providing the user with other components binded
to the browser will make
them enjoy the limitlessness of the www. e.g an easy web composer for
the end-users
Question 2 (10/52 students got all points)
Student 2.1
The four conceptual models based on activities are:
- Instruction, where you can issue commands in plain language or
computer code and the machine gives simple output
- Conversation, where the computer, engages you in a two-way
communication, making suggestions and actively soliciting information
required to complete a task
- Manipulating, where objects and actions are represented visually
on the screen and have immediate (usually reversible) effects. This
describes the principle of most GUIs.
- Exploring & Browsing, where the user navigates through pages
of information, choosing how to proceed to attempt to find some item
they may not have a clear idea of
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:
- Clippy from Microsoft Word - helper straight from the fiery depts
of hell
- The little animated dog that is on by default in the file search
dialog in Windows XP
- The happy/sad Mac when you start the old Mac classics (I don't
know if the new ones still have that)
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.