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?

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:

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:

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:

  1. 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?

  2. 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?

  3. 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