Session 22
Designing a Non-Direct Manipulation Interface
810:171
Software Systems
Recap Session 21: Moving Away From Direct Manipulation
In Exercise 31, we considered the
possibility of transparent menus. The same principles apply to the design
of transparent menus as to regular menus, so you had a chance to solidify
your understanding of those principles. But transparent menus introduce
some new issues, so you also had a chance to think about menus from a
different angle. This sort of exploratory thinking is essential to a
computer scientist, who faces the continuous growth of technology during
a career.
In Exercise 32, you are beginning to
consider how to design interfaces that do not use direct manipulation.
In many ways this is harder, even though you understand techniques such
as menus so well. Indeed, it is probably harder precisely because
you understand these techniques so well. When our brains are too
familiar with something, they tend to stop working very hard; the results
in this case are usually trite or unhelpful interfaces.
Summary of Exercise 32
HCI issues to consider: task-related organization ... sequences of options
... response time ... fast movement. For menus and forms: titles ...
layout ... phrasing. For forms: coded fields.
Content issues: course rotation (viewed by course, semester; accessible
when?) ... student transcript ... degree audit ... registering many
students at once for the same semester ... graduation checklist ...
"random" access to catalog, course rotation, etc. ... waiving prerequisites
... a computer-generated 4- (or 5-)year plan?
Keep in mind the difference between a system's content and its interface.
The user may not see a difference; indeed, our goal is to make the
interface disappear for them. But as a system designer you need to be
able to talk about the two differently.
How would you document your design? How would you convince someone that
your design is good or better than some other?
One way that we should judge a design is by its ability to respond to
changes in the needs of user. A good design can incorporate new ideas
without changing much, if any, of the existing design. A good design
localizes real changes in the spec.
How can we use this heuristic to create good designs?
- Get lots of stories. Use some to generate the design and some
to test the design. (When all you hear is the same stories for the
third time, you have enough stories. -- John McPhee)
- Anticipate change. Make up plausible scenarios, if necessary.
- Then evaluate your design by counting how many existing components
must change in order to incorporate a new need or to respond to a
change in an old need?
By the way, you as the "end" end user of this system really do have a
valuable perspective on this system: What do you want your advisor to
be able to do to serve you?
Exercise 33: Ethics in the CS Curriculum
Work in the same teams...
I am impressed with how deeply many of you have thought about the issue of
ethics in computing. For the most part, you seem to be genuinely concerned
that:
- as a discipline, computing raises important ethical issues,
- computing professionals should behave ethically, and
- CS curricula should adequately prepare students to do so.
The department continues to discuss possible improvements to the
curriculum, with the next set of changes to go into effect in the fall of
2002. You have something interesting to add to the discussion. So:
As a group, outline a short proposal to the computer science faculty
on the place of ethics and professional responsibility in the UNI CS
curriculum. Your proposal should consist of at least these parts:
- A short description of the reasons why the curriculum should cover
ethics at all. This section might describe particular ethical issues
that arise in computing but not in other disciplines, or it might
describe how the effects of ethical decisions are greater due to the
nature of computing technology. It might do both... Keep in mind the
tendency of faculty in technical disciplines to think that we spend
our time best by covering more technical content.
- A list of courses in which ethics should be covered explicitly, a
justification for each item on the list, and a description of how to
incorporate ethics into the course. If the course already exists,
include a description of the content you would omit from the course,
if any, in order to cover the ethical content.
- A list of courses in which ethics should be covered implicitly, a
justification for each item on the list, and a description of how to
incorporate ethics into the course.
- A guide for how to evaluate student's mastery of ethical content in
both kinds of courses. Be as specific as you can. Don't just say,
"It's hard!" The course instructors know that it is hard -- give them
guidance!
Each of you should write a piece of your group's proposal, and then you
should spend time as a group integrating the pieces. The tangible result
of your group's work will be one outline for the group as a whole.
Summary of Discussion
The questions that we have to deal with are:
- Can we teach ethics at all? Where do a person's ethical standards
come from? If we can teach ethics, why do we want to?
- We cannot teach people very many "right" and "wrong" answers.
In the final analysis, ethics are a personal matter--as you live
in a community of software developers, software users, and
others.
But we can introduce students to the issues and give them an
opportunity to think about and discuss them. Furthermore, we can
introduce students to what practicing professionals of the
discipline currently thinks about the issues. We can also
introduce the idea of a professional code of ethics, which
comments on both content and on the process of evaluating the
ethics of an issue. Why bother?
- Why bother? Knowledge and experience do not always transfer
directly to other domains. Ethical decision making is no
exception. The discipline may present issues that do not arise
in the same form or complexity outside the discipline. If we
want students to take ethics seriously, we need to let them know
that the discipline takes them seriously, to make the issues
relevant to their educational experience, and to reinforce
ethical decision making in courses.
- Why not just rely on on-the-job training?
+ That is "situated" in real professional decisions.
- By then many folks have the wrong "reflexes".
Why can't (or shouldn't) your coursework involve real
professional decisions? Do any of you possess MP3s in violation
of someone's copyright?
- In which courses do we cover ethical material, explicitly or
implicitly? What techniques do we use? What happens to the content
displaced from a course by explicit consideration of ethical issues?
- No agreement. Some felt that we should explicitly covering
ethics in the first year and then reinforce the material
throughout the program. This catches students before they have
established any bad or unprincipled habits. Others felt that we
should wait until the end of a student's program (say, in the
senior sequences), by which time the students have sufficient
technical background to appreciate the issues. Still others
thought that starting in the middle (say, in 171) was a good
compromise.
- Many of the techniques used in this course were recommended as
useful: scenarios, construction and analysis of a code of ethics,
etc. Other interesting suggestions included role playing and the
use of outside speakers to discuss real-world ethical dilemmas
they have faced. I have also considered the idea of running a
debate on some ethical issue... maybe another time!
- Many folks seemed to agree that most courses can afford to have
some material displaced. The key is to help students learn how
to learn a topic area, not drill every currently-known fact into
their minds. (We can't predict which of the details will survive
long enough to be of use to many students anyway!) Of course, it
is quite difficult to sell this idea to some faculty members
(including me, sometimes :-).
- What do other majors, in CNS or out, do? Should that affect
what we do?
- How do we grade mastery of ethical issues?
- Not by the "right answer". Some went so far as to claim that we
cannot grade this material in principle, because it is a personal
matter. I claim that one grades this material the same way one
grades any material for which there is no objectively right
answer: You grade the argument, not the answer. You grade the
reasoning behind the answer, the clarity of the argument, the
breadth of the issues considered, the quality of the evidence
offered in support, etc. What do you think? Feel free to
disagree, but be ready to justify your answer! :-)
We can assess the reasoning behind the answer in at least
two concrete ways: Does the answer appeal to the appropriate
community standards? Is the answer consistent throughout?
Ultimately, ethics comes down to hard choices -- trade-offs -- thinking
not remarkably different from that needed to design and implement
software. We want to help students feel confident to assess the issues
that are relevant to the decision and to make a well-reasoned choice that
they can live with.
Eugene Wallingford ====
wallingf@cs.uni.edu ====
March 29, 2001